GitLab CI/CD ilə əməkdaşlıq etmək üçün HashiCorp Waypoint-dən necə istifadə etmək olar

GitLab CI/CD ilə əməkdaşlıq etmək üçün HashiCorp Waypoint-dən necə istifadə etmək olar

HashiCorp yeni bir layihə nümayiş etdirdi İstiqamət nöqtəsi haqqında HashiCorp Digital. O, Kubernetesdən AWS və Google Cloud Run-a qədər müxtəlif bulud platformaları üçün tətbiqlərin qurulmasını, göndərilməsini və buraxılmasını təsvir etmək üçün HCL əsaslı fayldan istifadə edir. Tətbiqlərinizin qurulması, göndərilməsi və buraxılması prosesini təsvir etmək üçün Terraform və Vagrant kimi Waypoint-i düşünün.

Düzdür, HashiCorp Waypoint-i açıq mənbə olaraq buraxdı və bir çox nümunə ilə gəlir. Orkestratorun səviyyəsi sizdən asılıdır, Waypoint birbaşa laptopunuzda və ya seçdiyiniz CI/CD orkestrasiya alətindən işləyə biləcəyiniz icra olunan proqram kimi gəlir. Waypoint Kubernetes, Docker, Google Cloud Run, AWS ECS və daha çoxunu dəstəklədiyi üçün tətbiqin yerləşdirilməsi hədəfi də sizə bağlıdır.

Möhtəşəm oxuduqdan sonra sənədlər və ən qəşəng nümunələr HashiCorp tərəfindən təmin edilən tətbiqlər üçün GitLab CI/CD ilə Waypoint orkestrasiyasına daha yaxından nəzər salmaq qərarına gəldik. Bunu etmək üçün nümunə deposundan AWS ECS üzərində işləyən sadə Node.js tətbiqini götürəcəyik.

Anbarı klonladıqdan sonra bir səhifəni göstərən tətbiqin strukturuna baxaq:

GitLab CI/CD ilə əməkdaşlıq etmək üçün HashiCorp Waypoint-dən necə istifadə etmək olar

Bildiyiniz kimi, bu layihədə Dockerfile yoxdur. Onlar misalda əlavə edilmir, çünki onlara həqiqətən ehtiyacımız yoxdur, çünki Waypoint bizim üçün onlara qayğı göstərəcək. Gəlin fayla daha yaxından nəzər salaq waypoint.hclnə edəcəyini anlamaq üçün:

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

Quraşdırma mərhələsində Waypoint Cloud Native Buildpacks-dən istifadə edir (CNB) layihənin proqramlaşdırma dilini müəyyən etmək və Dockerfile istifadə etmədən Docker təsviri yaratmaq. Prinsipcə, bu GitLab tərəfindən qismən istifadə edilən eyni texnologiyadır Avtomatik DevOps Avtomatik qurma addımında. CNCF-nin CNB-nin sənaye istifadəçiləri arasında getdikcə daha çox qəbul edilməsini görmək çox xoşdur.

Şəkil qurulduqdan sonra Waypoint onu avtomatik olaraq AWS ECR reyestrimizə yükləyəcək ki, o, göndərilməyə hazır olsun. Montajın sonunda çatdırılma addımı istifadə olunur AWS ECS əlavəsi tətbiqimizi AWS hesabımıza yerləşdirmək üçün.

Laptopumdan çox asandır. Artıq AWS hesabımda təsdiqlənmiş Waypoint-ə qoyuram və o, "sadəcə işləyir". Amma laptopumdan kənara çıxmaq istəsəm nə olar? Və ya bəlkə mən cari inteqrasiya testlərim, təhlükəsizlik testlərim və başqalarının işlədiyi ümumi CI/CD boru xəttimin bir hissəsi kimi bu yerləşdirməni avtomatlaşdırmaq istəyirəm? Bu, GitLab CI/CD-nin daxil olduğu hekayənin bir hissəsidir!

NB Əgər siz sadəcə CI / CD tətbiq etməyi planlaşdırırsınızsa və ya boru kəmərlərinin tikintisi üçün ən yaxşı təcrübələri tətbiq etməyə başlamaq istəyirsinizsə, yeni Slurm kursuna diqqət yetirin. "Gitlab CI nümunəsində CI/CD". İndi əvvəlcədən sifariş qiymətinə mövcuddur.

GitLab CI/CD-də yol nöqtəsi

Bütün bunları GitLab CI/CD-də təşkil etmək üçün faylımızda nəyə ehtiyacımız olduğuna baxaq. .gitlab-ci.yml:

  • Hər şeydən əvvəl, onun içərisində işləmək üçün əsas təsvirə ehtiyacınız var. Waypoint istənilən Linux paylamasında işləyir, ona yalnız Docker lazımdır, ona görə də ümumi Docker təsviri ilə işləyə bilərik.
  • Sonra, bu şəkilə Waypoint quraşdırmalısınız. Gələcəkdə yığa bilərik meta qurma şəkli və bu prosesi özünüz üçün konteynerləşdirin.
  • Nəhayət, Waypoint əmrlərini icra edəcəyik

Yuxarıda yerləşdirməni yerinə yetirmək üçün lazım olan skriptləri işə salmaq üçün boru kəmərimizin ehtiyac duyacağı hər şey var, lakin AWS-də yerləşdirmək üçün bizə daha bir şey lazımdır: AWS hesabımıza daxil olmalıyıq. Waypoint təsvirində planları var autentifikasiya və avtorizasiya haqqında. HashiCorp da bu həftə təsirli bir layihə yayımladı Sərhədsiz. Ancaq hələ ki, identifikasiya və avtorizasiyanı özümüz götürüb idarə edə bilərik.

AWS-də GitLab CICD autentifikasiyası üçün bir neçə variant var. Birinci seçim daxili istifadə etməkdir HashiCorp Vault. Komandanız etimadnamənin idarə edilməsi üçün artıq Vault istifadə edirsə, yaxşı olar. Komandanız AWS IAM-dan istifadə edərək avtorizasiyanı idarə edərsə, işləyən başqa bir üsul, çatdırılma tapşırıqlarının vasitəsilə tetiklendiğini yoxlamaqdır. GitLab RunnerIAM vasitəsilə yerləşdirməyə başlamaq səlahiyyəti olan. Ancaq sadəcə Waypoint ilə tanış olmaq və bunu tez bir zamanda etmək istəyirsinizsə, son seçim AWS API və Gizli açarlarınızı əlavə etməkdir. GitLab CI/CD mühit dəyişənləri AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Hamısını birlikdə qoymaq

Doğrulamanı başa düşdükdən sonra başlaya bilərik! Finalımız .gitlab-ci.yml bu kimi görünür:

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

Görürsünüz ki, bir şəkil ilə başlayırıq docker:latest və Waypoint tərəfindən tələb olunan bir neçə mühit dəyişənini təyin edin. Fəsildə script ən son Waypoint icraedicisini yükləyirik və onu daxil edirik /usr/local/bin. Qaçışçımız artıq AWS-də səlahiyyətli olduğundan, biz sadəcə qaçırıq waypoint init, build, deploy и release.

Quraşdırma tapşırığının nəticəsi bizə tətbiqi yaydığımız son nöqtəni göstərəcək:

GitLab CI/CD ilə əməkdaşlıq etmək üçün HashiCorp Waypoint-dən necə istifadə etmək olar

Yol nöqtəsi biri çoxsaylı HashiCorp həlləri, GitLab ilə əla işləyir. Məsələn, tətbiqi çatdırmaqla yanaşı, biz əsas infrastrukturu ilə idarə edə bilərik GitLab-da Terraform. SDLC təhlükəsizliyini standartlaşdırmaq üçün biz də həyata keçirə bilərik Vault ilə GitLab CI/CD boru kəmərlərində sirləri və nişanları idarə etmək üçün, inkişaf, sınaq və istehsalda istifadə üçün məxfi idarəetməyə arxalanan tərtibatçılar və idarəçilər üçün tam həll təmin edir.

HashiCorp və GitLab tərəfindən hazırlanmış birgə həllər şirkətlərə ardıcıl təchizat zəncirinin və infrastrukturun idarə edilməsini təmin etməklə tətbiqləri inkişaf etdirməyin ən yaxşı yolunu tapmağa kömək edir. Waypoint düzgün istiqamətdə daha bir addım atdı və biz layihənin daha da inkişaf etdirilməsini səbirsizliklə gözləyirik. Waypoint haqqında daha çox öyrənə bilərsiniz buradadə araşdırmağa dəyər sənədlər и inkişaf planı layihə. Biliyimizi əlavə etdik GitLab CICD sənədləri. Bunu özünüz sınamaq istəyirsinizsə, tam iş nümunəsinə baxa bilərsiniz bu depo.

Siz CI/CD prinsiplərini başa düşə, Gitlab CI ilə işləməyin bütün incəliklərinə yiyələnə və video kursu tamamlayaraq ən yaxşı təcrübələri tətbiq etməyə başlaya bilərsiniz. "Gitlab CI nümunəsində CI/CD". İndi qoşul!

Mənbə: www.habr.com

Добавить комментарий