Kouman pou itilize HashiCorp Waypoint pou kolabore ak GitLab CI/CD

Kouman pou itilize HashiCorp Waypoint pou kolabore ak GitLab CI/CD

HashiCorp te montre yon nouvo pwojè etap sou HashiCorp Digital. Li itilize yon fichye ki baze sou HCL pou dekri aplikasyon pou konstriksyon, anbake ak lage aplikasyon pou divès platfòm nwaj ki soti nan Kubernetes rive nan AWS ak Google Cloud Run. Panse a Waypoint kòm Terraform ak Vagrant mete ansanm pou dekri pwosesis pou konstwi, anbake, ak pibliye aplikasyon w yo.

Vrè fòm, HashiCorp te lage Waypoint kòm sous louvri, epi li vini ak yon anpil nan egzanp. Nivo orchestrator a se ou menm, Waypoint vini kòm yon ègzèkutabl ke ou ka kouri dirèkteman sou laptop ou oswa nan zouti CI/CD orchestration ou chwazi a. Objektif deplwaman aplikasyon an tou se ou menm, kòm Waypoint sipòte Kubernetes, Docker, Google Cloud Run, AWS ECS, ak plis ankò.

Apre li awizom la dokimantasyon ak pi chik la egzanp aplikasyon HashiCorp te founi, nou te deside pran yon gade pi pre nan waypoint orchestration ak GitLab CI/CD. Pou fè sa, nou pral pran yon senp aplikasyon Node.js ki kouri sou AWS ECS nan depo echantiyon an.

Apre klonaj depo a, ann gade nan estrikti aplikasyon an ki montre yon paj:

Kouman pou itilize HashiCorp Waypoint pou kolabore ak GitLab CI/CD

Kòm ou ka remake, pa gen okenn Dockerfile nan pwojè sa a. Yo pa ajoute nan egzanp lan paske nou pa vrèman bezwen yo, paske Waypoint ap pran swen yo pou nou. Ann pran yon gade pi pre nan dosye a waypoint.hclpou konprann sa li pral fè:

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

Pandan faz konstriksyon an, Waypoint itilize Cloud Native Buildpacks (CNB) pou detèmine langaj pwogramasyon pwojè a epi kreye yon imaj Docker san w pa itilize yon Dockerfile. An prensip, sa a se menm teknoloji ki itilize pa GitLab an pati Auto DevOps nan etap la Auto Build. Li bon pou wè ke CNB CNCF a ap pran pi plis ak plis adopsyon nan mitan itilizatè endistri yo.

Yon fwa yo fin bati imaj la, Waypoint pral otomatikman telechaje li nan rejis AWS ECR nou an pou li pare pou voye l. Nan fen asanble a, etap livrezon an itilize AWS ECS ajoute sou pou deplwaye aplikasyon nou an sou kont AWS nou an.

Soti nan laptop mwen an li fasil. Mwen mete nan Waypoint ki deja otantifye nan kont AWS mwen an epi li "jis travay". Men, sa k ap pase si mwen vle ale pi lwen pase laptop mwen an? Oswa petèt mwen vle otomatize deplwaman sa a kòm yon pati nan tiyo jeneral CI/CD mwen kote tès entegrasyon mwen ye kounye a, tès sekirite, ak lòt moun kouri? Sa a se pati nan istwa a kote GitLab CI/CD vini nan!

NB Si w ap jis planifye aplike CI / CD oswa ou vle kòmanse aplike pi bon pratik yo pou konstwi tiyo, peye atansyon sou nouvo kou Slurm la. "CI/CD sou egzanp Gitlab CI". Kounye a li disponib pou pri pre-lòd.

Waypoint nan GitLab CI/CD

