Kuinka käyttää HashiCorp Waypointia yhteistyöhön GitLab CI/CD:n kanssa

Kuinka käyttää HashiCorp Waypointia yhteistyöhön GitLab CI/CD:n kanssa

HashiCorp esitteli uuden projektin Waypoint päälle HashiCorp Digital. Se käyttää HCL-pohjaista tiedostoa kuvaamaan sovellusten rakentamista, toimittamista ja julkaisua eri pilvialustoille Kubernetesista AWS:ään ja Google Cloud Runiin. Ajattele Waypointia Terraformina ja Vagrantina, jotka on yhdistetty kuvaamaan sovellusten rakentamis-, toimitus- ja julkaisuprosessia.

Todenmukaisesti HashiCorp on julkaissut Waypointin avoimena lähdekoodina, ja sen mukana tulee paljon esimerkkejä. Orkesterin taso on sinun päätettävissäsi, Waypoint tulee suoritettavana tiedostona, jonka voit suorittaa suoraan kannettavalla tietokoneellasi tai valitsemallasi CI/CD-orkesterityökalulla. Sovelluksen käyttöönottokohde on myös sinun päätettävissäsi, sillä Waypoint tukee Kubernetesia, Dockeria, Google Cloud Runia, AWS ECS:ää ja muita.

Kun olet lukenut mahtavan dokumentointi ja tyylikkäin esimerkkejä HashiCorpin toimittamat sovellukset, päätimme tarkastella lähemmin Waypoint-orkestrointia GitLab CI/CD:llä. Tätä varten otamme näytevarastosta yksinkertaisen AWS ECS:ssä toimivan Node.js-sovelluksen.

Arkiston kloonauksen jälkeen katsotaan yhden sivun näyttävän sovelluksen rakennetta:

Kuinka käyttää HashiCorp Waypointia yhteistyöhön GitLab CI/CD:n kanssa

Kuten olet ehkä huomannut, tässä projektissa ei ole Docker-tiedostoa. Niitä ei ole lisätty esimerkissä, koska emme todella tarvitse niitä, koska Waypoint hoitaa ne puolestamme. Katsotaanpa tiedostoa tarkemmin waypoint.hclymmärtääksesi mitä se tekee:

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

Rakennusvaiheessa Waypoint käyttää Cloud Native Buildpacks -paketteja (CNB) määrittääksesi projektin ohjelmointikielen ja luodaksesi Docker-kuvan ilman Docker-tiedostoa. Periaatteessa tämä on sama tekniikka, jota GitLab käyttää osittain Auto DevOps Auto Build -vaiheessa. On hienoa nähdä, että CNCF:n CNB on saamassa yhä enemmän käyttöä alan käyttäjien keskuudessa.

Kun kuva on rakennettu, Waypoint lataa sen automaattisesti AWS ECR -rekisteriin, jotta se on valmis lähetettäväksi. Kokoonpanon lopussa toimitusvaiheessa käytetään AWS ECS -lisäosa ottaaksesi sovelluksemme käyttöön AWS-tilillemme.

Omalta kannettavalta tietokoneeltani se on helppoa. Laitoin Waypointin, joka on jo todennettu AWS-tililläni ja se "vain toimii". Mutta mitä tapahtuu, jos haluan mennä kannettavaa tietokonetta pidemmälle? Tai ehkä haluan automatisoida tämän käyttöönoton osana yleistä CI/CD-putkilinjaani, jossa nykyiset integraatiotestit, suojaustestit ja muut suoritetaan? Tämä on osa tarinaa, jossa GitLab CI/CD tulee sisään!

NB Jos olet juuri suunnittelemassa CI/CD:n käyttöönottoa tai haluat alkaa soveltaa parhaita käytäntöjä putkien rakentamiseen, kiinnitä huomiota uuteen Slurm-kurssiin. "CI/CD Gitlab CI:n esimerkissä". Se on nyt saatavilla ennakkotilaushintaan.

Reittipiste GitLab CI/CD:ssä

Jos haluat järjestää kaiken tämän GitLab CI/CD:llä, katsotaan mitä tarvitsemme tiedostossamme .gitlab-ci.yml:

  • Ensinnäkin tarvitset peruskuvan toimiaksesi sen sisällä. Waypoint toimii missä tahansa Linux-jakelussa, se tarvitsee vain Dockerin, joten voimme käyttää yleistä Docker-kuvaa.
  • Seuraavaksi sinun on asennettava Waypoint tähän kuvaan. Tulevaisuudessa saatamme kerätä meta rakentaa kuva ja säilytä tämä prosessi itsellesi.
  • Lopuksi suoritamme Waypoint-komennot

Yllä on kaikki, mitä putkistomme tarvitsee käyttöönoton suorittamiseen tarvittavien komentosarjojen suorittamiseen, mutta AWS:ssä käyttöönottoa varten tarvitsemme vielä yhden asian: meidän on kirjauduttava sisään AWS-tiliimme. Reittipisteen kuvauksessa on suunnitelmia todennuksen ja valtuutuksen osalta. HashiCorp julkaisi myös vaikuttavan projektin tällä viikolla Raja. Mutta toistaiseksi voimme vain ottaa ja hoitaa todennuksen ja valtuutuksen itse.

GitLab CICD -todennusta varten AWS:ssä on useita vaihtoehtoja. Ensimmäinen vaihtoehto on käyttää sisäänrakennettua HashiCorp Holvi. On hyvä, jos tiimisi käyttää jo Holvia tunnistetietojen hallintaan. Toinen tapa, joka toimii, jos tiimisi hallinnoi valtuutusta AWS IAM:n avulla, on tarkistaa, että toimitustehtävät käynnistetään GitLab RunnerA, jolla on lupa aloittaa käyttöönotto IAM:n kautta. Mutta jos haluat vain tutustua Waypointiin ja haluat tehdä sen nopeasti, viimeinen vaihtoehto on lisätä AWS API ja salaiset avaimet GitLab CI/CD -ympäristömuuttujat AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Kaikki yhdistetään

Kun olemme selvittäneet todennuksen, voimme aloittaa! Meidän finaali .gitlab-ci.yml näyttää tältä:

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

Aloitamme kuvasta docker:latest ja aseta muutama Waypointin vaatima ympäristömuuttuja. Luvussa script lataamme uusimman Waypoint-suoritettavan tiedoston ja laitamme sen sisään /usr/local/bin. Koska juoksijamme on jo valtuutettu AWS:ssä, me yksinkertaisesti juoksemme waypoint init, build, deploy и release.

Rakennustehtävän tulos näyttää meille päätepisteen, jossa rullasimme sovelluksen:

Kuinka käyttää HashiCorp Waypointia yhteistyöhön GitLab CI/CD:n kanssa

Reittipiste yksi lukuisia HashiCorp-ratkaisuja, jotka toimivat hyvin GitLabin kanssa. Sovelluksen toimittamisen lisäksi voimme esimerkiksi organisoida taustalla olevan infrastruktuurin Terraform GitLabissa. SDLC-suojauksen standardoimiseksi voimme myös ottaa käyttöön GitLab ja Holvi salaisuuksien ja tunnuksien hallintaan CI/CD-putkissa. Se tarjoaa täydellisen ratkaisun kehittäjille ja järjestelmänvalvojille, jotka luottavat salaiseen hallintaan kehitys-, testaus- ja tuotantokäyttöön.

HashiCorpin ja GitLabin yhteiset ratkaisut auttavat yrityksiä löytämään parhaan tavan kehittää sovelluksia varmistamalla johdonmukaisen toimitusketjun ja infrastruktuurin hallinnan. Waypoint on ottanut jälleen askeleen oikeaan suuntaan ja odotamme innolla projektin jatkokehitystä. Voit oppia lisää Waypointista täällämyös tutustumisen arvoinen dokumentointi и kehityssuunnitelma hanke. Olemme lisänneet osaamistamme GitLab CICD -dokumentaatio. Jos haluat kokeilla sitä itse, voit katsoa täydellisen toimintaesimerkin osoitteessa tämä arkisto.

Voit ymmärtää CI / CD:n periaatteet, hallita kaikki Gitlab CI:n kanssa työskentelyn hienoisuudet ja aloittaa parhaiden käytäntöjen soveltamisen suorittamalla videokurssin "CI/CD Gitlab CI:n esimerkissä". Liity nyt!

Lähde: will.com

Lisää kommentti