Како користити ХасхиЦорп Ваипоинт за сарадњу са ГитЛаб ЦИ/ЦД

Како користити ХасхиЦорп Ваипоинт за сарадњу са ГитЛаб ЦИ/ЦД

ХасхиЦорп је показао нови пројекат Путна тачка на ХасхиЦорп Дигитал. Користи датотеку засновану на ХЦЛ-у да опише прављење, испоруку и издавање апликација за различите платформе у облаку, у распону од Кубернетес-а преко АВС-а до Гоогле Цлоуд Рун-а. Можете замислити Ваипоинт као Терраформ и Вагрант у комбинацији да опишете процес изградње, отпреме и објављивања ваших апликација.

Истина, ХасхиЦорп је објавио Ваипоинт као отворени код и долази са много примера. Слој оркестратора зависи од вас, Ваипоинт долази као извршни фајл који можете покренути директно на свом лаптопу или из вашег ЦИ/ЦД алата за оркестрацију по избору. Циљ за примену ваших апликација такође зависи од вас, јер Ваипоинт подржава Кубернетес, Доцкер, Гоогле Цлоуд Рун, АВС ЕЦС и још много тога.

Након читања страшног документација и најлуксузније примери апликације које је обезбедио ХасхиЦорп, одлучили смо да ближе погледамо Ваипоинт оркестрацију користећи ГитЛаб ЦИ/ЦД. Да бисмо то урадили, узећемо једноставну Ноде.јс апликацију која ради на АВС ЕЦС из складишта примера.

Након клонирања спремишта, погледајмо структуру апликације која приказује једну страницу:

Како користити ХасхиЦорп Ваипоинт за сарадњу са ГитЛаб ЦИ/ЦД

Као што сте можда приметили, овај пројекат нема Доцкерфиле. Они нису додати у примеру, јер нам у принципу нису потребни, јер ће се Ваипоинт побринути за њих уместо нас. Хајде да детаљније погледамо фајл 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"
    }
  }
}

Током фазе прављења, Ваипоинт користи Цлоуд Нативе Буилдпацкс (ЦНБ) да бисте одредили програмски језик пројекта и креирали Доцкер слику без употребе Доцкерфиле-а. У принципу, ово је иста технологија коју ГитЛаб делимично користи Ауто ДевОпс у кораку Ауто Буилд. Добро је видети да ЦНЦФ-ов ЦНБ добија све више усвајања међу корисницима индустрије.

Када се слика направи, Ваипоинт ће је аутоматски отпремити у наш АВС ЕЦР регистар тако да је спремна за испоруку. Када се изградња заврши, користи се корак испоруке АВС ЕЦС додатак да применимо нашу апликацију на наш АВС налог.

Са мог лаптопа - све је једноставно. Ставио сам Ваипоинт који је већ аутентификован на мој АВС налог и он „само ради“. Али шта се дешава ако желим да превазиђем свој лаптоп? Или одједном желим да аутоматизујем ову примену као део свог целокупног ЦИ/ЦД цевовода, где се покрећу моји текући тестови интеграције, безбедносни тестови и други? Ово је део приче где долази ГитЛаб ЦИ/ЦД!

НБ Ако само планирате да имплементирате ЦИ/ЦД или желите да почнете да примењујете најбоље праксе за изградњу цевовода, обратите пажњу на Слурмов нови курс „ЦИ/ЦД користећи Гитлаб ЦИ као пример“. Сада је доступан по цени унапред.

Тачка пута у ГитЛаб ЦИ/ЦД

Да бисмо све ово оркестрирали у ГитЛаб ЦИ/ЦД, погледајмо шта нам је потребно у нашој датотеци .gitlab-ci.yml:

  • Пре свега, потребна вам је основна слика која ће се покренути унутар ње. Ваипоинт ради на било којој Линук дистрибуцији, потребан јој је само Доцкер, тако да можемо да радимо са генеричком Доцкер сликом.
  • Затим морате да инсталирате Ваипоинт на овој слици. У будућности можемо да прикупљамо слика мета буилд и спремите овај процес за себе.
  • На крају ћемо покренути команде Ваипоинт

Горе наведено описује све што ће нашем цевоводу требати да покрене скрипте потребне за довршетак имплементације, али за имплементацију на АВС биће нам потребна још једна ствар: морамо бити пријављени на наш АВС налог. У опису Ваипоинт постоје планови о аутентификацији и ауторизацији. ХасхиЦорп је такође објавио импресиван пројекат ове недеље Граница. Али за сада можемо сами да се бавимо аутентификацијом и ауторизацијом.

Постоји неколико опција за ГитЛаб ЦИЦД аутентификацију у АВС-у. Прва опција је коришћење уграђеног ХасхиЦорп трезор. Ово је сјајно ако ваш тим већ користи Ваулт за управљање акредитивима. Друга опција која функционише ако ваш тим управља ауторизацијом користећи АВС ИАМ је да проверите да ли се задаци испоруке покрећу преко ГитЛаб Руннер, овлашћен за покретање имплементације преко ИАМ-а. Али ако само желите да се упознате са Ваипоинт-ом и желите то да урадите брзо, постоји последња опција - додајте свој АВС АПИ и тајне кључеве у ГитЛаб ЦИ/ЦД променљиве окружења 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 и поставити неколико променљивих окружења које захтева Ваипоинт. У поглављу script преузимамо најновију верзију извршног програма Ваипоинт и инсталирамо га /usr/local/bin. Пошто је наш тркач већ ауторизован у АВС-у, следеће једноставно покрећемо waypoint init, build, deploy и release.

Излаз задатка изградње ће нам показати крајњу тачку на којој смо представили апликацију:

Како користити ХасхиЦорп Ваипоинт за сарадњу са ГитЛаб ЦИ/ЦД

Путна тачка један од бројна ХасхиЦорп решења, ради одлично са ГитЛабом. На пример, поред испоруке апликације, можемо да оркестрирамо основну инфраструктуру користећи Терраформ на ГитЛабу. Да бисмо стандардизовали СДЛЦ безбедност, такође можемо да имплементирамо ГитЛаб са трезором за управљање тајнама и токенима у ЦИ/ЦД цевоводима, пружајући холистичко решење за програмере и администраторе који се ослањају на управљање тајнама за развој, тестирање и употребу у производњи.

Заједничка решења која су развили ХасхиЦорп и ГитЛаб помажу компанијама да пронађу бољи начин за развој апликација обезбеђујући доследно управљање цевоводима за испоруку и инфраструктуром. Ваипоинт је направио још један корак у правом смеру и радујемо се наставку развоја пројекта. Можете сазнати више о Ваипоинт-у овде, такође вреди истражити документација и План развоја пројекат. Додали смо знање које смо стекли ГитЛаб ЦИЦД документација. Ако желите све сами да испробате, можете узети комплетан радни пример ово спремиште.

Можете разумети принципе ЦИ/ЦД, савладати све замршености рада са Гитлаб ЦИ и почети да примењујете најбоље праксе тако што ћете похађати видео курс „ЦИ/ЦД користећи Гитлаб ЦИ као пример“... Придружи нам се!

Извор: ввв.хабр.цом

Додај коментар