Pou òganize tout bagay sa yo nan GitLab CI/CD, ann wè sa nou bezwen nan dosye nou an. .gitlab-ci.yml:

  • Premye a tout, ou bezwen yon imaj de baz kouri andedan li. Waypoint kouri sou nenpòt distribisyon Linux, li sèlman bezwen Docker, pou nou ka kouri ak yon imaj jenerik Docker.
  • Apre sa, ou bezwen enstale Waypoint nan imaj sa a. Nan fiti nou ka kolekte meta bati imaj epi mete kontenè pwosesis sa a pou tèt ou.
  • Finalman nou pral kouri kòmandman Waypoint yo

Pi wo a se tout bagay tiyo nou an ap bezwen pou kouri scripts ki nesesè pou fè deplwaman an, men pou deplwaye nan AWS, nou bezwen yon lòt bagay ankò: nou dwe konekte nan kont AWS nou an. Nan deskripsyon Waypoint gen plan sou otantifikasyon ak otorizasyon. HashiCorp te pibliye tou yon pwojè enpresyonan semèn sa a Lizyè. Men, pou kounye a, nou ka jis pran ak okipe otantifikasyon ak otorizasyon tèt nou.

Gen plizyè opsyon pou otantifikasyon GitLab CICD sou AWS. Premye opsyon a se sèvi ak bati-an HashiCorp vout. Li bon si ekip ou a deja itilize Vault pou jesyon kalifikasyon. Yon lòt metòd ki travay si ekip ou a jere otorizasyon lè l sèvi avèk AWS IAM se tcheke si travay livrezon yo deklanche atravè GitLab kourèA ki otorize pou kòmanse deplwaman atravè IAM. Men, si ou jis vle abitye ak Waypoint epi ou vle fè li byen vit, dènye opsyon an se ajoute API AWS ou ak kle sekrè a. Varyab anviwònman GitLab CI/CD AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Mete li tout ansanm

Yon fwa nou kalkile otantifikasyon an, nou ka kòmanse! Final nou an .gitlab-ci.yml sanble tankou sa a:

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

Ou wè nou kòmanse ak yon imaj docker:latest epi mete kèk varyab anviwònman Waypoint mande yo. Nan chapit script nou telechaje dènye Waypoint ègzekutabl la epi mete l nan /usr/local/bin. Depi kourè nou an deja otorize nan AWS, Lè sa a, nou tou senpleman kouri waypoint init, build, deploy и release.

Pwodiksyon an nan travay la bati pral montre nou pwen final la kote nou woule aplikasyon an:

Kouman pou itilize HashiCorp Waypoint pou kolabore ak GitLab CI/CD

Waypoint youn nan anpil solisyon HashiCorp, ki travay byen ak GitLab. Pou egzanp, anplis de livrezon aplikasyon an, nou ka òkestre enfrastrikti ki kache a Terraform nan GitLab. Pou estandadize sekirite SDLC, nou ka aplike tou GitLab ak vout pou jere sekrè ak siy nan tiyo CI/CD, bay yon solisyon konplè pou devlopè ak administratè ki konte sou jesyon sekrè pou devlopman, tès, ak itilizasyon pwodiksyon.

Solisyon konjwen yo devlope pa HashiCorp ak GitLab ede konpayi yo jwenn pi bon fason pou devlope aplikasyon yo lè yo asire chèn ekipman ak jesyon enfrastrikti ki konsistan. Waypoint te fè yon lòt etap nan bon direksyon an epi nou espere plis devlopman nan pwojè a. Ou ka aprann plis sou Waypoint isit latou vo eksplore dokimantasyon и plan devlopman pwojè. Nou te ajoute konesans nou an GitLab CICD dokiman. Si ou vle eseye li tèt ou, ou ka tcheke egzanp konplè k ap travay nan depo sa a.

Ou ka konprann prensip CI / CD, metrize tout sibtilite yo nan travay ak Gitlab CI epi kòmanse aplike pi bon pratik lè w konplete kou videyo a. "CI/CD sou egzanp Gitlab CI". Antre nan kounye a!

Sous: www.habr.com

Add nouvo kòmantè