Ինչպես օգտագործել HashiCorp Waypoint-ը GitLab CI/CD-ի հետ համագործակցելու համար

Ինչպես օգտագործել HashiCorp Waypoint-ը GitLab CI/CD-ի հետ համագործակցելու համար

HashiCorp-ը ցուցադրել է նոր նախագիծ Waypoint մասին HashiCorp թվային. Այն օգտագործում է 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: Դա անելու համար մենք օրինակների պահոցից կվերցնենք AWS ECS-ով աշխատող մի պարզ Node.js հավելված:

Պահեստը կլոնավորելուց հետո եկեք նայենք մեկ էջ ցուցադրող հավելվածի կառուցվածքին.

Ինչպես օգտագործել 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-ը մասամբ Ավտոմատ 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 հաշիվ: Ճանապարհային կետի նկարագրության մեջ ծրագրեր կան նույնականացման և թույլտվության մասին: HashiCorp-ը նաև տպավորիչ նախագիծ է թողարկել այս շաբաթ Սահման. Բայց առայժմ մենք ինքներս կարող ենք կարգավորել նույնականացումը և թույլտվությունը:

AWS-ում GitLab CICD նույնականացման մի քանի տարբերակ կա: Առաջին տարբերակը ներկառուցվածի օգտագործումն է HashiCorp պահոց. Սա հիանալի է, եթե ձեր թիմն արդեն օգտագործում է Vault-ը հավատարմագրերի կառավարման համար: Մեկ այլ տարբերակ, որն աշխատում է, եթե ձեր թիմը կառավարում է թույլտվությունը՝ օգտագործելով AWS IAM, ստուգելն է, որ առաքման առաջադրանքները գործարկվեն միջոցով GitLab Runner, լիազորված է իրականացնել տեղակայումը 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 որպես օրինակ». Միացեք մեզ!

Source: www.habr.com

Добавить комментарий