Cara menggunakan Titik Jalan HashiCorp untuk Bekerjasama dengan GitLab CI/CD

Cara menggunakan Titik Jalan HashiCorp untuk Bekerjasama dengan GitLab CI/CD

HashiCorp menunjukkan projek baharu Waypoint pada HashiCorp Digital. Ia menggunakan fail berasaskan HCL untuk menerangkan pembinaan, penghantaran dan pengeluaran aplikasi untuk pelbagai platform awan daripada Kubernetes hingga AWS dan Google Cloud Run. Fikirkan Waypoint sebagai Terraform dan Vagrant yang disatukan untuk menerangkan proses membina, menghantar dan mengeluarkan aplikasi anda.

Sesuai dengan bentuk, HashiCorp telah mengeluarkan Waypoint sebagai sumber terbuka dan disertakan dengan banyak contoh. Lapisan orkestra terpulang kepada anda, Waypoint datang sebagai boleh laku yang boleh anda jalankan terus pada komputer riba anda atau daripada alat orkestrasi CI/CD pilihan anda. Sasaran untuk menggunakan aplikasi anda juga terpulang kepada anda, kerana Waypoint menyokong Kubernetes, Docker, Google Cloud Run, AWS ECS dan banyak lagi.

Selepas membaca yang hebat dokumentasi dan yang paling cantik contoh aplikasi yang disediakan oleh HashiCorp, kami memutuskan untuk melihat dengan lebih dekat orkestrasi Waypoint menggunakan GitLab CI/CD. Untuk melakukan ini, kami akan mengambil aplikasi Node.js ringkas yang dijalankan pada AWS ECS daripada repositori contoh.

Selepas mengklonkan repositori, mari lihat struktur aplikasi yang memaparkan satu halaman:

Cara menggunakan Titik Jalan HashiCorp untuk Bekerjasama dengan GitLab CI/CD

Seperti yang anda mungkin perasan, projek ini tidak mempunyai Dockerfile. Mereka tidak ditambah dalam contoh, kerana pada dasarnya kita tidak memerlukannya, kerana Waypoint akan menjaga mereka untuk kita. Mari kita lihat lebih dekat pada fail waypoint.hcluntuk memahami apa yang akan dilakukan:

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

Semasa fasa binaan, Waypoint menggunakan Cloud Native Buildpacks (CNB) untuk menentukan bahasa pengaturcaraan projek dan mencipta imej Docker tanpa menggunakan Dockerfile. Pada dasarnya, ini adalah teknologi yang sama yang digunakan oleh GitLab sebahagiannya Auto DevOps pada langkah Binaan Auto. Adalah baik untuk melihat bahawa CNB CNCF semakin diterima pakai dalam kalangan pengguna industri.

Setelah imej dibina, Waypoint akan memuat naiknya secara automatik ke pendaftaran AWS ECR kami supaya ia sedia untuk dihantar. Setelah binaan selesai, langkah penghantaran menggunakan Alat tambah AWS ECS untuk menggunakan aplikasi kami ke akaun AWS kami.

Dari komputer riba saya - semuanya mudah. Saya meletakkan Waypoint yang telah pun disahkan dalam akaun AWS saya dan ia "hanya berfungsi". Tetapi apa yang berlaku jika saya mahu melampaui komputer riba saya? Atau mungkin saya mahu mengautomasikan penggunaan ini sebagai sebahagian daripada keseluruhan saluran paip CI/CD saya yang menjalankan ujian penyepaduan semasa saya, ujian keselamatan dan lain-lain? Ini adalah sebahagian daripada cerita di mana GitLab CI/CD masuk!

NB Jika anda baru merancang untuk melaksanakan CI / CD atau ingin mula menggunakan amalan terbaik untuk membina saluran paip, beri perhatian kepada kursus Slurm baharu. "CI/CD pada contoh Gitlab CI". Ia kini boleh didapati pada harga pra-pesanan.

Titik laluan dalam GitLab CI/CD

Untuk mengatur semua ini dalam GitLab CI/CD, mari lihat apa yang kita perlukan dalam fail kita .gitlab-ci.yml:

  • Pertama sekali, anda memerlukan imej asas untuk dijalankan di dalamnya. Waypoint berjalan pada mana-mana pengedaran Linux, ia hanya memerlukan Docker, jadi kami boleh menjalankan dengan imej Docker generik.
  • Seterusnya anda perlu memasang Waypoint dalam imej ini. Pada masa hadapan kami mungkin mengumpul binaan meta imej dan simpan proses ini untuk diri sendiri.
  • Akhirnya kami akan menjalankan arahan Waypoint

