Как Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ HashiCorp Waypoint Π·Π° ΡΡŠΡ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ с GitLab CI/CD

Как Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ HashiCorp Waypoint Π·Π° ΡΡŠΡ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ с GitLab CI/CD

HashiCorp ΠΏΠΎΠΊΠ°Π·Π° Π½ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Waypoint Π½Π° HashiCorp Digital. Π’ΠΎΠΉ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° HCL Ρ„Π°ΠΉΠ», Π·Π° Π΄Π° опишС ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ, доставката ΠΈ пусканСто Π½Π° прилоТСния Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ, Π²Π°Ρ€ΠΈΡ€Π°Ρ‰ΠΈ ΠΎΡ‚ Kubernetes Π΄ΠΎ AWS ΠΈ Google Cloud Run. ΠœΠΈΡΠ»Π΅Ρ‚Π΅ Π·Π° Waypoint ΠΊΠ°Ρ‚ΠΎ Terraform ΠΈ Vagrant, ΡΡŠΠ±Ρ€Π°Π½ΠΈ Π·Π°Π΅Π΄Π½ΠΎ, Π·Π° Π΄Π° ΠΎΠΏΠΈΡˆΠ°Ρ‚ процСса Π½Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅, ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ ΠΈ пусканС Π½Π° Π²Π°ΡˆΠΈΡ‚Π΅ прилоТСния.

Π’ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° си, HashiCorp пусна Waypoint ΠΊΠ°Ρ‚ΠΎ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ ΠΈ ΠΈΠ΄Π²Π° с ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ. Нивото Π½Π° оркСстратора зависи ΠΎΡ‚ вас, Waypoint ΠΈΠ΄Π²Π° ΠΊΠ°Ρ‚ΠΎ изпълним Ρ„Π°ΠΉΠ», ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° стартиратС Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π½Π° вашия Π»Π°ΠΏΡ‚ΠΎΠΏ ΠΈΠ»ΠΈ ΠΎΡ‚ избрания ΠΎΡ‚ вас инструмСнт Π·Π° оркСстрация Π½Π° CI/CD. Π¦Π΅Π»Ρ‚Π° Π·Π° внСдряванС Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΡΡŠΡ‰ΠΎ зависи ΠΎΡ‚ вас, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Waypoint ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Kubernetes, Docker, Google Cloud Run, AWS ECS ΠΈ Π΄Ρ€.

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‡Π΅Ρ‚ΠΎΡ… страхотното докумСнтация ΠΈ Π½Π°ΠΉ-СлСгантният ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ прилоТСния, прСдоставСни ΠΎΡ‚ HashiCorp, Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎ-ΠΎΡ‚Π±Π»ΠΈΠ·ΠΎ оркСстрацията Π½Π° Waypoint с GitLab CI/CD. Π—Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚ΠΎΠ²Π°, Ρ‰Π΅ Π²Π·Π΅ΠΌΠ΅ΠΌ просто ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Node.js, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΎ Π½Π° AWS ECS ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎΡ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°ΠΌΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ, Π½Π΅ΠΊΠ° Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ структурата Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π° Π΅Π΄Π½Π° страница:

Как Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ HashiCorp Waypoint Π·Π° ΡΡŠΡ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ с GitLab CI/CD

ΠšΠ°ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π±ΠΈ стС забСлязали, Π² Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ няма Dockerfile. Π’Π΅ Π½Π΅ са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π½Π΅ сС Π½ΡƒΠΆΠ΄Π°Π΅ΠΌ ΠΎΡ‚ тях, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Waypoint Ρ‰Π΅ сС ΠΏΠΎΠ³Ρ€ΠΈΠΆΠΈ Π·Π° тях вмСсто нас. НСка Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΏΠΎ-ΠΎΡ‚Π±Π»ΠΈΠ·ΠΎ waypoint.hclΠ·Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠ°ΠΊΠ²ΠΎ Ρ‰Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈ:

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"
    }
  }
}

