GitLab CI/CD ile İşbirliği Yapmak için HashiCorp Waypoint nasıl kullanılır?

GitLab CI/CD ile İşbirliği Yapmak için HashiCorp Waypoint nasıl kullanılır?

HashiCorp yeni bir proje gösterdi Ara nokta üzerinde HashiCorp Dijital. Kubernetes'ten AWS ve Google Cloud Run'a kadar çeşitli bulut platformlarına yönelik uygulamaların oluşturulmasını, gönderilmesini ve yayınlanmasını açıklamak için HCL tabanlı bir dosya kullanır. Waypoint'i Terraform ve Vagrant'ın uygulamalarınızı oluşturma, gönderme ve yayınlama sürecini tanımlamak için bir araya getirdiği bir ürün olarak düşünün.

HashiCorp, Waypoint'i açık kaynak olarak yayınladı ve birçok örnekle birlikte geliyor. Orkestratörün seviyesi size bağlıdır; Waypoint, doğrudan dizüstü bilgisayarınızda veya seçtiğiniz CI/CD düzenleme aracından çalıştırabileceğiniz bir yürütülebilir dosya olarak gelir. Waypoint Kubernetes, Docker, Google Cloud Run, AWS ECS ve daha fazlasını desteklediğinden uygulama dağıtım hedefi de size bağlıdır.

Harikayı okuduktan sonra belgeleme ve en şıkı Örnekler HashiCorp tarafından sağlanan uygulamaların ardından GitLab CI/CD ile Waypoint düzenlemesine daha yakından bakmaya karar verdik. Bunu yapmak için örnek depodan AWS ECS üzerinde çalışan basit bir Node.js uygulamasını alacağız.

Depoyu klonladıktan sonra uygulamanın tek sayfa görüntüleyen yapısına bakalım:

GitLab CI/CD ile İşbirliği Yapmak için HashiCorp Waypoint nasıl kullanılır?

Fark etmiş olabileceğiniz gibi bu projede Dockerfile yok. Örneğe eklenmedik çünkü onlara gerçekten ihtiyacımız yok, çünkü Waypoint bunları bizim için halledecek. Dosyaya daha yakından bakalım waypoint.hclne yapacağını anlamak için:

project = "example-nodejs"

app "example-nodejs" {
  labels = {
    "service" = "example-nodejs",
    "env" = "dev"
  }

  build {
    use "pack" {}
    registry {
    use "aws-ecr" {
        region = "us-east-1"
        repository = "waypoint-gitlab"
        tag = "latest"
    }
    }
  }

  deploy {
    use "aws-ecs" {
    region = "us-east-1"
    memory = "512"
    }
  }
}

Derleme aşamasında Waypoint, Bulutta Yerel Derleme Paketlerini (CNB) projenin programlama dilini belirlemek ve Docker dosyası kullanmadan Docker görüntüsü oluşturmak için. Prensip olarak bu, GitLab'ın kısmen kullandığı teknolojinin aynısıdır. Otomatik DevOps Otomatik Oluşturma adımında. CNCF'nin CNB'sinin endüstri kullanıcıları arasında giderek daha fazla benimsendiğini görmek harika.

Görüntü oluşturulduktan sonra Waypoint, gönderilmeye hazır olması için onu otomatik olarak AWS ECR kayıt defterimize yükleyecektir. Derleme tamamlandıktan sonra teslimat adımı şunları kullanır: AWS ECS eklentisi uygulamamızı AWS hesabımıza dağıtmak için.

Dizüstü bilgisayarımdan bu çok kolay. AWS hesabımda zaten kimliği doğrulanmış olan Waypoint'i ekledim ve "çalışıyor". Peki dizüstü bilgisayarımın ötesine geçmek istersem ne olur? Veya mevcut entegrasyon testlerimin, güvenlik testlerimin ve diğerlerinin çalıştırıldığı genel CI/CD hattımın bir parçası olarak bu dağıtımı otomatikleştirmek isteyebilir miyim? Burası hikayenin GitLab CI/CD'nin devreye girdiği kısmı!

NB Sadece CI/CD'yi uygulamayı planlıyorsanız veya işlem hatları oluşturmak için en iyi uygulamaları uygulamaya başlamak istiyorsanız yeni Slurm kursuna dikkat edin. "Gitlab CI örneğinde CI/CD". Şu anda ön sipariş fiyatıyla satışta.

GitLab CI/CD'de Yol Noktası

Tüm bunları GitLab CI/CD'de düzenlemek için dosyamızda neye ihtiyacımız olduğuna bakalım .gitlab-ci.yml:

  • Her şeyden önce, içinde çalışacak bir temel görüntüye ihtiyacınız var. Waypoint herhangi bir Linux dağıtımında çalışır, yalnızca Docker'a ihtiyaç duyar, dolayısıyla genel bir Docker görüntüsüyle çalışabiliriz.
  • Daha sonra Waypoint'i bu görüntüye yüklemeniz gerekir. Gelecekte toplayabiliriz meta yapı resmi ve bu süreci kendiniz için kapsayıcı hale getirin.
  • Son olarak Yol Noktası komutlarını çalıştıracağız

