Pehea e hoʻohana ai iā HashiCorp Waypoint e hui pū me GitLab CI/CD

Pehea e hoʻohana ai iā HashiCorp Waypoint e hui pū me GitLab CI/CD

Ua hōʻike ʻo HashiCorp i kahi papahana hou Kahi kiko maluna o Kikohoʻe HashiCorp. Hoʻohana ʻo ia i kahi faila HCL e wehewehe i ke kūkulu ʻana, ka lawe ʻana, a me ka hoʻokuʻu ʻana i nā noi no nā ʻano kapuaʻi like ʻole, mai nā Kubernetes a i AWS a i Google Cloud Run. Hiki iā ʻoe ke noʻonoʻo iā Waypoint e like me Terraform a me Vagrant i hui pū ʻia e wehewehe i ke kaʻina hana o ke kūkulu ʻana, hoʻouna ʻana, a me ka hoʻokuʻu ʻana i kāu mau noi.

ʻOiaʻiʻo i ke ʻano, ua hoʻokuʻu ʻo HashiCorp i Waypoint ma ke ʻano he open source a hele mai me nā hiʻohiʻona he nui. Aia iā ʻoe ka papa orchestrator, hele mai ʻo Waypoint ma ke ʻano he mea hoʻokō hiki iā ʻoe ke holo pololei ma kāu kamepiula a i ʻole mai kāu mea hana orchestration CI/CD o ke koho. Aia nō iā ʻoe ka pahuhopu no ka lawe ʻana i kāu mau noi, ʻoiai ke kākoʻo nei ʻo Waypoint iā Kubernetes, Docker, Google Cloud Run, AWS ECS, a me nā mea hou aku.

Ma hope o ka heluhelu ʻana i ka weliweli palapala a me ka mea nani loa nā hiʻohiʻona nā noi i hāʻawi ʻia e HashiCorp, ua hoʻoholo mākou e nānā pono i ka orchestration Waypoint me ka hoʻohana ʻana iā GitLab CI/CD. No ka hana ʻana i kēia, e lawe mākou i kahi noi Node.js maʻalahi e holo ana ma AWS ECS mai ka waihona hoʻohālike.

Ma hope o ka cloning i ka waihona, e nānā i ke ʻano o ka noi e hōʻike ana i hoʻokahi ʻaoʻao:

Pehea e hoʻohana ai iā HashiCorp Waypoint e hui pū me GitLab CI/CD

E like me kāu i ʻike ai, ʻaʻohe Dockerfile kēia papahana. ʻAʻole lākou i hoʻohui ʻia i ka laʻana, no ka mea, ʻaʻole pono mākou iā lākou, no ka mea e mālama ʻo Waypoint iā lākou no mākou. E nānā pono kākou i ka faila waypoint.hcle hoʻomaopopo i kāna mea e hana ai:

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

I ka wā kūkulu, hoʻohana ʻo Waypoint i nā Cloud Native Buildpacks (CNB) e hoʻoholo i ka ʻōlelo hoʻolālā o ka papahana a hana i kahi kiʻi Docker me ka hoʻohana ʻole i kahi Dockerfile. Ma ke kumu, ʻo ia ka ʻenehana like a GitLab e hoʻohana ai i kahi hapa Auto DevOps ma ka ʻanuʻu Auto Build. Maikaʻi ka ʻike ʻana e loaʻa hou ana ka CNB o CNCF i waena o nā mea hoʻohana ʻoihana.

Ke kūkulu ʻia ke kiʻi, e hoʻouka ʻokoʻa ʻo Waypoint iā ia i kā mākou papa inoa AWS ECR no laila ua mākaukau ia no ka lawe ʻana. Ke hoʻopau ʻia ke kūkulu ʻana, hoʻohana ka hana hoʻouna Pākuʻi AWS ECS e kau i kā mākou noi i kā mākou moʻokāki AWS.

Mai kaʻu pona - maʻalahi nā mea a pau. Hoʻokomo wau i kahi Waypoint i hōʻoia ʻia i kaʻu moʻokāki AWS a "hana wale". Akā he aha ka hopena inā makemake wau e hele ma mua o kaʻu kamepiula? A i ʻole makemake koke wau e hoʻokaʻawale i kēia hoʻolālā ma ke ʻano he ʻāpana o kaʻu pipeline CI/CD holoʻokoʻa, kahi e holo ai kaʻu mau hoʻāʻo hoʻohui ʻana, nā hoʻokolohua palekana, a me nā mea ʻē aʻe? ʻO kēia ka ʻāpana o ka moʻolelo kahi i komo ai ʻo GitLab CI/CD!

NB Inā ʻoe e hoʻolālā nei e hoʻokō i ka CI/CD a i ʻole makemake e hoʻomaka i ka hoʻohana ʻana i nā hoʻomaʻamaʻa maikaʻi loa no ke kūkulu ʻana i nā paipu, e hoʻolohe i ka papa hou o Slurm. "CI / CD e hoʻohana ana iā Gitlab CI ma ke ʻano he laʻana". Loaʻa ia ma ke kumu kūʻai mua.

Waypoint ma GitLab CI/CD

No ka hoʻonohonoho ʻana i kēia mau mea a pau ma GitLab CI/CD, e nānā i nā mea e pono ai mākou i kā mākou faila .gitlab-ci.yml:

  • ʻO ka mea mua, pono ʻoe i kahi kiʻi kumu e holo ai i loko. Ke hana nei ʻo Waypoint ma kekahi mahele Linux, pono wale iā Docker, no laila hiki iā mākou ke holo me kahi kiʻi Docker generic.
  • A laila pono ʻoe e hoʻokomo i Waypoint ma kēia kiʻi. I ka wā e hiki mai ana hiki iā mākou ke hōʻiliʻili kūkulu kiʻi meta a containerize i kēia kaʻina hana nou iho.
  • Ma hope e holo mākou i nā kauoha Waypoint

Hōʻike ka mea i luna i nā mea āpau e pono ai kā mākou pipeline e holo i nā palapala e pono ai e hoʻopau i ka hoʻoili ʻana, akā no ka hoʻoili ʻana iā AWS e pono ai mākou i hoʻokahi mea hou: pono mākou e hoʻokomo i kā mākou moʻokāki AWS. Ma ka wehewehe ʻana o Waypoint aia nā hoʻolālā e pili ana i ka hōʻoia a me ka ʻae. Ua hoʻokuʻu ʻo HashiCorp i kahi papahana hoihoi i kēia pule Ka palena. Akā i kēia manawa, hiki iā mākou ke mālama i ka hōʻoia a me ka ʻae iā mākou iho.

Nui nā koho no ka hōʻoia ʻana o GitLab CICD ma AWS. ʻO ka koho mua e hoʻohana i ka mea i kūkulu ʻia Hale Waihona HashiCorp. He mea maikaʻi kēia inā hoʻohana mua kāu hui iā Vault no ka hoʻokele hōʻoia. ʻO kahi koho ʻē aʻe e hana inā ke hoʻokele nei kāu hui i ka ʻae me ka hoʻohana ʻana i ka AWS IAM ʻo ka nānā ʻana i nā hana hoʻopuka i hoʻomaka ʻia ma o Ka holo ʻana o GitLab, ʻae ʻia e holo i ka hoʻolaha ma o IAM. Akā inā makemake ʻoe e kamaʻāina me Waypoint a makemake e hana wikiwiki, aia kahi koho hope loa - hoʻohui i kāu AWS API a me nā kī huna i GitLab CI/CD nā ʻano hoʻololi kaiapuni AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Hoʻohui pū ʻia

Ke hoʻomaopopo mākou i ka hōʻoia, hiki iā mākou ke hoʻomaka! ʻO kā mākou hope .gitlab-ci.yml ʻano like ʻole o kēia:

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

ʻIke ʻoe e hoʻomaka mākou me kahi kiʻi docker:latest a hoʻonoho i kekahi mau mea hoʻololi kaiapuni i koi ʻia e Waypoint. Ma ka mokuna script Hoʻoiho mākou i ka mana hou loa o ka Waypoint executable a hoʻokomo iā ia i loko /usr/local/bin. No ka mea ua ʻae ʻia kā mākou mea holo ma AWS, a laila holo wale mākou waypoint init, build, deploy и release.

ʻO ka hopena o ka hana kūkulu e hōʻike iā mākou i ka hopena kahi i ʻōwili ai mākou i ka noi:

Pehea e hoʻohana ai iā HashiCorp Waypoint e hui pū me GitLab CI/CD

Waypoint kekahi o nui nā haʻina HashiCorp, hana maikaʻi me GitLab. No ka laʻana, ma waho aʻe o ka hāʻawi ʻana i ka noi, hiki iā mākou ke hoʻonohonoho i ka ʻōnaehana kumu e hoʻohana ana Terraform ma GitLab. No ka hoʻohālikelike ʻana i ka palekana SDLC, hiki iā mākou ke hoʻokō GitLab me Vault no ka mālama ʻana i nā mea huna a me nā hōʻailona i nā pipeline CI / CD, e hāʻawi ana i kahi hopena holoʻokoʻa no nā mea hoʻomohala a me nā luna hoʻomalu e hilinaʻi nei i ka hoʻokele huna no ka hoʻomohala ʻana, ka hoʻāʻo ʻana, a me ka hoʻohana ʻana i ka hana.

ʻO nā hoʻonā hui i hoʻomohala ʻia e HashiCorp a me GitLab kōkua i nā ʻoihana e ʻimi i kahi ala maikaʻi aʻe e hoʻomohala ai i nā noi ma o ka hoʻolako ʻana i ka hoʻokele mau ʻana o nā pipeline hoʻopuka a me nā ʻoihana. Ua hana hou ʻo Waypoint i ke ala kūpono a ke kakali nei mākou i ka hoʻomau ʻana o ka papahana. Hiki iā ʻoe ke ʻike hou aku e pili ana i Waypoint maanei, pono e makaikai palapala и hoʻolālā hoʻomohala papahana. Ua hoʻohui mākou i ka ʻike i loaʻa iā mākou Nā palapala CICD GitLab. Inā makemake ʻoe e hoʻāʻo iā ʻoe iho i nā mea āpau, hiki iā ʻoe ke lawe i kahi hiʻohiʻona hana piha keia waihona.

Hiki iā ʻoe ke hoʻomaopopo i nā loina o CI/CD, haku i nā mea paʻakikī o ka hana ʻana me Gitlab CI a hoʻomaka i ka hoʻohana ʻana i nā hana maikaʻi loa ma ka lawe ʻana i kahi papa wikiō. "CI / CD e hoʻohana ana iā Gitlab CI ma ke ʻano he laʻana". E hui pū me mākou!

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka