Hai semuanya, apa kabar? Kali ini kita lanjutin belajar Ansible-nya. Di materi sebelumnya kita sudah bahas mengenai cara instalasi Ansible dan testing perintah dasarnya.
Membuat File Konfigurasi
Kita akan buat file konfigurasi bernama ansible.cfg. Pada pengujian kali ini, hal-hal yang berkaitan dengan Ansible saya simpan di ~/ansible-testing. Berikut ini adalah contoh isi dari file konfigurasinya:
[defaults]
inventory = inventory
private_key_file = [lokasi file key]
File konfigurasi ini digunakan untuk menyimpan pengaturan default. Dengan file ini, kita tidak perlu untuk mengetik lokasi inventory & key setiap kali menjalankan perintah Ansible.
Testing Ping
Selanjutnya, kita coba ping menggunakan perintah ansible.
ansible all -i inventory -m ping
Pada pengujian kali ini, ada error yang terjadi:
msg: "Failed to connect to the host via ssh: no such identity: /home/phantom/.ssh/ansible: No such file or directory"
Penyebabnya adalah saya salah memasukkan nama file private key-nya. Setelah nama file diedit. Penyebab lain yang dapat menimbulkan masalah seperti ini adalah Ansible belum dapat membaca file ansible.cfg (atau ada parameter di dalam file .cfg itu yang belum sesuai.
Untuk coba lagi, kita juga dapat memerintahkan Ansible untuk menggunakan parameter manual. Contohnya:
ansible all -i inventory -m ping -u root --key-file [lokasi key]
Output:
192.168.9.45 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
Output pong menandakan komunikasi antara komputer lokal kita dan server tujuan berhasil dilakukan.
Tips/Catatan: Perintah di atas bisa dibilang “cukup panjang” Hal tersebut dapat diatasi dengan cara menyimpan file
ansible.cfgdi direktori project utama (misalnya dalam pengujian kali ini di~/ansible-testing). Setelah file tersebut ada/terdeteksi, kita cukup menjalankan perintahansible all -m ping.
Manajemen Host & Inventory
Untuk mengecek server mana saja yang kita “masukkan” ke daftar-nya Ansible, kita dapat menggunakan perintah berikut:
ansible all --list-hosts
hosts (2):
192.168.9.44
192.168.9.45
Pada pengujian kali ini, alamat IP tersebut adalah alamat IP dari host Proxmox VE.
Sinkronisasi dengan Git
Kita juga dapat melakukan sinkronisasi perubahan yang dilakukan dengan Git. Hal ini dilakukan agar pekerjaan/progress yang kita lakukan tidak hilang dan dapat dicek/dilanjutkan juga oleh tim. Misalnya:
- Cek status file:
phantom@phantomint:~/ansible-testing$ git status On branch main Your branch is up to date with 'origin/main'. Untracked files: (use "git add <file>..." to include in what will be committed) ansible.cfg nothing added to commit but untracked files present (use "git add" to track)Perintah tersebut berguna untuk mengecek file apa saja yang baru atau berubah.
- Menambahkan file untuk “dilacak” oleh Git
phantom@phantomint:~/ansible-testing$ git add ansible.cfg phantom@phantomint:~/ansible-testing$ git status On branch main Your branch is up to date with 'origin/main'. Changes to be committed: (use "git restore --staged <file>..." to unstage) new file: ansible.cfgPerintah
git adddi atas digunakan untuk menambahkan fileansible.cfgagar dilacak oleh Git.- Commit
phantom@phantomint:~/ansible-testing$ git commit -m "first version of ansible.cfg" [main 984dc17] first version of ansible.cfg 1 file changed, 3 insertions(+) create mode 100644 ansible.cfgPerintah
commitdigunakan untuk mengunci perubahan dengan catatan/keterangan.
- Commit
- Push
phantom@phantomint:~/ansible-testing$ git push origin main Enumerating objects: 4, done. Counting objects: 100% (4/4), done. Delta compression using up to 12 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 386 bytes | 386.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 To github.com-office:zaidan-99/ansible-testing.git 5cbc06d..984dc17 main -> mainPerintah
pushdigunakan untuk mengirim file dari lokal ke GitHub.
Selanjutnya, kita coba cek di web GitHub. Gambar di bawah menampilkan perubahan yang sudah muncul.

Itu dulu tulisan kali ini. Sampai jumpa. Bye.
Referensi course: https://youtu.be/4REljLsOnXk?si=8iKnJuI3KODNyZYK&t=60