По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ„Π°Π·Π°Ρ‚Π° Π½Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅, Waypoint ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Cloud Native Buildpacks (CNB), Π·Π° Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ Docker ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π±Π΅Π· Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Dockerfile. По ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ‚ΠΎΠ²Π° Π΅ ΡΡŠΡ‰Π°Ρ‚Π° тСхнология, която частично сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ‚ GitLab Auto DevOps Π½Π° ΡΡ‚ΡŠΠΏΠΊΠ°Ρ‚Π° Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅. Π‘Ρ‚Ρ€Π°Ρ…ΠΎΡ‚Π½ΠΎ Π΅ Π΄Π° сС Π²ΠΈΠ΄ΠΈ, Ρ‡Π΅ CNB Π½Π° CNCF ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° всС ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²ΡŠΠ·ΠΏΡ€ΠΈΠ΅ΠΌΠ°Π½Π΅ срСд ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π² индустрията.

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ бъдС ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΎ, Waypoint Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Ρ‰Π΅ Π³ΠΎ ΠΊΠ°Ρ‡ΠΈ Π² нашия AWS ECR Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΄Π° Π΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎ Π·Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅. Π’ края Π½Π° сглобяванСто ΡΡ‚ΡŠΠΏΠΊΠ°Ρ‚Π° Π½Π° доставка ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° AWS ECS Π΄ΠΎΠ±Π°Π²ΠΊΠ° Π·Π° внСдряванС Π½Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² нашия AWS Π°ΠΊΠ°ΡƒΠ½Ρ‚.

ΠžΡ‚ моя Π»Π°ΠΏΡ‚ΠΎΠΏ Π΅ лСсно. ΠŸΠΎΡΡ‚Π°Π²ΠΈΡ… Waypoint, ΠΊΠΎΠΉΡ‚ΠΎ Π²Π΅Ρ‡Π΅ Π΅ удостовСрСн Π² моя AWS Π°ΠΊΠ°ΡƒΠ½Ρ‚ ΠΈ Ρ‚ΠΎΠΉ β€žΠΏΡ€ΠΎΡΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈβ€œ. Но ΠΊΠ°ΠΊΠ²ΠΎ сС случва, Π°ΠΊΠΎ искам Π΄Π° Π½Π°Π΄Ρ…Π²ΡŠΡ€Π»ΡΠΌ моя Π»Π°ΠΏΡ‚ΠΎΠΏ? Или ΠΌΠΎΠΆΠ΅ Π±ΠΈ искам Π΄Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°ΠΌ Ρ‚ΠΎΠ²Π° внСдряванС ΠΊΠ°Ρ‚ΠΎ част ΠΎΡ‚ моя цялостСн CI/CD Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ‚Π΅ ΠΌΠΈ тСстовС Π·Π° интСграция, тСстовС Π·Π° сигурност ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ? Π’ΠΎΠ²Π° Π΅ частта ΠΎΡ‚ историята, Π² която сС намСсва GitLab CI/CD!

NB Ако просто ΠΏΠ»Π°Π½ΠΈΡ€Π°Ρ‚Π΅ Π΄Π° Π²Π½Π΅Π΄Ρ€ΠΈΡ‚Π΅ CI / CD ΠΈΠ»ΠΈ искатС Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈΡ‚Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈ, ΠΎΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° новия курс Slurm. β€žCI/CD Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π° Gitlab CIβ€œ. Π’Π΅Ρ‡Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½ Π½Π° Ρ†Π΅Π½Π° Π·Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠ°.

Π’ΠΎΡ‡ΠΊΠ° Π² GitLab CI/CD

Π—Π° Π΄Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ всичко Ρ‚ΠΎΠ²Π° Π² GitLab CI/CD, Π½Π΅ΠΊΠ° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ Π½ΠΈ трябва Π² нашия Ρ„Π°ΠΉΠ» .gitlab-ci.yml:

  • На ΠΏΡŠΡ€Π²ΠΎ място, ΠΈΠΌΠ°Ρ‚Π΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ основно ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π²ΡŠΡ‚Ρ€Π΅ Π² Π½Π΅Π³ΠΎ. Waypoint Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° всяка Linux дистрибуция, Π½ΡƒΠΆΠ΄Π°Π΅ сС само ΠΎΡ‚ Docker, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с ΠΎΠ±Ρ‰ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Docker.
  • Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° трябва Π΄Π° инсталиратС Waypoint Π² Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π’ Π±ΡŠΠ΄Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡŠΠ±ΠΈΡ€Π°ΠΌΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠ΅Ρ‚Π° ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·ΠΈΡ€Π°ΠΉΡ‚Π΅ Ρ‚ΠΎΠ·ΠΈ процСс Π·Π° сСбС си.
  • Накрая Ρ‰Π΅ изпълним ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ Π·Π° Waypoint

