Чӣ тавр истифода бурдани HashiCorp Waypoint барои ҳамкорӣ бо GitLab CI/CD

Чӣ тавр истифода бурдани HashiCorp Waypoint барои ҳамкорӣ бо GitLab CI/CD

HashiCorp лоиҳаи навро нишон дод Нуқтаи роҳ ба HashiCorp Digital. Он як файли ба HCL асосёфтаро барои тавсифи сохтмон, интиқол ва барориши барномаҳо барои платформаҳои абрии гуногун, аз Kubernetes то AWS ва Google Cloud Run истифода мебарад. Дар бораи Waypoint ҳамчун Terraform ва Vagrant барои тавсифи раванди сохтан, интиқол ва интишори замимаҳои шумо фикр кунед.

Дуруст аст, ки HashiCorp Waypoint-ро ҳамчун манбаи кушода баровардааст ва он бо мисолҳои зиёд меояд. Сатҳи оркестр ба шумо вобаста аст, Waypoint ҳамчун файли иҷрошаванда меояд, ки шумо метавонед мустақиман дар ноутбуки худ ё аз асбоби интихобии оркестри CI/CD кор кунед. Ҳадафи густариши барнома низ ба шумо вобаста аст, зеро Waypoint Kubernetes, Docker, Google Cloud Run, AWS ECS ва ғайраҳоро дастгирӣ мекунад.

Пас аз хондани олиҷаноб ҳуҷҷатҳо ва зеботарин мисолҳо Барномаҳое, ки аз ҷониби HashiCorp пешниҳод шудаанд, мо тасмим гирифтем, ки ба оркестри Waypoint бо GitLab CI/CD муфассалтар назар андозем. Барои ин, мо аз анбори намунавӣ як барномаи оддии Node.js-ро, ки дар AWS ECS кор мекунад, мегирем.

Пас аз клон кардани анбор, биёед ба сохтори барномае, ки як саҳифаро намоиш медиҳад, бубинем:

Чӣ тавр истифода бурдани HashiCorp Waypoint барои ҳамкорӣ бо GitLab CI/CD

Тавре ки шумо пайхас кардаед, дар ин лоиҳа ягон Dockerfile вуҷуд надорад. Онҳо дар мисол илова карда нашудаанд, зеро мо воқеан ба онҳо ниёз надорем, зеро Waypoint онҳоро барои мо ғамхорӣ мекунад. Биёед файлро бодиққат дида бароем waypoint.hclбарои фаҳмидани он чӣ кор хоҳад кард:

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

Дар марҳилаи сохтмон, Waypoint Cloud Native Buildpacks -ро истифода мебарад (Садо Ояндасоз) барои муайян кардани забони барномасозии лоиҳа ва эҷоди тасвири Docker бе истифодаи Dockerfile. Аслан, ин ҳамон технологияест, ки қисман аз ҷониби GitLab истифода мешавад Auto DevOps дар қадами Сохтани худкор. Дидани он хеле хуш аст, ки CNB-и CNCF дар байни корбарони соҳа қабули бештар пайдо мекунад.

Пас аз сохта шудани тасвир, Waypoint онро ба таври худкор ба феҳристи AWS ECR-и мо бор мекунад, то он барои интиқол омода бошад. Дар охири васл, қадами расонидани истифода мебарад Иловаи AWS ECS барои ҷойгир кардани замимаи мо дар ҳисоби AWS мо.

Аз ноутбуки ман ин осон аст. Ман дар Waypoint гузоштам, ки аллакай дар ҳисоби AWS ман тасдиқ шудааст ва он "танҳо кор мекунад". Аммо агар ман мехоҳам аз ноутбуки худ берун равам, чӣ мешавад? Ё шояд ман мехоҳам ин ҷобаҷокуниро ҳамчун як қисми лӯлаи умумии CI/CD-и худ автоматӣ кунам, ки дар он ҷо санҷишҳои ҳозираи ҳамгироии ман, санҷишҳои амниятӣ ва дигарон кор мекунанд? Ин қисми ҳикояест, ки дар он GitLab CI/CD ворид мешавад!

БМТ Агар шумо танҳо нақшаи татбиқи CI / CD дошта бошед ё мехоҳед ба татбиқи таҷрибаҳои беҳтарини сохтмони қубурҳо шурӯъ кунед, ба курси нави Slurm диққат диҳед. "CI/CD дар мисоли Gitlab CI". Он ҳоло бо нархи пешакии фармоиш дастрас аст.

Нуқтаи роҳ дар GitLab CI/CD

Барои танзим кардани ҳамаи ин дар GitLab CI/CD, биёед бубинем, ки дар файли мо чӣ лозим аст .gitlab-ci.yml:

  • Пеш аз ҳама, ба шумо тасвири асосӣ лозим аст, ки дар дохили он кор кунед. Waypoint дар ҳама гуна тақсимоти Linux кор мекунад, он танҳо ба Docker ниёз дорад, аз ин рӯ мо метавонем бо тасвири умумии Docker кор кунем.
  • Баъдан, ба шумо лозим аст, ки Wapoint-ро дар ин тасвир насб кунед. Дар оянда мо метавонем ҷамъоварӣ кунем тасвири сохтани мета ва ин равандро барои худ контейнер кунед.
  • Дар охир мо фармонҳои Waypoint -ро иҷро мекунем

