Kuidas kasutada HashiCorp Waypointi GitLabi CI/CD-ga koostöö tegemiseks

Kuidas kasutada HashiCorp Waypointi GitLabi CI/CD-ga koostöö tegemiseks

HashiCorp nÀitas uut projekti Teekonnapunkt edasi HashiCorp Digital. See kasutab HCL-pÔhist faili, et kirjeldada erinevate pilveplatvormide jaoks mÔeldud rakenduste koostamist, tarnimist ja vabastamist, alates Kubernetesest kuni AWS-i ja lÔpetades Google Cloud Runiga. Rakenduste koostamise, tarnimise ja avaldamise protsessi kirjeldamiseks vÔite mÔelda Waypointist kui Terraformist ja Vagrantist.

TĂ”eliselt on HashiCorp vĂ€lja andnud Waypointi avatud lĂ€htekoodiga ja pakub palju nĂ€iteid. Orkestri kiht on teie otsustada, Waypoint on kĂ€ivitatav fail, mida saate kĂ€ivitada otse oma sĂŒlearvutis vĂ”i valitud CI/CD orkestreerimistööriista abil. Rakenduste juurutamise eesmĂ€rk on samuti teie otsustada, kuna Waypoint toetab Kubernetesi, Dockerit, Google Cloud Runi, AWS ECS-i ja palju muud.

PÀrast vinge lugemist dokumentatsioon ja kÔige luksuslikum nÀiteid HashiCorpi pakutavate rakenduste puhul otsustasime lÀhemalt uurida Waypointi orkestreerimist GitLab CI/CD abil. Selleks vÔtame nÀidete hoidlast lihtsa Node.js rakenduse, mis töötab AWS ECS-is.

PĂ€rast hoidla kloonimist vaatame ĂŒhte lehte kuvava rakenduse struktuuri:

Kuidas kasutada HashiCorp Waypointi GitLabi CI/CD-ga koostöö tegemiseks

Nagu olete mĂ€rganud, pole sellel projektil Dockeri faili. Neid pole nĂ€ites lisatud, sest pĂ”himĂ”tteliselt me ​​neid ei vaja, sest Waypoint hoolitseb nende eest meie eest. Vaatame faili lĂ€hemalt waypoint.hclet 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"
    }
  }
}

Ehitamisetapis kasutab Waypoint Cloud Native Buildpacke (CNB), et mÀÀrata projekti programmeerimiskeel ja luua Dockeri kujutis ilma Dockerfile'i kasutamata. PĂ”himĂ”tteliselt on see sama tehnoloogia, mida GitLab osaliselt kasutab Automaatne DevOps automaatse ehitamise etapis. On hea nĂ€ha, et CNCF-i CNB on tööstuse kasutajate seas ĂŒha enam kasutusele vĂ”etud.

Kui pilt on koostatud, laadib Waypoint selle automaatselt ĂŒles meie AWS ECR registrisse, et see oleks tarnimiseks valmis. Kui ehitamine on lĂ”petatud, kasutatakse tarneetapp AWS ECS lisandmoodul et juurutada meie rakendus meie AWS-i kontole.

Minu sĂŒlearvutist - kĂ”ik on lihtne. Panin oma AWS-i kontole teekonnapunkti, mis on juba autentitud, ja see lihtsalt töötab. Aga mis juhtub, kui ma tahan sĂŒlearvutist kaugemale minna? VĂ”i tahan Ă€kki automatiseerida selle juurutamise osana oma ĂŒldisest CI/CD torustikust, kus kĂ€itatakse minu kĂ€imasolevaid integratsiooniteste, turbeteste ja muud? See on osa loost, kus GitLabi CI/CD tuleb sisse!

NB Kui plaanite alles CI/CD juurutamist vĂ”i soovite hakata rakendama torujuhtmete ehitamise parimaid tavasid, pöörake tĂ€helepanu Slurmi uuele kursusele "CI/CD, kasutades nĂ€itena Gitlab CI-d". NĂŒĂŒd on see saadaval ettetellimishinnaga.

Teekonnapunkt GitLabi CI/CD-s

Selle kÔige korraldamiseks GitLabi CI/CD-s vaatame, mida me oma failis vajame .gitlab-ci.yml:

  • Esiteks vajad baaskujutist, mille sees töötama peaks. Waypoint töötab mis tahes distributsioonil. Linux, vajab see ainult Dockerit, seega saame seda kĂ€ivitada ĂŒldise Dockeri pildi pealt.
  • JĂ€rgmisena peate sellele pildile installima Waypointi. Tulevikus vĂ”ime koguda pildi meta ehitamine ja mahutage see protsess enda jaoks.
  • LĂ”puks kĂ€ivitame teekonnapunkti kĂ€sud

Ülaltoodu kirjeldab kĂ”ike, mida meie konveier vajab juurutamise lĂ”puleviimiseks vajalike skriptide kĂ€itamiseks, kuid AWS-i juurutamiseks vajame veel ĂŒht asja: peame olema oma AWS-i kontole sisse logitud. Teekonnapunkti kirjelduses plaanid on olemas autentimise ja autoriseerimise kohta. HashiCorp avaldas sel nĂ€dalal ka muljetavaldava projekti Piir. Kuid praegu saame autentimise ja autoriseerimisega lihtsalt ise hakkama.

GitLabi CICD autentimiseks AWS-is on mitu vĂ”imalust. Esimene vĂ”imalus on kasutada sisseehitatud HashiCorp Vault. See on suurepĂ€rane, kui teie meeskond kasutab mandaatide haldamiseks juba Vaulti. Teine vĂ”imalus, mis töötab, kui teie meeskond haldab autoriseerimist AWS IAM-i abil, on kontrollida, kas tarnetoimingud kĂ€ivitatakse GitLabi jooksja, volitatud juurutamist IAM-i kaudu kĂ€ivitama. Kuid kui soovite lihtsalt Waypointiga tutvuda ja soovite seda kiiresti teha, on viimane vĂ”imalus – lisage oma AWS API ja salajased vĂ”tmed GitLabi CI/CD keskkonnamuutujad AWS_ACCESS_KEY_ID Đž AWS_SECRET_ACCESS_KEY.

KÔik see koos

Kui oleme autentimisest aru saanud, vÔime alustada! Meie finaal .gitlab-ci.yml nÀeb vÀlja selline:

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

NĂ€ete, et alustame pildist docker:latest ja mÀÀrake mitu Waypointi nĂ”utavat keskkonnamuutujat. PeatĂŒkis script laadime alla Waypointi kĂ€ivitatava faili uusima versiooni ja installime selle sisse /usr/local/bin. Kuna meie jooksja on juba AWS-is volitatud, siis jĂ€rgmisena me lihtsalt jookseme waypoint init, build, deploy Đž release.

KoostamisĂŒlesande vĂ€ljund nĂ€itab meile lĂ”pp-punkti, kus me rakenduse kĂ€ivitasime:

Kuidas kasutada HashiCorp Waypointi GitLabi CI/CD-ga koostöö tegemiseks

Teekonnapunkt ĂŒks arvukalt HashiCorpi lahendusi, töötab GitLabiga suurepĂ€raselt. NĂ€iteks saame lisaks rakenduse tarnimisele ka selle aluseks oleva infrastruktuuri korraldada Terraform GitLabis. SDLC-turvalisuse standardiseerimiseks saame ka rakendada GitLab koos Vaultiga saladuste ja mĂ€rkide haldamiseks CI/CD torujuhtmetes, pakkudes terviklikku lahendust arendajatele ja administraatoritele, kes loodavad arenduseks, testimiseks ja tootmiseks saladuste haldamisele.

HashiCorpi ja GitLabi vĂ€ljatöötatud ĂŒhislahendused aitavad ettevĂ”tetel leida parema viisi rakenduste arendamiseks, pakkudes tarnetorustike ja infrastruktuuri jĂ€rjepidevat haldamist. Waypoint on astunud jĂ€rjekordse sammu Ă”iges suunas ja ootame huviga projekti jĂ€tkuvat arengut. Lisateavet saate Waypointi kohta siin, tasub samuti uurida dokumentatsioon Đž arengukava projekt. Oleme omandatud teadmisi lisanud GitLabi CICD dokumentatsioon. Kui soovite kĂ”ike ise proovida, vĂ”ite vĂ”tta tĂ€ieliku toimiva nĂ€ite see hoidla.

Videokursuse lÀbides saate aru CI/CD pÔhimÔtetest, omandada kÔik Gitlab CI-ga töötamise nÔtked ja alustada parimate tavade rakendamist "CI/CD, kasutades nÀitena Gitlab CI-d". Liitu kohe!

Allikas: www.habr.com

Ostke DDoS-kaitsega saitide jaoks usaldusvÀÀrne hostimine, VPS VDS-serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega, VPS VDS serverid | ProHoster