Ansible – Belajar Ad-Hoc Commands (ping, update, install packages) ke Server

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.

Ansible
Ansible

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 module
  • ping : 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