GitLab CI/CD менен кызматташуу үчүн HashiCorp Waypoint кантип колдонсо болот

GitLab CI/CD менен кызматташуу үчүн HashiCorp Waypoint кантип колдонсо болот

HashiCorp жаңы долбоорду көрсөттү Жол чекити боюнча HashiCorp Digital. Ал Kubernetesтен AWS жана Google Cloud Runге чейинки ар кандай булут платформалары үчүн тиркемелерди курууну, жөнөтүүнү жана чыгарууну сүрөттөө үчүн HCL негизиндеги файлды колдонот. Тиркемелериңизди куруу, жөнөтүү жана чыгаруу процессин сүрөттөп берүү үчүн Waypointти Terraform жана Vagrant катары ойлоп көрүңүз.

Чындыгында, HashiCorp Waypointти ачык булак катары чыгарды жана ал көптөгөн мисалдар менен келет. Оркестрдин деңгээли сизден көз каранды, Waypoint түзмө-түз ноутбукуңузда же CI/CD оркестрлөө куралынан иштей турган аткарылуучу файл катары келет. Колдонмонун жайылтуу максаты да сизге көз каранды, анткени Waypoint Kubernetes, Docker, Google Cloud Run, AWS ECS жана башкаларды колдойт.

Кереметти окугандан кийин документтештирүү жана эң сонун мисалдар HashiCorp тарабынан берилген тиркемелерди эске алуу менен, биз GitLab CI/CD менен Waypoint оркестрин жакшыраак карап чыгууну чечтик. Бул үчүн биз үлгү репозиторийинен AWS ECSде иштеген жөнөкөй Node.js тиркемесин алабыз.

Репозиторийди клондоодон кийин, келгиле, бир баракты көрсөткөн тиркеменин түзүмүн карап көрөлү:

GitLab CI/CD менен кызматташуу үчүн HashiCorp Waypoint кантип колдонсо болот

Сиз байкагандай, бул долбоордо 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) Докер файлын колдонбостон долбоордун программалоо тилин аныктоо жана Докер сүрөтүн түзүү. Негизи, бул GitLab тарабынан жарым-жартылай колдонулган технология Auto DevOps Auto Build кадамында. CNCFдин CNB өнөр жай колдонуучуларынын арасында барган сайын көбүрөөк кабыл алынып жатканын көрүү абдан жакшы.

Сүрөт курулгандан кийин, Waypoint аны автоматтык түрдө биздин AWS ECR реестрибизге жүктөйт жана ал жөнөтүүгө даяр болот. Жыйындын аягында жеткирүү кадамы колдонулат AWS ECS кошумчасы колдонмобузду AWS каттоо эсебибизге жайгаштыруу үчүн.

Менин ноутбуктан бул оңой. Мен AWS каттоо эсебимде ырасталган Waypoint киргиздим жана ал "жөн эле иштейт". Бирок мен ноутбуктун чегинен чыккым келсе эмне болот? Же, балким, мен бул жайгаштырууну жалпы 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 аккаунтубузга киришибиз керек. Waypoint сүрөттөмөсүндө пландары бар аутентификация жана авторизация жөнүндө. HashiCorp да ушул аптада таасирдүү долбоорду чыгарды чек ара. Бирок азырынча биз аутентификацияны жана авторизацияны өзүбүз алып, чече алабыз.

AWSде GitLab CICD аутентификациясынын бир нече варианттары бар. Биринчи параметр камтылган колдонуу болуп саналат HashiCorp Vault. Эгерде сиздин командаңыз эсептик дайындарды башкаруу үчүн Vault колдонуп жатса жакшы болот. Командаңыз авторизацияны AWS IAM аркылуу башкарса, иштей турган дагы бир ыкма - жеткирүү тапшырмалары аркылуу ишке ашырылганын текшерүү. GitLab RunnerIAM аркылуу жайылтууну баштоого ыйгарым укуктуу. Бирок, эгер сиз жөн гана 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. Биздин жөө күлүк AWSде уруксат берилгендиктен, биз жөн гана чуркайбыз waypoint init, build, deploy и release.

Куруу тапшырмасынын жыйынтыгы бизге тиркемени жылдырган акыркы чекитти көрсөтөт:

GitLab CI/CD менен кызматташуу үчүн HashiCorp Waypoint кантип колдонсо болот

Жол пунктунун бири көптөгөн HashiCorp чечимдери, GitLab менен сонун иштейт. Мисалы, тиркемени жеткирүүдөн тышкары, биз негизги инфраструктураны түзө алабыз GitLab ичинде Terraform. SDLC коопсуздугун стандартташтыруу үчүн, биз да ишке ашыра алабыз Vault менен GitLab CI/CD түтүктөрүндөгү сырларды жана токендерди башкаруу үчүн, иштеп чыгуу, сыноо жана өндүрүштө пайдалануу үчүн жашыруун башкарууга таянган иштеп чыгуучулар жана администраторлор үчүн толук чечимди камсыз кылуу.

HashiCorp жана GitLab тарабынан иштелип чыккан биргелешкен чечимдер компанияларга ырааттуу жеткирүү чынжырын жана инфраструктураны башкарууну камсыз кылуу аркылуу тиркемелерди иштеп чыгуунун эң жакшы жолун табууга жардам берет. Waypoint туура багытта дагы бир кадам таштады жана биз долбоордун мындан аркы өнүгүшүн чыдамсыздык менен күтөбүз. Сиз Waypoint жөнүндө көбүрөөк биле аласыз бул жердеизилдөөгө да арзырлык документтештирүү и өнүктүрүү планы долбоор. Биз билимибизди коштук GitLab CICD документтери. Эгер сиз аны өзүңүз сынап көргүңүз келсе, анда толук жумушчу мисалды текшере аласыз бул репозиторий.

Сиз CI / CD принциптерин түшүнүп, Gitlab CI менен иштөөнүн бардык майда-чүйдөсүнө чейин өздөштүрө аласыз жана видеокурсту бүтүрүү менен мыкты тажрыйбаларды колдоно баштасаңыз болот. "CI/CD Gitlab CI мисалында"... Бизге кошул!

Source: www.habr.com

Комментарий кошуу