Yuav ua li cas siv HashiCorp Waypoint los koom tes nrog GitLab CI / CD

Yuav ua li cas siv HashiCorp Waypoint los koom tes nrog GitLab CI / CD

HashiCorp tau nthuav tawm qhov project tshiab Txoj kev xav rau HashiCorp Digital. Nws siv HCL-raws li cov ntaub ntawv los piav qhia txog kev tsim, xa tawm, thiab tso tawm cov ntawv thov rau ntau lub platform huab, xws li Kubernetes rau AWS rau Google Cloud Run. Koj tuaj yeem xav txog Waypoint li Terraform thiab Vagrant ua ke los piav qhia txog cov txheej txheem ntawm lub tsev, xa khoom, thiab tso koj daim ntawv thov.

Muaj tseeb rau daim ntawv, HashiCorp tau tso tawm Waypoint ua qhov qhib thiab tuaj nrog ntau yam piv txwv. Cov txheej txheem orchestrator yog nyob ntawm koj, Waypoint los ua qhov kev ua tiav uas koj tuaj yeem khiav ncaj qha ntawm koj lub laptop lossis los ntawm koj qhov CI / CD orchestration cuab yeej xaiv. Lub hom phiaj rau kev xa koj cov ntawv thov kuj yog nyob ntawm koj, raws li Waypoint txhawb Kubernetes, Docker, Google Cloud Run, AWS ECS, thiab ntau dua.

Tom qab nyeem ntawv txaus cov ntaub ntawv thiab luxurious tshaj plaws piv txwv daim ntawv thov muab los ntawm HashiCorp, peb txiav txim siab los saib ze dua ntawm Waypoint orchestration siv GitLab CI / CD. Txhawm rau ua qhov no, peb yuav siv qhov yooj yim Node.js daim ntawv thov khiav ntawm AWS ECS los ntawm cov piv txwv repository.

Tom qab cloning lub repository, cia saib cov qauv ntawm daim ntawv thov tso saib ib nplooj ntawv:

Yuav ua li cas siv HashiCorp Waypoint los koom tes nrog GitLab CI / CD

Raws li koj tau pom, qhov project no tsis muaj Dockerfile. Lawv tsis tau ntxiv rau hauv qhov piv txwv, vim hais tias hauv paus ntsiab lus peb tsis xav tau lawv, vim Waypoint yuav saib xyuas lawv rau peb. Cia wb mus saib cov ntaub ntawv waypoint.hclkom nkag siab tias nws yuav ua li cas:

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

Thaum lub sijhawm tsim, Waypoint siv Cloud Native Buildpacks (CNB) txhawm rau txiav txim siab qhov project cov lus programming thiab tsim Docker duab yam tsis siv Dockerfile. Hauv txoj cai, qhov no yog tib lub thev naus laus zis uas GitLab siv hauv ib feem Auto DevOps ntawm Auto Build step. Nws yog qhov zoo kom pom tias CNCF's CNB tau txais ntau dua ntawm cov neeg siv kev lag luam.

Thaum cov duab tau tsim, Waypoint yuav cia li muab nws tso rau hauv peb lub npe AWS ECR kom nws npaj txhij rau kev xa khoom. Thaum qhov kev tsim ua tiav, cov kauj ruam xa khoom siv AWS ECS add-on xa peb daim ntawv thov mus rau peb tus account AWS.

Los ntawm kuv lub laptop - txhua yam yog yooj yim. Kuv muab Waypoint uas twb tau lees paub rau hauv kuv tus account AWS thiab nws "tsuas yog ua haujlwm". Tab sis yuav ua li cas yog tias kuv xav mus dhau kuv lub laptop? Los yog kuv puas xav tau automate qhov kev xa tawm no ua ib feem ntawm kuv tag nrho CI / CD cov kav dej, qhov twg kuv qhov kev sib koom ua ke tsis tu ncua, kev ntsuam xyuas kev ruaj ntseg, thiab lwm yam khiav? Nov yog ib feem ntawm zaj dab neeg uas GitLab CI / CD los rau hauv!

NB Yog tias koj tsuas yog npaj los siv CI / CD lossis xav pib siv cov kev coj ua zoo tshaj plaws rau kev tsim cov kav dej, ua tib zoo mloog Slurm cov chav kawm tshiab "CI / CD siv Gitlab CI ua piv txwv". Nws yog tam sim no muaj nyob rau ntawm pre-order nqi.

Waypoint hauv GitLab CI/CD

Txhawm rau tswj hwm txhua qhov no hauv GitLab CI / CD, cia saib seb peb xav tau dab tsi hauv peb cov ntaub ntawv .gitlab-ci.yml:

  • Ua ntej tshaj plaws, koj xav tau lub hauv paus duab los khiav hauv nws. Waypoint ua haujlwm ntawm txhua qhov Linux faib, nws tsuas yog xav tau Docker, yog li peb tuaj yeem khiav nrog cov duab Docker.
  • Tom ntej no koj yuav tsum nruab Waypoint hauv daim duab no. Yav tom ntej peb yuav sau duab meta tsim thiab ntim cov txheej txheem no rau koj tus kheej.
  • Thaum kawg peb yuav khiav cov lus txib Waypoint

