
Seluruh kekuatan GitLab CI dalam menunjukkan buku pedoman yang dimungkinkan dengan infrastruktur sebagai pendekatan kode.
GitLab CI adalah alat yang efektif untuk berbagai skenario, termasuk infrastruktur sebagai kode. GitLab dapat digunakan dengan alat yang berbeda, tetapi dalam demo ini kita akan mengambil Ansible, karena justru itulah yang paling sering digunakan pengembang ketika mendekati "infrastruktur sebagai kode". Berikut ini adalah demo dengan dua router dari kursus di jaringan Ansible .
Keindahan GitLab CI adalah bahwa kode dari buku pedoman Ansible dapat dimodifikasi dan dikirim tanpa menginstal dependensi apa pun secara lokal. Sebuah proyek demo yang menyebabkan string SNMP diperbarui pada semua perangkat setiap bulan sesuai dengan kebijakan keamanan kami dapat sepenuhnya diselesaikan di GitLab.com , layanan hosting kode kami.
Untuk memulai, buka buku pedoman Ansible, di mana ada 4 tugas:
- Kumpulkan fakta router - mengumpulkan fakta tentang router.
- Versi tampilan - versi tampilan
- Tampilkan nomor seri
- Configure SNMP - Configure SNMP.
Dalam demo ini, kami akan fokus pada mengonfigurasi string SNMP, yang harus Anda ikuti beberapa langkah sederhana.
Mulai dari papan tugas
Semua rencana di GitLab dimulai dengan cara yang sama: dengan sebuah tugas . Jadi, langkah pertama dari alur kerja GitLab adalah memeriksa papan tugas di proyek ansible-demo . Pada papan tugas demo-mungkin, kita sudah melihat tugas: mengubah jalur SNMP pada semua router . Tugas ini memiliki tautan ke halaman wiki kebijakan keamanan GitLab, yang mengatakan bahwa jalur SNMP harus diperbarui setiap bulan, dan untuk operasi baca-saja dan baca-tulis, harus ada baris yang berbeda.

Kebijakan keamanan GitLab mengatur pembaruan string SNMP setiap bulan.
Kemudian Anda perlu memverifikasi bahwa perintah untuk mengonfigurasi string SNMP dalam demo dengan dua router tidak melanggar kebijakan keamanan GitLab yang dijelaskan dalam tugas.

Perintah untuk mengonfigurasi string SNMP tersedia di buku pedoman Ansible.
Kemudian kembali ke tugas, tetapkan untuk diri sendiri dan ubah pintasan dari yang to-do
menjadi yang doing
di panel kanan atau cukup seret tugas di papan dari satu kolom ke yang lain.
Membuat permintaan penggabungan
Sekarang Anda perlu membuat permintaan penggabungan dari tugas. Pastikan permintaan gabungan memiliki bendera Work in Progress (WIP) sehingga tidak masuk ke wisaya secara prematur. Alih-alih menghubungkan secara lokal, kami menggunakan GitLab Web IDE karena perubahan pada jalur SNMP kecil.
- Buka bagian demo CI / CD.
- Buka Buku pedoman yang memungkinkan.
- Ubah bagian SNMP sebagai berikut:
- Harap dicatat bahwa saluran yang berbeda dikonfigurasi untuk RO dan RW sesuai dengan kebijakan keamanan GitLab yang dijelaskan dalam tugas .
Berkomit berkomitmen
Anda memperbarui jalur SNMP sesuai dengan instruksi, dan sekarang Anda perlu melakukan perubahan. Buka perbandingan perubahan paralel untuk memastikan permintaan gabungan berisi komit terbaru.

Alat perbandingan paralel secara visual menunjukkan perubahan.
Hasil
Perubahan yang dilakukan akan secara otomatis meluncurkan pipa GitLab CI. Dia akan melakukan tugas-tugas berikut:
- Pemeriksaan sintaksis
- Tes berjalan.
- Menguji perubahan di lingkungan laboratorium / buatan.
Kami melihat kemajuan dan output setiap pekerjaan di pipa GitLab CI yang memperbarui SNMP.

Output dari tugas Anda menunjukkan bahwa pembaruan SNMP di lingkungan buatan berhasil.
Semua tugas ini akan diluncurkan dan didokumentasikan dalam permintaan penggabungan.

Tanda centang menunjukkan bahwa tugas dalam pipa GitLab CI telah selesai.
Kemudian masuk ke router untuk demo dan lihat perubahannya.

Perubahan pada SNMP RO dan RW ditunjukkan pada router.
Gabungkan Ulasan Permintaan
Anda dapat melakukan langkah tambahan - menyetujui permintaan penggabungan . Jika Anda menetapkan persetujuan, beberapa pengguna akan dapat memverifikasi perubahan sebelum mereka mulai diproduksi.

Permintaan penggabungan dapat dikonfigurasikan agar pengguna lain memeriksa karya Anda sebelum muncul di wizard.
Pindah ke master
Perubahan dapat dikirimkan ke wizard segera setelah pengujian. Wizard adalah cabang utama yang berisi kode ruang kerja.
Saat siap, klik tombol Resolve Work In Progress
. Kemudian klik Merge
.
Saat Anda mengaktifkan status WIP, permintaan penggabungan dapat dikirim ke panduan, dan tugas dapat ditutup.
Pipa baru akan menjalankan semua tes yang Anda lakukan pada langkah tambahan meluncurkan playbook dalam produksi.
Melacak kemajuan dan mencatat di layar pipa. Ketika proses selesai, masuk ke router yang berfungsi dan verifikasi bahwa jalur SNMP telah berubah.
Magic GitLab CI
Semua ini dimungkinkan berkat keajaiban GitLab CI. Pipa GitLab CI adalah serangkaian tugas berurutan yang melakukan semua yang diperlukan untuk menguji dan menerapkan kode yang mungkin.
Seluruh konfigurasi GitLab CI cocok dengan file YAML sederhana, yang disimpan dalam .gitlab-ci.yml
.
Dalam demo ini, file .gitlab-ci.yml
berisi 3 langkah.
- Deploy (Deployment): Membuat jaringan yang disimulasikan dengan dua router di AWS menggunakan Ansible.
- Demo: Melakukan buku pedoman yang akan mengubah jalur SNMP.
- Hancurkan: Hancurkan jaringan yang disimulasikan dengan dua router.
GitLab CI dimulai dengan gambar dasar. Dalam hal ini, kami menggunakan gambar Docker, yang berisi semua kode yang diperlukan dan dependensi yang dimungkinkan. Tunjukkan perintah yang akan dieksekusi pada setiap tahap, dan dependensi.

File YAML sederhana berisi tiga tahap GitLab CI.

Fase demonstrasi GitLab CI, yang menjalankan playbook Ansible.
Kami melihat ke dalam pipa dan melihat bagaimana Anda dapat menggunakan GitLab CI untuk membuat infrastruktur sebagai kode tanpa harus menginstal dependensi yang mungkin pada komputer Anda. Ini hanyalah salah satu contoh bagaimana GitLab CI dapat digunakan untuk mengimplementasikan infrastruktur sebagai kode. Lihat video untuk panduan lengkap: