Cara menggunakan HashiCorp Waypoint untuk Berkolaborasi dengan GitLab CI/CD

Cara menggunakan HashiCorp Waypoint untuk Berkolaborasi dengan GitLab CI/CD

HashiCorp menunjukkan proyek baru Waypoint pada Hashi Corp Digital. Ini menggunakan file berbasis HCL untuk menjelaskan pembuatan, pengiriman, dan rilis aplikasi untuk berbagai platform cloud mulai dari Kubernetes hingga AWS dan Google Cloud Run. Pikirkan Waypoint sebagai Terraform dan Vagrant yang digabungkan untuk menggambarkan proses membangun, mengirim, dan merilis aplikasi Anda.

Sesuai bentuknya, HashiCorp telah merilis Waypoint sebagai open source, dan dilengkapi dengan banyak contoh. Level orkestra terserah Anda, Waypoint hadir sebagai executable yang dapat Anda jalankan langsung di laptop atau dari alat orkestrasi CI/CD pilihan Anda. Target penerapan aplikasi juga terserah Anda, karena Waypoint mendukung Kubernetes, Docker, Google Cloud Run, AWS ECS, dan lainnya.

Setelah membaca mengagumkan dokumentasi dan yang paling cantik contoh aplikasi yang disediakan oleh HashiCorp, kami memutuskan untuk melihat lebih dekat pada orkestrasi Waypoint dengan GitLab CI/CD. Untuk melakukannya, kami akan menggunakan aplikasi Node.js sederhana yang berjalan di AWS ECS dari repositori sampel.

Setelah mengkloning repositori, mari kita lihat struktur aplikasi yang menampilkan satu halaman:

Cara menggunakan HashiCorp Waypoint untuk Berkolaborasi dengan GitLab CI/CD

Seperti yang Anda ketahui, tidak ada Dockerfile dalam proyek ini. Mereka tidak ditambahkan dalam contoh karena kita tidak benar-benar membutuhkannya, karena Waypoint akan mengurusnya untuk kita. Mari kita lihat lebih dekat file tersebut waypoint.hcluntuk memahami apa yang akan dilakukannya:

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

Selama fase build, Waypoint menggunakan Cloud Native Buildpacks (CNB) untuk menentukan bahasa pemrograman proyek dan membuat image Docker tanpa menggunakan Dockerfile. Pada prinsipnya, ini adalah teknologi yang sama yang sebagian digunakan oleh GitLab DevOps Otomatis pada langkah Pembuatan Otomatis. Sangat menyenangkan melihat bahwa CNB CNCF semakin diadopsi di kalangan pengguna industri.

Setelah gambar dibuat, Waypoint akan mengunggahnya secara otomatis ke registri AWS ECR kami sehingga siap dikirim. Di akhir perakitan, langkah pengiriman menggunakan tambahan AWS ECS untuk menerapkan aplikasi kami ke akun AWS kami.

Dari laptop saya itu mudah. Saya memasukkan Waypoint yang sudah diautentikasi di akun AWS saya dan "berfungsi". Tetapi apa yang terjadi jika saya ingin melampaui laptop saya? Atau mungkin saya ingin mengotomatiskan penerapan ini sebagai bagian dari keseluruhan saluran CI/CD tempat pengujian integrasi, pengujian keamanan, dan lainnya berjalan saat ini? Ini adalah bagian dari cerita di mana GitLab CI/CD hadir!

NB Jika Anda baru berencana untuk mengimplementasikan CI / CD atau ingin mulai menerapkan praktik terbaik untuk membangun jaringan pipa, perhatikan kursus Slurm yang baru. "CI/CD pada contoh Gitlab CI". Sekarang tersedia untuk harga pre-order.

Waypoint di GitLab CI/CD

Untuk mengatur semua ini di GitLab CI/CD, mari kita lihat apa yang kita butuhkan di file kita .gitlab-ci.yml:

  • Pertama-tama, Anda memerlukan gambar dasar untuk dijalankan di dalamnya. Waypoint berjalan di distribusi Linux apa pun, hanya membutuhkan Docker, jadi kami dapat menjalankannya dengan gambar Docker generik.
  • Selanjutnya, Anda perlu menginstal Waypoint ke dalam gambar ini. Di masa depan kami dapat mengumpulkan gambar meta build dan kemas proses ini untuk Anda sendiri.
  • Akhirnya kita akan menjalankan perintah Waypoint