Yukarıda dağıtımı gerçekleştirmek için gereken komut dosyalarını çalıştırmak için işlem hattımızın ihtiyaç duyacağı her şey verilmiştir, ancak AWS'ye dağıtım yapmak için bir şeye daha ihtiyacımız var: AWS hesabımızda oturum açmalıyız. Yol noktası açıklamasında planları var Kimlik doğrulama ve yetkilendirme hakkında. HashiCorp da bu hafta etkileyici bir proje yayınladı Sınır. Ancak şimdilik kimlik doğrulama ve yetkilendirmeyi kendimiz alıp halledebiliriz.

AWS'de GitLab CICD kimlik doğrulaması için çeşitli seçenekler vardır. İlk seçenek yerleşik olanı kullanmaktır HashiCorp Kasası. Ekibinizin kimlik bilgileri yönetimi için zaten Apps Kasası'nı kullanması sorun değil. Ekibinizin yetkilendirmeyi AWS IAM kullanarak yönetmesi durumunda işe yarayan başka bir yöntem de teslim görevlerinin aşağıdakiler aracılığıyla tetiklenip tetiklenmediğini kontrol etmektir: GitLab KoşucusuIAM aracılığıyla dağıtımı başlatma yetkisine sahip olan bir kişi. Ancak yalnızca Waypoint'e aşina olmak ve bunu hızlı bir şekilde yapmak istiyorsanız son seçenek, AWS API'nizi ve Gizli anahtarlarınızı eklemektir. GitLab CI/CD ortam değişkenleri AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Hepsini bir araya getirmek

Kimlik doğrulamayı anladıktan sonra başlayabiliriz! Finalimiz .gitlab-ci.yml Bu şuna benzer:

waypoint:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  # Define environment variables, e.g. `WAYPOINT_VERSION: '0.1.1'`
  variables:
    WAYPOINT_VERSION: ''
    WAYPOINT_SERVER_ADDR: ''
    WAYPOINT_SERVER_TOKEN: ''
    WAYPOINT_SERVER_TLS: '1'
    WAYPOINT_SERVER_TLS_SKIP_VERIFY: '1'
  script:
    - wget -q -O /tmp/waypoint.zip https://releases.hashicorp.com/waypoint/${WAYPOINT_VERSION}/waypoint_${WAYPOINT_VERSION}_linux_amd64.zip
    - unzip -d /usr/local/bin /tmp/waypoint.zip
    - rm -rf /tmp/waypoint*
    - waypoint init
    - waypoint build
    - waypoint deploy
    - waypoint release

Bir resimle başladığımızı görüyorsunuz docker:latest ve Waypoint'in gerektirdiği birkaç ortam değişkenini ayarlayın. Bölümde script En son Waypoint yürütülebilir dosyasını indirip yerleştiriyoruz /usr/local/bin. Çalıştırıcımız zaten AWS'de yetkilendirilmiş olduğundan, basitçe çalıştırıyoruz waypoint init, build, deploy и release.

Derleme görevinin çıktısı bize uygulamayı başlattığımız uç noktayı gösterecektir:

GitLab CI/CD ile İşbirliği Yapmak için HashiCorp Waypoint nasıl kullanılır?

Ara noktalardan biri çok sayıda HashiCorp çözümüGitLab ile harika çalışan . Örneğin, uygulamayı teslim etmenin yanı sıra, temel altyapıyı da düzenleyebiliriz. GitLab'da Terraform. SDLC güvenliğini standartlaştırmak için şunları da uygulayabiliriz: Vault ile GitLab CI/CD işlem hatlarındaki gizli dizileri ve belirteçleri yönetmek için geliştirme, test etme ve üretim kullanımı için gizli yönetime güvenen geliştiriciler ve yöneticiler için eksiksiz bir çözüm sağlar.

HashiCorp ve GitLab tarafından geliştirilen ortak çözümler, tutarlı tedarik zinciri ve altyapı yönetimi sağlayarak şirketlerin uygulama geliştirmenin en iyi yolunu bulmasına yardımcı oluyor. Waypoint doğru yönde bir adım daha attı ve projenin daha da geliştirilmesini sabırsızlıkla bekliyoruz. Yol Noktası hakkında daha fazla bilgi edinebilirsiniz buradaayrıca keşfetmeye değer belgeleme и Kalkınma Planı proje. Bilgimizi kattık GitLab CICD belgeleri. Kendiniz denemek istiyorsanız çalışma örneğinin tamamını şu adresten inceleyebilirsiniz: bu depo.

Video kursunu tamamlayarak CI/CD ilkelerini anlayabilir, Gitlab CI ile çalışmanın tüm inceliklerinde uzmanlaşabilir ve en iyi uygulamaları uygulamaya başlayabilirsiniz. "Gitlab CI örneğinde CI/CD". Şimdi katıl!

Kaynak: habr.com

Yorum ekle