Di atas ialah segala-galanya yang diperlukan oleh saluran paip kami untuk menjalankan skrip yang diperlukan untuk melaksanakan penggunaan, tetapi untuk menggunakan AWS, kami memerlukan satu lagi perkara: kami mesti log masuk ke akaun AWS kami. Dalam perihalan Waypoint ada rancangan tentang pengesahan dan kebenaran. HashiCorp juga mengeluarkan projek yang mengagumkan minggu ini Sempadan. Tetapi buat masa ini, kami hanya boleh mengendalikan sendiri pengesahan dan kebenaran.

Terdapat beberapa pilihan untuk pengesahan CICD GitLab pada AWS. Pilihan pertama ialah menggunakan terbina dalam Bilik Kebal HashiCorp. Tidak mengapa jika pasukan anda sudah menggunakan Vault untuk pengurusan bukti kelayakan. Kaedah lain yang berkesan jika pasukan anda mengurus kebenaran menggunakan AWS IAM adalah untuk menyemak sama ada tugas penghantaran dicetuskan melalui Pelari GitLabA yang diberi kuasa untuk memulakan penggunaan melalui IAM. Tetapi jika anda hanya ingin membiasakan diri dengan Waypoint dan ingin melakukannya dengan cepat, pilihan terakhir ialah menambah API AWS dan kunci Rahsia anda ke Pembolehubah persekitaran CI/CD GitLab AWS_ACCESS_KEY_ID ΠΈ AWS_SECRET_ACCESS_KEY.

Meletakkannya bersama-sama

Sebaik sahaja kami mengetahui pengesahan, kami boleh mula! Akhir kami .gitlab-ci.yml kelihatan seperti ini:

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

Anda lihat bahawa kita bermula dengan imej docker:latest dan tetapkan beberapa pembolehubah persekitaran yang diperlukan oleh Waypoint. Dalam bab script kami memuat turun versi terkini Waypoint boleh laku dan memasangnya /usr/local/bin. Memandangkan pelari kami sudah diberi kuasa dalam AWS, maka kami hanya berlari waypoint init, build, deploy ΠΈ release.

Output tugas binaan akan menunjukkan kepada kami titik akhir di mana kami melancarkan aplikasi:

Cara menggunakan Titik Jalan HashiCorp untuk Bekerjasama dengan GitLab CI/CD

Titik laluan salah satu daripada banyak penyelesaian HashiCorp, yang berfungsi dengan baik dengan GitLab. Sebagai contoh, selain menyampaikan aplikasi, kami boleh mengatur infrastruktur asas menggunakan Terraform dalam GitLab. Untuk menyeragamkan keselamatan SDLC, kami juga boleh melaksanakan GitLab dengan Vault untuk mengurus rahsia dan token dalam saluran paip CI/CD, menyediakan penyelesaian holistik untuk pembangun dan pentadbir yang bergantung pada pengurusan rahsia untuk pembangunan, ujian dan penggunaan pengeluaran.

Penyelesaian bersama yang dibangunkan oleh HashiCorp dan GitLab membantu syarikat mencari cara terbaik untuk membangunkan aplikasi dengan memastikan rantaian bekalan dan pengurusan infrastruktur yang konsisten. Waypoint telah mengambil satu lagi langkah ke arah yang betul dan kami berharap untuk pembangunan selanjutnya projek. Anda boleh mengetahui lebih lanjut tentang Waypoint di sini, juga patut diterokai dokumentasi ΠΈ pelan pembangunan projek. Kami telah menambah pengetahuan kami kepada Dokumentasi CICD GitLab. Jika anda ingin mencuba segala-galanya sendiri, anda boleh mengambil contoh kerja yang lengkap dalam repositori ini.

Anda boleh memahami prinsip CI / CD, menguasai semua kehalusan bekerja dengan Gitlab CI dan mula menggunakan amalan terbaik dengan melengkapkan kursus video "CI/CD pada contoh Gitlab CI"... Sertai kami!

Sumber: www.habr.com

Tambah komen