Дар боло ҳама чизест, ки лӯлаи мо барои иҷро кардани скриптҳои зарурӣ барои ҷойгиркунӣ лозим аст, аммо барои ҷойгиркунӣ ба AWS ба мо як чизи дигар лозим аст: мо бояд ба ҳисоби AWS-и худ ворид шавем. Дар Тавсифи Waypoint нақша доранд дар бораи аутентификатсия ва авторизатсия. HashiCorp инчунин ин ҳафта як лоиҳаи таъсирбахшро нашр кард Сарҳад. Аммо дар айни замон, мо метавонем танҳо худамон аутентификатсия ва иҷозатро гирем ва идора кунем.

Якчанд имконот барои аутентификатсияи GitLab CICD дар AWS мавҷуданд. Варианти аввал ин истифодабарии дарунсохт аст HashiCorp Vault. Ин хуб аст, агар дастаи шумо аллакай Vault-ро барои идоракунии эътимоднома истифода барад. Усули дигаре, ки кор мекунад, агар дастаи шумо авторизатсияро бо истифода аз AWS IAM идора кунад, ин тафтиш кардани он аст, ки вазифаҳои интиқол тавассути GitLab RunnerA, ки барои оғоз кардани густариш тавассути IAM ваколатдор аст. Аммо агар шумо танҳо хоҳед, ки бо Waypoint шинос шавед ва онро зуд иҷро кунед, варианти охирин ин аст, ки AWS API ва калидҳои махфии худро ба Тағирёбандаҳои муҳити GitLab CI/CD AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Ҳама чизро якҷоя кардан

Пас аз он ки мо аутентификатсияро фаҳмидем, мо метавонем оғоз кунем! Финаламон .gitlab-ci.yml чунин мешуморам:

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

Шумо мебинед, ки мо бо тасвир оғоз мекунем docker:latest ва якчанд тағирёбандаҳои муҳити аз ҷониби Waypoint талабшударо муқаррар кунед. Дар боб script мо барномаи охирини иҷрошавандаи Waypoint-ро зеркашӣ мекунем ва онро ҷойгир мекунем /usr/local/bin. Азбаски давандаи мо аллакай дар AWS ваколатдор аст, пас мо танҳо давида истодаем waypoint init, build, deploy и release.

Натиҷаи вазифаи сохтмон ба мо нуқтаи ниҳоиро нишон медиҳад, ки мо барномаро дар он ҷо гузоштаем:

Чӣ тавр истифода бурдани HashiCorp Waypoint барои ҳамкорӣ бо GitLab CI/CD

Нуқтаи роҳ яке аз ҳалли сершумори HashiCorp, ки бо GitLab хуб кор мекунанд. Масалан, илова бар расонидани барнома, мо метавонем инфрасохтори асосиро бо он танзим кунем Терраформ дар GitLab. Барои стандартикунонии амнияти SDLC, мо инчунин метавонем татбиқ кунем GitLab бо Vault барои идоракунии асрор ва нишонаҳо дар лӯлаҳои CI/CD, пешниҳоди ҳалли мукаммал барои таҳиягарон ва маъмуроне, ки ба идоракунии махфӣ барои таҳия, озмоиш ва истифодаи истеҳсолӣ такя мекунанд.

Қарорҳои муштараке, ки аз ҷониби HashiCorp ва GitLab таҳия шудаанд, ба ширкатҳо кӯмак мекунанд, ки роҳи беҳтарини таҳияи барномаҳоро тавассути таъмини пайвастагии занҷири таъминот ва идоракунии инфрасохтор пайдо кунанд. Waypoint як қадами дигарро дар самти дуруст гузошт ва мо интизори рушди минбаъдаи лоиҳа ҳастем. Шумо метавонед дар бораи Waypoint маълумоти бештар гиред дар ин ҷониз сазовори тахкик аст ҳуҷҷатҳо и плани тараккиёт лоиҳа. Мо дониши худро илова кардем Ҳуҷҷатҳои GitLab CICD. Агар шумо хоҳед, ки онро худатон санҷед, шумо метавонед намунаи пурраи корро дар ин ҷо санҷед ин анбор.

Шумо метавонед принсипҳои CI / CD-ро дарк кунед, тамоми нозукиҳои кор бо Gitlab CI-ро азхуд кунед ва тавассути анҷом додани курси видеоӣ ба татбиқи таҷрибаҳои беҳтарин шурӯъ кунед. "CI/CD дар мисоли Gitlab CI". Ҳоло ҳамроҳ шавед!

Манбаъ: will.com

Илова Эзоҳ