Kuidas kasutada HashiCorp Waypoint'i GitLab CI/CD-ga koostööks

Kuidas kasutada HashiCorp Waypoint'i GitLab CI/CD-ga koostööks

HashiCorp tutvustas uut projekti Waypoint . Tundub, et HashiCorp Digital. See kasutab HCL-pÔhist faili, et kirjeldada rakenduste koostamist, tarnimist ja vÀljalaset erinevatele pilveplatvormidele alates Kubernetesest kuni AWS ja Google Cloud Runini. Waypointit vÔib pidada Terraformi ja Vagrandi koosmÔjuks, et kirjeldada teie rakenduste koostamise, tarnimise ja vÀljalaske protsessi.

Ilma enda olemust muutmata on HashiCorp vĂ€lja andnud avatud lĂ€htekoodiga Waypoint'i, millele on lisatud arvukalt nĂ€iteid. Orkestreerimise tase jÀÀb teie otsustada; Waypoint on saadaval kĂ€ivitatava failina, mida saad kĂ€ivitada otse oma sĂŒlearvutist vĂ”i valitud CI/CD orkestreerimise tööriistast. Rakenduste juurutamise sihtkoht valitakse samuti teie poolt, kuna Waypoint toetab Kubernetes, Docker, Google Cloud Run, AWS ECS ja teisi.

PÀrast huvitavate dokumentatsioon ja elegantselt nÀidiste rakendustest, mille on pakkunud HashiCorp, otsustasime uurida Waypoint'i orkestreerimist GitLab CI/CD kaudu. Selleks vÔtame lihtsa Node.js rakenduse, mis töötab AWS ECS-is, nÀidiste hoidlast.

PĂ€rast hoidla kloonimist vaatame rakenduse struktuuri, mis kuvab ĂŒhte lehte:

Kuidas kasutada HashiCorp Waypoint'i GitLab CI/CD-ga koostööks

Nagu olete vÔib-olla mÀrganud, ei ole selles projektis Dockerfile'i. Need ei ole nÀidisesse lisatud, kuna nad pole meile tegelikult vajalikud, sest Waypoint hoolitseb nende eest meie nimel. Vaatame lÀhemalt faili waypoint.hcl, et mÔista, mida see teeb:

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

Koostamise etapis kasutab Waypoint Cloud Native Buildpacke (CNB), et mÀÀrata projekti programmeerimiskeel ja luua Docker'i pilt ilma Dockerfile'i kasutamata. Tegelikult on see sama tehnoloogia, mida GitLab kasutab Auto DevOps osa Auto Build'i sammus. Tore nĂ€ha, et CNB CNCF-ist saab ĂŒha rohkem kasutust tööstuses.

Kui pilt on loodud, laadib Waypoint selle automaatselt meie AWS ECR registrisse, et see oleks tarnimiseks valmis. Koostamise lÔppedes kasutab tarnimise etapp AWS ECS laiendust , et juurutada meie rakendust meie AWS kontole.

Minu sĂŒlearvutist on kĂ”ik lihtne. Installin Waypoint'i, mis on juba minu AWS kontoga autentitud, ja see "lihtsalt töötab". Aga mis siis, kui ma tahan minna kaugemale oma sĂŒlearvutist? VĂ”i Ă€kki tahan automatiseerida seda juurutamist osana mu ĂŒldisest CI/CD torustikust, kus jooksevad mu hetke integratsiooni testid, turvatestid ja muud? See on see osa jutust, kus tuleb mĂ€ngu GitLab CI/CD!

MÀrkus. Kui te alles plaanite CI/CD rakendamist vÔi soovite alustada parimate praktikate rakendamisega torustike loomisel, pöörake tÀhelepanu uuele SlÔerma kursusele "CI/CD GitLab CI nÀitel". See on praegu saadaval eeltellimise hinnaga.

Waypoint GitLab CI/CD-s

Selleks, et kÔike seda orkestreerida GitLab CI/CD-s, vaatame, mida meil meie failis vaja lÀheb. .gitlab-ci.yml:

  • Esiteks, vajame pĂ”hi pilti, mille sees seda kĂ€ivitada. Waypoint töötab igasugustel Linuxi distributsioonidel, selleks on ainult vajalik Docker, seega saame kĂ€ivituda generiiliselt Docker'i pildilt.
  • SeejĂ€rel tuleb see pilt Waypoint'iga varustada. Tulevikus saame koguda meta build pildi ja konteineriseerida selle protsessi enda jaoks.
  • LĂ”puks kĂ€ivitame Waypoint'i kĂ€sud.

