GitLab CI/CD-мен бірлесіп жұмыс істеу үшін HashiCorp Waypoint қызметін қалай пайдалануға болады

GitLab CI/CD-мен бірлесіп жұмыс істеу үшін HashiCorp Waypoint қызметін қалай пайдалануға болады

HashiCorp жаңа жобаны көрсетті Жол нүктесі туралы HashiCorp Digital. Ол Kubernetes-тен AWS және Google Cloud Run-қа дейінгі әртүрлі бұлттық платформаларға арналған қолданбаларды құруды, жөнелтуді және шығаруды сипаттау үшін HCL негізіндегі файлды пайдаланады. Waypoint-ті Terraform және Vagrant қолданбаларын құру, жөнелту және шығару процесін сипаттау үшін біріктірілген деп ойлап көріңіз.

Негізінде HashiCorp Waypoint-ті ашық бастапқы код ретінде шығарды және ол көптеген мысалдармен келеді. Оркестрдің деңгейі сізге байланысты, Waypoint тікелей ноутбукта немесе таңдаулы CI/CD басқару құралынан іске қосуға болатын орындалатын файл ретінде келеді. Қолданбаны орналастыру мақсаты да сізге байланысты, өйткені Waypoint Kubernetes, Docker, Google Cloud Run, AWS ECS және т.б. қолдайды.

Керемет оқығаннан кейін құжаттама және ең сәнді мысалдар HashiCorp ұсынған қосымшалар үшін біз GitLab CI/CD көмегімен Waypoint оркестрін мұқият қарастыруды шештік. Ол үшін үлгі репозиторийінен AWS ECS жүйесінде жұмыс істейтін қарапайым Node.js қолданбасын аламыз.

Репозиторийді клондағаннан кейін бір бетті көрсететін қолданбаның құрылымын қарастырайық:

GitLab CI/CD-мен бірлесіп жұмыс істеу үшін HashiCorp Waypoint қызметін қалай пайдалануға болады

Сіз байқаған боларсыз, бұл жобада 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 пайдаланады (CNB) жобаның бағдарламалау тілін анықтау және Docker файлын пайдаланбай Docker кескінін жасау. Негізінде, бұл GitLab ішінара пайдаланатын технология Auto DevOps Автоматты құрастыру қадамында. CNCF-тің CNB ​​саланы пайдаланушылар арасында көбірек қабылданып жатқанын көру өте жақсы.

Кескін салынғаннан кейін Waypoint оны жіберуге дайын болу үшін оны автоматты түрде AWS ECR тізіліміне жүктеп салады. Құрастырудың соңында жеткізу қадамы пайдаланылады AWS ECS қондырмасы қолданбамызды AWS тіркелгісіне орналастыру үшін.

Менің ноутбуктан бұл оңай. Мен AWS тіркелгісінде аутентификацияланған Waypoint-ті қойдым және ол «жұмыс істейді». Бірақ ноутбугымның шеңберінен шығып кеткім келсе не болады? Немесе осы орналастыруды ағымдағы біріктіру сынақтары, қауіпсіздік сынақтары және басқалары орындалатын жалпы CI/CD конвейерінің бөлігі ретінде автоматтандырғым келеді ме? Бұл GitLab CI/CD кіретін оқиғаның бөлігі!

NB Егер сіз жай ғана CI / CD енгізуді жоспарласаңыз немесе құбырларды салудың ең жақсы тәжірибелерін қолдануды бастағыңыз келсе, жаңа Slurm курсына назар аударыңыз. «Gitlab CI мысалындағы CI/CD». Ол қазір алдын ала тапсырыс бағасы бойынша қол жетімді.

GitLab CI/CD ішіндегі жол нүктесі

Осының барлығын GitLab CI/CD жүйесінде ұйымдастыру үшін файлымызда не қажет екенін көрейік. .gitlab-ci.yml:

  • Ең алдымен, оның ішінде жұмыс істеу үшін сізге негізгі кескін қажет. Waypoint кез келген Linux дистрибутивінде жұмыс істейді, оған тек Docker қажет, сондықтан біз жалпы Docker кескінімен жұмыс істей аламыз.
  • Содан кейін осы кескінге Waypoint орнату керек. Болашақта жинап аламыз мета құрастыру кескіні және бұл процесті өзіңізге жүктеңіз.
  • Соңында біз Waypoint пәрмендерін орындаймыз

Жоғарыда біздің құбырымыз орналастыруды орындау үшін қажетті сценарийлерді іске қосу үшін қажет болатын нәрсенің бәрі, бірақ AWS жүйесіне орналастыру үшін бізге тағы бір нәрсе қажет: AWS тіркелгімізге кіруіміз керек. Жол нүктесінің сипаттамасында жоспарлары бар аутентификация және авторизация туралы. HashiCorp сонымен қатар осы аптада әсерлі жобаны шығарды Шекара. Бірақ әзірге аутентификация мен авторизацияны өзіміз алып, басқара аламыз.

AWS жүйесінде GitLab CICD аутентификациясының бірнеше нұсқасы бар. Бірінші нұсқа - кірістірілген құрылғыны пайдалану HashiCorp қоймасы. Сіздің командаңыз тіркелгі деректерін басқару үшін Vault қолданбасын әлдеқашан пайдаланып жатса жақсы. Егер сіздің командаңыз AWS IAM арқылы авторизацияны басқарса, жұмыс істейтін басқа әдіс - жеткізу тапсырмалары арқылы іске қосылғанын тексеру. GitLab RunnerIAM арқылы орналастыруды бастауға рұқсаты бар. Бірақ егер сіз жай ғана 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.

Құрастыру тапсырмасының нәтижесі бізге қолданбаны жылжытқан соңғы нүктені көрсетеді:

GitLab CI/CD-мен бірлесіп жұмыс істеу үшін HashiCorp Waypoint қызметін қалай пайдалануға болады

Жол нүктесінің бірі көптеген HashiCorp шешімдері, бұл GitLab-пен тамаша жұмыс істейді. Мысалы, қолданбаны жеткізуден басқа, біз негізгі инфрақұрылымды басқара аламыз GitLab жүйесіндегі терраформа. SDLC қауіпсіздігін стандарттау үшін біз де жүзеге асыра аламыз Vault бар GitLab CI/CD конвейерлеріндегі құпияларды және таңбалауыштарды басқаруға арналған, әзірлеу, тестілеу және өндірісте пайдалану үшін құпия басқаруға сүйенетін әзірлеушілер мен әкімшілер үшін толық шешімді қамтамасыз етеді.

HashiCorp және GitLab әзірлеген бірлескен шешімдер компанияларға жеткізу тізбегін және инфрақұрылымды басқаруды қамтамасыз ету арқылы қосымшаларды әзірлеудің ең жақсы жолын табуға көмектеседі. Waypoint дұрыс бағытта тағы бір қадам жасады және біз жобаның одан әрі дамуын күтеміз. Сіз Waypoint туралы көбірек біле аласыз осындазерттеуге де тұрарлық құжаттама и даму жоспары жоба. Біз өз білімімізді қостық GitLab CICD құжаттамасы. Егер сіз оны өзіңіз сынап көргіңіз келсе, толық жұмыс үлгісін мына жерден тексере аласыз бұл репозиторий.

Сіз CI / CD принциптерін түсіне аласыз, Gitlab CI-мен жұмыс істеудің барлық қыр-сырын меңгере аласыз және бейне курсты аяқтау арқылы озық тәжірибелерді қолдана бастай аласыз. «Gitlab CI мысалындағы CI/CD». Қазір қосылыңыз!

Ақпарат көзі: www.habr.com

пікір қалдыру