Setelah sebelumnya belajar banyak tentang ansible di website ini maka sekarang sampailah pada bab belajar ad-hoc commands. Pada bab ini temen-temen mulai bener-bener menggunakan tools yang namanya Ansible karena pada dasarnya untuk menjalankan task kita menggunakan command /usr/bin/ansible
dan command ini sekarang kita akan pakai pada ad-hoc commands.
Apa itu Ad-Hoc Commands?
Ad-Hoc Commands merupakan proses menggunakan /usr/bin/ansible
(dalam hal ini command utama ansible) untuk mengotomatisasi “menjalankan secara otomatis” single task terhadap satu atau lebih node server yang dimanage.
Persiapan
Untuk dapat menjalankan ad-hoc commands temen-temen cukup instalasi ansible saja. Setelah itu tinggal dipraktikkan contoh-contoh ad-hoc commands dibawah.
INGAT! – Pastikan server / device yang akan digunakan untuk uji coba bisa anda jangkau atau SSH Server-nya bisa anda akses.
Baca Lagi: Cara Login SSH Server tanpa Password (Key-Pair Authentication)
Contoh-contoh dan Penjelasan Ad-Hoc Commands Ansible
Berikut saya berikan contoh-contoh langsung berikut penjelasan singkatnya ya. Apabila masih bingung bisa didiskusikan dikolom komentar.
1. Ping
Pertama, kita akan menggunakan module [-m] ping.
ansible all -i 192.168.43.94, -m ping
Nah, untuk pertama ini mungkin penjelasanya sedikit lebih panjang karena temen-temen mesti paham secara penuh apa command dan options yang saya gunakan diatas.
Diatas, saya bermaksud melakukan ping terhadap host/server dengan spesifik IP yaitu: 192.168.43.94
Keterangan:
ansible all
: command untuk menjalankan ansible sekaligus memanggil semua group [all].-i
: opsi kependekan dari –inventory yang mana ini bertujuan untuk memanggil spesifik alamat host atau file inventory.192.168.43.94,
: alamat ip host/server tujuan – kalau banyak ip bisa dipisahkan dengan comma.-m
: kependekan dari –module-name untuk memberikan spesfiki moduleping
: nama module yang akan dijalankan.
Jika temen-temen telah belajar Ansible – Menulis Inventory Hosts Berbasis INI syntax diatas bisa anda ganti seperti berikut:
ansible all -i /path/to/hosts -m ping
Bedanya, jika sebelumnya itu kita tanpa file inventory hosts. Kalau yang ini kita membuat inventory hosts terlebih dahulu untuk deklarasi semua hosts yang akan kita perintahkan menggunakan ansible.
2. Update
Kedua, kita sekarang coba menggunakan module
default yaitu shell
.
ansible all -i 192.168.43.94, -a "sudo apt update -y"
ansible all -i 192.168.43.94, -m shell -a "sudo apt update -y"
Untuk melakukan update mungkin ada beberapa cara, namun untuk kali ini saya contohkan cara sederhanya seperti diatas. Catatan: Karena default module-nya adalah shell maka opsi -m shell
bisa kita hilangkan seperti baris yang pertama.
3. Install Packages
Ketiga, contoh terakhir ini kita akan coba melakukan instalasi paket didalam server menggunakan Ansible.
ansible all -i 192.168.43.94, -m apt -a "name=apache2 state=present"
Gimana? Cukup mudah kan?
Kesimpulan
- Setiap module punya karakteristik yang berbeda dan ada yang memiliki parameter yang wajib anda definisi dan yang lain opsional.
- Jika ada beberapa hosts server disarankan disimpan kedalam file inventory hosts. Bisa juga anda group-kan didalam file tersebut, kemudian nanti bisa dipanggil per-group atau keseluruhan. Contoh:
ansible webserver-apache -i /path/to/hosts -m apt -a "name=apache2 state=latest"
- Baca dokumentasi: https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html#intro-adhoc
Admin LUKMANLAB, DevOps Engineer, Site Reliability Engineer, System Administrator.