Ülalpool on kirjeldatud kĂ”ik, mida meie torustik vajab juurutamiseks vajalike skriptide kĂ€ivitamiseks, kuid AWS-sse juurutamiseks vajame veel ĂŒhte asja: peame meie AWS kontosse autentima. Waypoint'i kirjelduses on plaanid autentimise ja autoriseerimise kohta. HashiCorp esitles sel nĂ€dalal ka muljetavaldavat projekti Boundary. Kuid hetkel saame lihtsalt autentimise ja autoriseerimise ise Ă€ra teha.

AWS autentimiseks GitLab CI/CD-s on mitu valikut. Esimene variant on kasutada sisseehitatud HashiCorp Vault'i.See sobib, kui teie meeskond juba kasutab Vault'i oma mandaadi haldamiseks. Veel ĂŒks viis, mis sobib, kui teie meeskond haldab autoriseerimist AWS IAM kaudu - veenduge, et tarnimisĂŒlesanded kĂ€ivitatakse GitLab Runner'i, mis on IAM kaudu juurutamiseks autoriseeritud. Aga kui soovite lihtsalt Waypoint'iga tutvuda ja teha seda kiiremini, on viimane variant - lisada oma AWS API ja Secret vĂ”tmed GitLab CI/CD keskkonnamuutujatesse AWS_ACCESS_KEY_ID ja AWS_SECRET_ACCESS_KEY.

Kogume kÔik kokku

NĂŒĂŒd, kui oleme autentimisega valmis, saame alustada! Meie lĂ”plik .gitlab-ci.yml nĂ€eb vĂ€lja nagu:

waypoint:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  # MÀÀratlege keskkonnamuutujad, nt `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

Te nÀete, et me alustame pildiga docker:latest ja seadistame mÔned Waypointi jaoks vajalikud keskkonnamuutujad. Jaotises script laadime alla viimase versiooni Waypointi tÀitmisfailist ja paigaldame selle /usr/local/bin. Kuna meie runner on juba AWS-is autentitud, kÀivitame edaspidi lihtsalt waypoint init, build, deploy ja release.

Kogumise ĂŒlesande vĂ€ljund nĂ€itab meile lĂ”pp-punkti, kuhu me rakenduse deploy’isime:

Kuidas kasutada HashiCorp Waypoint'i GitLab CI/CD-ga koostööks

Waypoint on ĂŒks palju HashiCorpi lahendusi, mis töötavad hĂ€sti koos GitLabiga. NĂ€iteks peale rakenduse tarnimise saame samal ajal orkestreerida alumist infrastruktuuri kasutades Terraformi GitLabis. SDLC turvalisuse standardiseerimiseks saame samuti integreerida GitLabi Vaultiga salajaste ja tokenite haldamiseks CI/CD torustes, pakkudes terviklikku lahendust arendajatele ja administraatoritele, kes tuginevad salajaste haldusele arengu-, testimis- ja tootmisprotsessides.

HashiCorpi ja GitLabi koostöölahendused aitavad ettevĂ”tetel leida parim viis rakenduste arendamiseks, tagades jĂ€rjepideva tarnimise juhtimise ja infrastruktuuri. Waypoint on teinud veel ĂŒhe edusammu Ă”igesse suunda, ja ootame pĂ”nevusega projekti edasist arengut. Rohkem teavet Waypointi kohta leiate siin, samuti tasub uurida dokumentatsioon ja projekti arendusplaani. Oleme meie saadud teadmised lisanud GitLabi CICD dokumentatsiooni. Kui soovite ise kĂ”ike töös proovida, saate kogu töökorras nĂ€ite selles hoidlas..

CI/CD pĂ”himĂ”tete mĂ”istmiseks, GitLab CI kasutamise kĂ”igi nĂŒansside omandamiseks ja parimate praktikate rakendamiseks saate lĂ€bitud videokursuse "CI/CD GitLab CI nĂ€itel". Liituge!

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster