Saat mengonfigurasi server jarak jauh dengan Ansible, Anda mungkin menemukan contoh di mana Anda perlu mendapatkan file dari repositori Git. Ini bisa berupa paket perangkat lunak dari repositori publik atau file konfigurasi di repositori pribadi.
Untuk mengkloning git repo dari jarak jauh menggunakan Ansible, Anda dapat menambahkan entri seperti ini ke Playbook Anda.
---
- hosts: all
tasks:
- name: Clone a github repository
git:
repo: https://github.com/sqlite/sqlite.git
dest: /home/debian/repos/
clone: yes
update: yes
Jangan khawatir. Saya akan menjelaskan apa arti parameter tersebut dan bagaimana melakukannya dengan contoh tutorial.
Mengkloning repositori Git dengan Ansible
Saya kira Anda sudah terbiasa dengan dasar-dasar Ansible seperti inventaris, buku pedoman, dll. Jika belum, Anda dapat mengikuti seri tutorial Ansible kami.
Prasyarat
Anda harus menginstal Ansible di mesin lokal Anda. Instance Ansible ini bertindak sebagai node kontrol untuk semua host jarak jauh. Dengan menggunakan node kontrol, Anda dapat membuat buku pedoman dan tugas untuk dijalankan pada mesin jarak jauh yang ditentukan.
Jika Anda memilih untuk mengikuti tutorial ini, pastikan Anda memiliki:
- Satu node kontrol dan satu host jarak jauh.
- Pasangan kunci SSH. Kunci publik dari simpul kontrol harus tersedia dalam file otor_keys di host jarak jauh.
- Pengguna non-root dengan
sudo
hak istimewa pada host jarak jauh. - Akses tulis ke direktori pada host jarak jauh untuk menyimpan konten repo kloning.
Menyiapkan Inventaris yang Mungkin
Sebelum melangkah lebih jauh, Anda perlu menyiapkan inventaris Ansible. Inventaris Ansible adalah file yang berisi informasi tentang server jarak jauh yang ingin Anda kelola dengan Ansible.
Secara default, file terletak di /etc/ansible/hosts
. Buat file ini secara manual jika tidak keluar.
Tambahkan alamat IP dari remote host di file ini:
vim /etc/ansible/hosts
Ini bisa terlihat seperti ini:

Simpan file.
Mengkloning Repositori Git dengan playbook Ansible
Sekarang setelah Anda memiliki file inventaris yang dikonfigurasi dan kunci SSH untuk mengakses host jarak jauh dari node kontrol, Anda dapat membuat Ansible Playbook.
Menggunakan editor teks seperti Vim dan membuat file YAML.
vim clone.yaml
Edit file dan tambahkan entri berikut.
---
- hosts: all
tasks:
- name: Clone a github repository
git:
repo: https://github.com/sqlite/sqlite.git
dest: /home/debian/repos/
clone: yes
update: yes
Dalam buku pedoman di atas, Anda memulai dengan mendefinisikan tugas baru dan memberinya nama “Kloning repositori GitHub".
Selanjutnya, Anda menggunakan git
modul untuk menentukan tautan ke repositori SQLite GitHub.
Anda kemudian melanjutkan untuk menentukan tujuan untuk repositori kloning. Ini adalah direktori lokal di mesin jarak jauh.
Anda menyetel klon atribut ke yes untuk mengkloning repositori dan memperbaruinya menggunakan atribut update.
Untuk menjalankan playbook, gunakan perintah:
ansible-playbook clone.yaml
Jika playbook gagal karena otentikasi SSH, Anda dapat menentukan nama pengguna menggunakan flag -u sebagai:
ansible-playbook -u debian clone.yaml
Setelah tugas dijalankan, Anda harus memiliki repositori yang dikloning di direktori yang ditentukan.
Anda dapat masuk ke host jarak jauh untuk memverifikasi bahwa repositori telah dikloning dengan benar:

Ini akan memberi Anda ide yang layak tentang mengkloning repositori Git dengan Ansible. Dengan informasi ini, Anda seharusnya dapat menggunakan repo Git dengan Ansible berdasarkan kebutuhan Anda.
Jika Anda memiliki beberapa pertanyaan atau saran, silakan tinggalkan komentar di bawah.