По-Π³ΠΎΡ€Π΅ Π΅ всичко, ΠΎΡ‚ ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π°ΡˆΠΈΡΡ‚ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ Ρ‰Π΅ сС Π½ΡƒΠΆΠ΄Π°Π΅, Π·Π° Π΄Π° изпълни скриптовСтС, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° внСдряванСто, Π½ΠΎ Π·Π° Π΄Π° Π²Π½Π΅Π΄Ρ€ΠΈΠΌ Π² AWS, ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ ΠΎΡ‰Π΅ Π½Π΅Ρ‰ΠΎ: трябва Π΄Π° Π²Π»Π΅Π·Π΅ΠΌ Π² нашия Π°ΠΊΠ°ΡƒΠ½Ρ‚ Π² AWS. Π’ описаниСто Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ°Ρ‚Π° ΠΈΠΌΠ°ΠΌ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π·Π° удостовСряванС ΠΈ оторизация. HashiCorp ΡΡŠΡ‰ΠΎ пусна впСчатляващ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ‚Π°Π·ΠΈ сСдмица Π“Ρ€Π°Π½ΠΈΡ†Π°. Но засСга ΠΌΠΎΠΆΠ΅ΠΌ сами Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ ΠΈ Π΄Π° сС справим с удостовСряванСто ΠΈ оторизацията.

Има няколко ΠΎΠΏΡ†ΠΈΠΈ Π·Π° GitLab CICD удостовСряванС Π½Π° AWS. ΠŸΡŠΡ€Π²ΠΈΡΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ вградСния HashiCorp Vault. Π”ΠΎΠ±Ρ€Π΅ Π΅, Π°ΠΊΠΎ Π²Π°ΡˆΠΈΡΡ‚ Π΅ΠΊΠΈΠΏ Π²Π΅Ρ‡Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Vault Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ. Π”Ρ€ΡƒΠ³ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ, Π°ΠΊΠΎ Π²Π°ΡˆΠΈΡΡ‚ Π΅ΠΊΠΈΠΏ управлява оторизация с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° AWS IAM, Π΅ Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ Π΄Π°Π»ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ Π·Π° доставка сС задСйстват Ρ‡Ρ€Π΅Π· GitLab RunnerA, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΡƒΠΏΡŠΠ»Π½ΠΎΠΌΠΎΡ‰Π΅Π½ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ внСдряванСто Ρ‡Ρ€Π΅Π· IAM. Но Π°ΠΊΠΎ просто искатС Π΄Π° сС Π·Π°ΠΏΠΎΠ·Π½Π°Π΅Ρ‚Π΅ с Waypoint ΠΈ искатС Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π±ΡŠΡ€Π·ΠΎ, послСдната опция Π΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ вашия AWS API ΠΈ сСкрСтни ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ към GitLab CI/CD ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° срСдата AWS_ACCESS_KEY_ID ΠΈ AWS_SECRET_ACCESS_KEY.

Всичко Ρ‚ΠΎΠ²Π° Π·Π°Π΅Π΄Π½ΠΎ

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ удостовСряванСто, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ! ΠΠ°ΡˆΠΈΡΡ‚ Ρ„ΠΈΠ½Π°Π» .gitlab-ci.yml ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°:

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

