Hai semuanya, apa kabar? Tulisan ini adalah kelanjutan seri Ansible di blog ini. Kali ini, kita akan coba untuk instal Ansible-nya dan tetap menggunakan Git untuk melacak/mencatat perubahan yang terjadi/dilakukan pada sistem/project kita.
Instalasi Ansible
Pada pengujian kali ini, Ansible akan diinstal pada komputer lokal saya, yang menggunakan Linux Mint. Ansible dapat diinstal dari repositori bawaan Ubuntu-based Linux. Jalankan perintah berikut:
sudo apt update
sudo apt install ansible
Membuat Inventory
Inventory bisa disebut sebagai daftar alamat server yang ingin kita kelola. Kita perlu buat terlebih dahulu filenya. Pada pengujian kali ini kita akan buat file inventory-nya di direktori ansible-testing.
cd ansible-testing/
nano inventory
Pada file inventory, isi dengan alamat IP dari server target. Contohnya:
192.168.9.44
192.168.9.45
Simpan ke GitHub
Kita masukkan file inventory tadi ke Git agar perubahannya tercatat dan tersimpan di Github.
git status # Mengecek file baru (untracked)
git add inventory # Menyiapkan file
git commit -m "first inventory file, added two hosts"
git push origin main # Mengirim ke GitHub
Menjalankan Perintah Ad-Hoc (Ping)
Perintah ad-hoc adalah cara menjalankan perintah Ansible tanpa membuat skrip (playbook). Kita akan coba gunakan perintah ping untuk mengecek koneksi.
ansible all --key-file ~/.ssh/ansible -i inventory -m ping
Apabila ada error atau kendala UNREACHABLE, kendalanya bisa jadi disebabkan karena server target belum mengenal SSH key dari komputer lokkal kita.
Kita perlu salin key tersebut ke server target terlebih dahulu. Dalam pengujian kali ini, kedua server target-nya adalah Proxmox VE. Di bawah ini merupakan contoh perintah yang digunakan untuk menyalin file key ke server target.
ssh-copy-id -i ~/.ssh/zai-ansible.pub root@192.168.9.44
ssh-copy-id -i ~/.ssh/zai-ansible.pub root@192.168.9.45
Jalankan ulang perintah Ansible-nya.
ansible all -i inventory -m ping -u root --key-file ~/.ssh/zai-ansible
ansible all: menargetkan ke semua host yang terdaftar pada file inventory.
-i inventory: Gunakan file bernama inventory sebagai daftar host-nya.
-m ping: Gunakan modul ping (Ansible akan mengecek Python di target).
-u root: Masuk sebagai root.
--key-file: Private key yang digunakan untuk autentikasi.
Contoh output-nya ketika berhasil adalah sebagai berikut:
192.168.9.45 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
Apabila output-nya muncul "ping":"pong", artinya Ansible sudah berhasil berkomunikasi dengan server tujuan dan siap digunakan untuk menjalankan perintah selanjutnya.
Untuk tulisan kali ini sampai di sini dulu ya. Sampai jumpa. Bye.
Referensi course: https://youtu.be/4REljLsOnXk?si=CHZxEYYFG07_KNuJ&t=120