Di atas adalah semua yang dibutuhkan pipeline kami untuk menjalankan skrip yang diperlukan untuk melakukan penerapan, tetapi untuk menerapkan ke AWS, kami memerlukan satu hal lagi: kami harus masuk ke akun AWS kami. Dalam deskripsi Waypoint punya rencana tentang otentikasi dan otorisasi. HashiCorp juga merilis proyek yang mengesankan minggu ini Batas. Namun untuk saat ini, kami hanya dapat mengambil dan menangani autentikasi dan otorisasi sendiri.

Ada beberapa opsi untuk autentikasi GitLab CICD di AWS. Opsi pertama adalah menggunakan built-in Vault HashiCorp. Tidak apa-apa jika tim Anda sudah menggunakan Vault untuk pengelolaan kredensial. Metode lain yang berfungsi jika tim Anda mengelola otorisasi menggunakan AWS IAM adalah memeriksa apakah tugas pengiriman dipicu melalui Pelari GitLabA yang diberi otorisasi untuk memulai penerapan melalui IAM. Namun jika Anda hanya ingin mengenal Waypoint dan ingin melakukannya dengan cepat, opsi terakhir adalah menambahkan AWS API dan kunci Rahasia ke Variabel lingkungan GitLab CI/CD AWS_ACCESS_KEY_ID ΠΈ AWS_SECRET_ACCESS_KEY.

Menyatukan semuanya

Setelah kami mengetahui autentikasinya, kami dapat mulai! Akhir kami .gitlab-ci.yml Ini terlihat 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 kita mulai dengan gambar docker:latest dan atur beberapa variabel lingkungan yang diperlukan oleh Waypoint. Dalam bab script kami mengunduh Waypoint terbaru yang dapat dieksekusi dan memasukkannya /usr/local/bin. Karena pelari kita sudah diotorisasi di AWS, maka kita lari saja waypoint init, build, deploy ΠΈ release.

Output dari tugas build akan menunjukkan titik akhir tempat kami menjalankan aplikasi:

Cara menggunakan HashiCorp Waypoint untuk Berkolaborasi dengan GitLab CI/CD

Waypoint salah satunya banyak solusi HashiCorp, yang bekerja sangat baik dengan GitLab. Misalnya, selain mengirimkan aplikasi, kami dapat mengatur infrastruktur yang mendasarinya Terraform di GitLab. Untuk standarisasi keamanan SDLC, kami juga dapat menerapkan GitLab dengan Vault untuk mengelola rahasia dan token dalam pipeline CI/CD, memberikan solusi lengkap bagi pengembang dan administrator yang mengandalkan manajemen rahasia untuk penggunaan pengembangan, pengujian, dan produksi.

Solusi bersama yang dikembangkan oleh HashiCorp dan GitLab membantu perusahaan menemukan cara terbaik untuk mengembangkan aplikasi dengan memastikan manajemen rantai pasokan dan infrastruktur yang konsisten. Waypoint telah mengambil langkah lain ke arah yang benar dan kami menantikan pengembangan lebih lanjut dari proyek ini. Anda dapat mempelajari lebih lanjut tentang Waypoint di sinijuga layak untuk ditelusuri dokumentasi ΠΈ rencana pengembangan proyek. Kami telah menambahkan pengetahuan kami ke Dokumentasi GitLab CICD. Jika Anda ingin mencobanya sendiri, Anda dapat melihat contoh kerja lengkapnya di repositori ini.

Anda dapat memahami prinsip CI / CD, menguasai semua seluk-beluk bekerja dengan Gitlab CI dan mulai menerapkan praktik terbaik dengan menyelesaikan kursus video "CI/CD pada contoh Gitlab CI". Bergabung sekarang!

Sumber: www.habr.com

Tambah komentar