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 on selle sees jooksmiseks vaja baaspilti. Waypoint töötab mis tahes Linuxi distributsiooniga, see vajab ainult Dockerit, nii et saame töötada üldise Dockeri kujutisega.
  • 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

Lisa kommentaar