Π’ΠΈΠΆΠ΄Π°Ρ‚Π΅, Ρ‡Π΅ Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ docker:latest ΠΈ Π·Π°Π΄Π°ΠΉΡ‚Π΅ няколко ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° срСдата, изисквани ΠΎΡ‚ Waypoint. Π’ Π³Π»Π°Π²Π° script изтСглямС послСдния изпълним Ρ„Π°ΠΉΠ» Π½Π° Waypoint ΠΈ Π³ΠΎ поставямС /usr/local/bin. Въй ΠΊΠ°Ρ‚ΠΎ Π½Π°ΡˆΠΈΡΡ‚ Π±Π΅Π³Π°Ρ‡ Π²Π΅Ρ‡Π΅ Π΅ ΠΎΡ‚ΠΎΡ€ΠΈΠ·ΠΈΡ€Π°Π½ Π² AWS, Π½ΠΈΠ΅ просто стартирамС waypoint init, build, deploy ΠΈ release.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π·Π° компилация Ρ‰Π΅ Π½ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅ ΠΊΡ€Π°ΠΉΠ½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ°, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ смС пуснали ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ:

Как Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ HashiCorp Waypoint Π·Π° ΡΡŠΡ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ с GitLab CI/CD

ΠŸΡŠΡ‚Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π΅Π΄Π½Π° ΠΎΡ‚ мноТСство Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° HashiCorp, ΠΊΠΎΠΈΡ‚ΠΎ работят чудСсно с GitLab. НапримСр, Π² допълнСниС към доставянСто Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ основната инфраструктура с Terraform Π² GitLab. Π—Π° Π΄Π° стандартизирамС сигурността Π½Π° SDLC, Π½ΠΈΠ΅ ΡΡŠΡ‰ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌ GitLab с Vault Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚Π°ΠΉΠ½ΠΈ ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΠΈ Π² CI/CD ΠΊΠ°Π½Π°Π»ΠΈ, прСдоставяйки цялостно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ ΠΈ администратори, ΠΊΠΎΠΈΡ‚ΠΎ Ρ€Π°Π·Ρ‡ΠΈΡ‚Π°Ρ‚ Π½Π° Ρ‚Π°ΠΉΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, тСстванС ΠΈ производствСна ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°.

Π‘ΡŠΠ²ΠΌΠ΅ΡΡ‚Π½ΠΈΡ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ ΠΎΡ‚ HashiCorp ΠΈ GitLab, ΠΏΠΎΠΌΠ°Π³Π°Ρ‚ Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡ‚Π΅ Π΄Π° намСрят Π½Π°ΠΉ-добрия Π½Π°Ρ‡ΠΈΠ½ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° прилоТСния, ΠΊΠ°Ρ‚ΠΎ осигуряват послСдоватСлно ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π° Π·Π° доставки ΠΈ инфраструктурата. Waypoint Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΎΡ‰Π΅ Π΅Π΄Π½Π° ΡΡ‚ΡŠΠΏΠΊΠ° Π² ΠΏΡ€Π°Π²ΠΈΠ»Π½Π°Ρ‚Π° посока ΠΈ ΠΎΡ‡Π°ΠΊΠ²Π°ΠΌΠ΅ с Π½Π΅Ρ‚ΡŠΡ€ΠΏΠ΅Π½ΠΈΠ΅ ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΡˆΠ½ΠΎΡ‚ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π·Π° Waypoint Ρ‚ΡƒΠΊΡΡŠΡ‰ΠΎ си струва Π΄Π° сС ΠΏΡ€ΠΎΡƒΡ‡ΠΈ докумСнтация ΠΈ ΠΏΠ»Π°Π½ Π·Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π”ΠΎΠ±Π°Π²ΠΈΡ…ΠΌΠ΅ знанията си към GitLab CICD докумСнтация. Ако искатС Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΡ€ΠΎΠ±Π²Π°Ρ‚Π΅ сами, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°Ρ‚Π΅ пълния Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° Ρ‚ΠΎΠ²Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΡ‚Π΅ Π½Π° CI / CD, Π΄Π° ΠΎΠ²Π»Π°Π΄Π΅Π΅Ρ‚Π΅ всички Ρ‚ΡŠΠ½ΠΊΠΎΡΡ‚ΠΈ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с Gitlab CI ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈΡ‚Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ, ΠΊΠ°Ρ‚ΠΎ Π·Π°Π²ΡŠΡ€ΡˆΠΈΡ‚Π΅ Π²ΠΈΠ΄Π΅ΠΎ курса β€žCI/CD Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π° Gitlab CIβ€œ... ΠŸΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΠΈ сС към нас!

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€