Merhaba! Adım Dima, Wrike'taki SysOps ekibinin teknik lideriyim. Bu yazıda size ayda 10 dakika ve 5 dolar karşılığında kullanıcıya olabildiğince yakın bir web sitesini nasıl oluşturacağınızı ve dağıtımını nasıl otomatikleştireceğinizi anlatacağım. Makalenin ekibimizde çözdüğümüz sorunlarla neredeyse hiçbir ilgisi yok. Bu daha ziyade benim için yeni olan bir teknolojiyi tanımaya dair kişisel deneyimim ve izlenimlerim. Talimatların farklı deneyime sahip kişilere faydalı olması için adımları olabildiğince ayrıntılı olarak anlatmaya çalıştım. Umarım eğlenirsiniz. Gitmek!

Belki de bir web sitesini barındırmanın basit ve ucuz bir yolunu bulmuşsunuzdur. Hatta belki de burada açıklandığı gibi ücretsiz.
Ama birdenbire hala sıkılmaya başladınız ve teknolojinin cesur yeni dünyasına dokunmak mı istiyorsunuz? Diyelim ki dağıtımı otomatikleştirmeyi düşünüyorsunuz ve sitenizi mümkün olduğunca hızlandırmak istiyorsunuz? Bu yazıda kullanacağımızancak bu isteğe bağlıdır.
Otomasyon için Gitlab CI/CD'yi kullanıyoruz, peki ya hızlandırma? Siteyi doğrudan Cloudflare'e dağıtalım..
Başlamak için gerekenler:
Gitlab (kendinizin veya )
Cloudflare'de
Kurulmuş
Bölüm 1: Hugo'yu Yükleme
Hugo'yu zaten yüklediyseniz veya farklı bir statik site oluşturucuyu tercih ediyorsanız (veya hiç kullanmıyorsanız), bu bölümü atlayabilirsiniz.
Hugo'yu şuradan indirin:
Hugo çalıştırılabilir dosyasını şurada tanımlananlardan birine göre yerleştiriyoruz. yollar
Yeni bir site oluşturma:
hugo new site blog.example.comGeçerli dizini yeni oluşturulan diziyle değiştirin:
cd blog.example.comBir tasarım teması seçin ( ya da her neyse)
İlk yazıyı oluşturalım:
hugo new posts/my-amazing-post.mdOluşturulan dosyaya içerik ekleyin: içerik/yazılar/my-amazing-post.md.
Her şey bittiğinde taslak değerini şu şekilde değiştirin: yanlışStatik dosyalar oluşturma:
hugo -D
Artık statik sitemiz bir dizinin içinde yer alıyor ./halk ve ilk manuel dağıtımınıza hazırsınız.
Bölüm 2: Cloudflare Kurulumu
Şimdi Cloudflare'in ilk kurulumuna bakalım. Site için zaten bir alan adımızın olduğunu varsayalım. Örnek olarak ele alalım blog.example.com.
1. Adım: DNS girişi oluşturun
Öncelikle alan adımızı ve ardından menü öğesini seçin DNS. Bir blog A kaydı oluşturuyoruz ve bunun için bazı hayali IP'ler belirtiyoruz (bu, resmi kayıttır)ama biraz daha güzel yapabilirlerdi).

Adım 2: Cloudflare Tokenı
Profilim -> API belirteçleri sekme-> Jeton Oluştur -> Özel Belirteç Oluştur

Burada belirteci hesaplar ve bölgelerle sınırlamanız gerekir, ancak resimde listelenen izinler için Düzenle seçeneğini bırakın.
Belirteci gelecek için saklayın, üçüncü bölümde ona ihtiyacımız olacak.
3. Adım: Hesap kimliğini ve bölge kimliğini alın
domain → Genel Bakış → [sağ kenar çubuğu]
Bunlar benim, lütfen kullanmayın :)
Bunları jetonun yanına kaydedin, üçüncü bölümde de onlara ihtiyacımız olacak.
4. Adım: İşçileri Etkinleştirin
domain → Işçiler → Yönetim Çalışanları
Benzersiz bir isim ve tarife seçiyoruz İşçiler → Sınırsız (bugün ayda 5$). Dilerseniz daha sonra ücretsiz sürüme geçebilirsiniz.
Bölüm 3: İlk dağıtım (manuel dağıtım)
Orada gerçekte neler olup bittiğini öğrenmek için ilk manuel konuşlandırmayı yaptım. Her ne kadar tüm bunlar daha basit yapılabilirse de:
Wrangler'ı yükleyin:
npm i @cloudflare/wrangler -gBlogumuzun dizinine gidelim:
cd blog.example.comWrangler'ı başlatın:
wrangler init — site hugo-workerWrangler için bir yapılandırma oluşturun (istendiğinde belirteci girin):
wrangler config
Şimdi yeni oluşturulan dosyada değişiklik yapmayı deneyelim. wrangler.toml ( olası ayarların tam listesi):
belirtmek hesap kimliği ve bölge kimliği
Biz değiştiririz degistirebilirsin. * gibi bir şeyeblog.example.com/*
belirtmek yanlış için işçilerdev
Paketi ./public olarak değiştirin (veya statik sitenizin bulunduğu yer)
Yolda birden fazla alan adı varsa çalışma komut dosyasındaki yolu düzeltmelisiniz: işçi-site/index.js (bkz. fonksiyon tanıtıcıOlay)
Harika, ekibi kullanarak siteyi dağıtmanın zamanı geldi wrangler publish.
Bölüm 4: Dağıtım otomasyonu
Bu kılavuz Gitlab için yazılmıştır ancak genel olarak otomatik dağıtımın özünü ve kolaylığını yansıtmaktadır.
Adım 1: Projemizi oluşturun ve yapılandırın
Yeni bir GitLab projesi oluşturun ve site: dizinini yükleyin blog.example.com tüm içeriğin proje kök dizininde bulunması gerekir
Ayarladık değişken CFAPITOKEN burada: Ayarlar → CI / CD → Değişkenler
Adım 2: Bir .gitlab-ci.yml dosyası oluşturun ve ilk dağıtımı çalıştırın
dosya oluştur .gitlab-ci.yml aşağıdaki içeriğe sahip kökte:
stages:
- build
- deploy
build:
image: monachus/hugo
stage: build
variables:
GIT_SUBMODULE_STRATEGY: recursive
script:
- cd blog.example.com/
- hugo
artifacts:
paths:
- blog.example.com/public
only:
- master # this job will affect only the 'master' branch
tags:
- gitlab-org-docker #
deploy:
image: timbru31/ruby-node:2.3
stage: deploy
script:
- wget https://github.com/cloudflare/wrangler/releases/download/v1.8.4/wrangler-v1.8.4-x86_64-unknown-linux-musl.tar.gz
- tar xvzf wrangler-v1.8.4-x86_64-unknown-linux-musl.tar.gz
- cd blog.example.com/
- ../dist/wrangler publish
artifacts:
paths:
- blog.example.com/public
only:
- master # this job will affect only the 'master' branch
tags:
- gitlab-org-docker #İlk dağıtımı manuel olarak başlatıyoruz (CI/CD → Boru Hatları → Boru Hattını Çalıştır) veya ana şubeye taahhütte bulunarak. İşte!
Sonuç
Biraz hafife almış olabilirim ve tüm süreç on dakikadan biraz fazla sürdü. Ancak artık otomatik dağıtıma sahip hızlı bir siteniz ve Workers ile başka neler yapabileceğinize dair bazı yeni fikirleriniz var.
Kaynak: habr.com