Cov saum toj no qhia txog txhua yam peb cov raj xa dej yuav tsum tau khiav cov ntawv xav tau los ua kom tiav qhov kev xa mus, tab sis kom xa mus rau AWS peb yuav xav tau ib qho ntxiv: peb yuav tsum tau nkag mus rau hauv peb tus account AWS. Hauv Waypoint piav qhia muaj kev npaj txog authentication thiab tso cai. HashiCorp kuj tau tshaj tawm txoj haujlwm zoo kawg rau lub lim tiam no ciam. Tab sis rau tam sim no, peb tsuas tuaj yeem tswj xyuas qhov tseeb thiab tso cai rau peb tus kheej.

Muaj ntau txoj kev xaiv rau GitLab CICD authentication hauv AWS. Thawj qhov kev xaiv yog siv lub built-in HashiCorp Vault. Qhov no yog qhov zoo yog tias koj pab neeg twb siv Vault rau kev tswj hwm kev lees paub. Lwm qhov kev xaiv uas ua haujlwm yog tias koj pab neeg tswj hwm kev tso cai siv AWS IAM yog txhawm rau xyuas tias cov haujlwm xa khoom tau tshwm sim los ntawm GitLab Khiav, tso cai rau khiav kev xa tawm los ntawm IAM. Tab sis yog tias koj tsuas yog xav paub txog Waypoint thiab xav ua sai sai, muaj ib qho kev xaiv kawg - ntxiv koj cov AWS API thiab cov yuam sij zais cia. GitLab CI/CD ib puag ncig hloov pauv AWS_ACCESS_KEY_ID ΠΈ AWS_SECRET_ACCESS_KEY.

Muab tag nrho ua ke

Thaum peb nkag siab qhov kev lees paub, peb tuaj yeem pib! Peb qhov kawg .gitlab-ci.yml zoo li no:

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

Koj pom tias peb pib nrog ib daim duab docker:latest thiab teeb tsa ntau qhov kev hloov pauv ib puag ncig uas xav tau los ntawm Waypoint. Hauv tshooj script peb download tau qhov tseeb version ntawm Waypoint executable thiab nruab rau hauv /usr/local/bin. Txij li thaum peb tus neeg khiav dej num twb tau tso cai hauv AWS, tom ntej no peb tsuas yog khiav waypoint init, build, deploy ΠΈ release.

Cov txiaj ntsig ntawm kev tsim ua haujlwm yuav qhia peb qhov kawg uas peb tau dov tawm daim ntawv thov:

Yuav ua li cas siv HashiCorp Waypoint los koom tes nrog GitLab CI / CD

Waypoint ib ntau yam kev daws teeb meem HashiCorp, ua haujlwm zoo nrog GitLab. Piv txwv li, ntxiv rau kev xa daim ntawv thov, peb tuaj yeem orchestrate lub hauv paus infrastructure siv Terraform ntawm GitLab. Txhawm rau ua qauv SDLC kev ruaj ntseg, peb tuaj yeem siv tau GitLab nrog Vault rau kev tswj cov lus zais thiab cov tokens hauv CI / CD cov kav dej, muab kev daws teeb meem rau cov neeg tsim khoom thiab cov thawj coj uas tso siab rau kev tswj hwm kev zais cia rau kev txhim kho, kev sim, thiab kev siv ntau lawm.

Cov kev daws teeb meem sib koom tsim los ntawm HashiCorp thiab GitLab pab cov tuam txhab nrhiav txoj hauv kev zoo dua los tsim cov ntawv thov los ntawm kev muab kev tswj xyuas zoo ib yam ntawm cov kav xa dej thiab cov txheej txheem. Waypoint tau ua lwm kauj ruam ntawm txoj kev yog thiab peb tos ntsoov rau kev txhim kho txuas ntxiv ntawm qhov project. Koj tuaj yeem paub ntau ntxiv txog Waypoint no, kuj tsim nyog tshawb nrhiav cov ntaub ntawv ΠΈ txoj kev loj hlob qhov project. Peb tau ntxiv cov kev paub uas peb tau txais GitLab CICD cov ntaub ntawv. Yog tias koj xav sim txhua yam ntawm koj tus kheej, koj tuaj yeem ua tus qauv ua tiav hauv qhov chaw khaws cia.

Koj tuaj yeem nkag siab cov hauv paus ntsiab lus ntawm CI / CD, paub txhua qhov tsis sib xws ntawm kev ua haujlwm nrog Gitlab CI thiab pib siv cov kev coj ua zoo tshaj plaws los ntawm kev kawm video "CI / CD siv Gitlab CI ua piv txwv". Koom nrog peb!

Tau qhov twg los: www.hab.com

Ntxiv ib saib