Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ 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 Π½Π° шагС Auto Build. ΠŸΡ€ΠΈΡΡ‚Π½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ CNB ΠΎΡ‚ CNCF ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ всС большСС распространСниС Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΠ· отрасли.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Ρ€Π°Π· собран, Waypoint автоматичСски Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ Π΅Π³ΠΎ Π² Π½Π°ΡˆΡƒ AWS ECR registry, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π±Ρ‹Π» Π³ΠΎΡ‚ΠΎΠ² ΠΊ поставкС. По ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡŽ сборки шаг поставки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ AWS ECS для развСртывания нашСго прилоТСния Π² Π½Π°ΡˆΡƒ ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись AWS.

Π‘ ΠΌΠΎΠ΅Π³ΠΎ Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ° β€” всС просто. Π― ΡΡ‚Π°Π²Π»ΡŽ Waypoint, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ Π² ΠΌΠΎΠ΅ΠΉ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи AWS, ΠΈ ΠΎΠ½ΠΎ «просто Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Β». Но Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли я Π·Π°Ρ…ΠΎΡ‡Ρƒ Π²Ρ‹ΠΉΡ‚ΠΈ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ ΠΌΠΎΠ΅Π³ΠΎ Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ°? Или Π²Π΄Ρ€ΡƒΠ³ я Ρ…ΠΎΡ‡Ρƒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ части ΠΌΠΎΠ΅Π³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π° CI/CD, Π³Π΄Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΌΠΎΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ тСсты, тСсты бСзопасности ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅? Π­Ρ‚ΠΎ Ρ‚Π° Ρ‡Π°ΡΡ‚ΡŒ рассказа, Π³Π΄Π΅ появляСтся GitLab CI/CD!

N.B. Если Π²Ρ‹ Π΅Ρ‰Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ CI/CD ΠΈΠ»ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ построСния ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΎΠ², ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ курс Π‘Π»Ρ‘Ρ€ΠΌΠ° Β«CI/CD Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Gitlab CIΒ». БСйчас ΠΎΠ½ доступСн ΠΏΠΎ Ρ†Π΅Π½Π΅ ΠΏΡ€Π΅Π΄Π·Π°ΠΊΠ°Π·Π°.

Waypoint Π² GitLab CI/CD

Для оркСстровки всСго этого Π² GitLab CI/CD Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотри, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ понадобится Π² нашСм Ρ„Π°ΠΉΠ»Π΅ .gitlab-ci.yml:

  • Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π½ΡƒΠΆΠ΅Π½ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· для запуска Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ. Waypoint Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° любом дистрибутивС Linux, Π΅ΠΌΡƒ Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Docker, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ с generic ΠΎΠ±Ρ€Π°Π·Π° Docker.
  • Π”Π°Π»Π΅Π΅ Π½Π°Π΄ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Waypoint Π² этот ΠΎΠ±Ρ€Π°Π·. Π’ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π· meta build ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот процСсс для сСбя.
  • НаконСц ΠΌΡ‹ запустим ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Waypoint

Π’Ρ‹ΡˆΠ΅ расписано всС, Ρ‡Ρ‚ΠΎ понадобится Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρƒ для запуска Π½ΡƒΠΆΠ½Ρ‹Ρ… для выполнСния развСртывания скриптов, Π½ΠΎ для развСртывания Π² AWS Π½Π°ΠΌ понадобится Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° Π²Π΅Ρ‰ΡŒ: ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² нашСй ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи AWS. Π’ описании Waypoint Π΅ΡΡ‚ΡŒ ΠΏΠ»Π°Π½Ρ‹ ΠΎΠ± Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. HashiCorp Π½Π° этой Π½Π΅Π΄Π΅Π»Π΅ Ρ‚Π°ΠΊΠΆΠ΅ выпустила Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Boundary. Но Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ просто Π²Π·ΡΡ‚ΡŒ ΠΈ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ.

Для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ GitLab CICD Π² AWS Π΅ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ². ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” использованиС встроСнного HashiCorp Vault. Он ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚, Ссли ваша ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡƒΠΆΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Vault для управлСния ΡƒΡ‡Π΅Ρ‚Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ссли ваша ΠΊΠΎΠΌΠ°Π½Π΄Π° управляСт Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ AWS IAM β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π·Π°Π΄Π°Ρ‡ΠΈ поставки Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· GitLab Runner, Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ для запуска развСртывания Ρ‡Π΅Ρ€Π΅Π· IAM. Но Ссли Π²Ρ‹ просто Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Waypoint ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ побыстрСС, Π΅ΡΡ‚ΡŒ послСдний Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ваши ΠΊΠ»ΡŽΡ‡ΠΈ AWS API ΠΈ Secret Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния 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. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ наш runner ΡƒΠΆΠ΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½ Π² AWS, Π΄Π°Π»Π΅Π΅ ΠΌΡ‹ просто запускаСм waypoint init, build, deploy ΠΈ release.

Π’Ρ‹Π²ΠΎΠ΄ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ сборкС ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π½Π°ΠΌ endpoint, ΠΊΡƒΠ΄Π° ΠΌΡ‹ раскатили ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ HashiCorp Waypoint для совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ с GitLab CI/CD

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

БовмСстныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ HashiCorp ΠΈ GitLab, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ компаниям Π½Π°ΠΉΡ‚ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΉ способ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, обСспСчивая согласованноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ поставки ΠΈ инфраструктурой. Waypoint сдСлали Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ шаг Π² Π²Π΅Ρ€Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, ΠΈ ΠΌΡ‹ с Π½Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ дальнСйшСго развития ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Waypoint здСсь, Ρ‚Π°ΠΊΠΆΠ΅ стоит ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈ ΠΏΠ»Π°Π½ развития ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠœΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π½Π°ΠΌΠΈ знания Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ GitLab CICD. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ всС Π² Ρ€Π°Π±ΠΎΡ‚Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π·ΡΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ работоспособный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² этом Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

ΠŸΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ CI/CD, ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ всС тонкости Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Gitlab CI ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ, пройдя видСокурс Β«CI/CD Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Gitlab CIΒ». ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ!

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