Hai hai gaes pada kesempatan kali kita akan coba untuk mengoprek2 lagi salah satu software open source yang paling populer di kalangan DevOps/SRE yaitu Ansible.
Software tools that enables infrastructure as code, it is open source project sponsored by Red Hat, it's the simplest way to automate IT.
Ada beberapa kenapa Ansible banyak dipakai dan populer yaitu
implementasi yang mudah tidak perlu install agent disetiap server
Dokumentasi rapih (Ansible Documentation)
mendukung bash script
cross platform OS
bahasa YAML
Install Ansible
Ansible memerlukan python3, maka pastikan python3 sudah terinstall di OS. Di sini saya menggunakan WSL Windows untuk menginstall ansible.
$ python3 --version
selanjutnya install pip, check apakah pip sudah terinstall
$ python3 -m pip -v
pip 21.0.1 from /usr/lib/python3.9/site-packages/pip (python 3.9)
jika ada error no module named pip install lakukan ini
$ sudo apt install python3-pip
next install ansible
$ python3 -m pip install --user ansible
check
$ ansible --version
ansible [core 2.14.1]
config file = None
configured module search path = ['/home/sdb/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /home/sdb/.local/lib/python3.10/site-packages/ansible
ansible collection location = /home/sdb/.ansible/collections:/usr/share/ansible/collections
executable location = /home/sdb/.local/bin/ansible
python version = 3.10.6 (main, Nov 14 2022, 16:10:14) [GCC 11.3.0] (/usr/bin/python3)
jinja version = 3.1.2
libyaml = True
sukses ansible sudah terinstall.
untuk menjalankan ansible command yang di lakukan seperti ini:
$ ansible [group_inventory] -i inventory --become -m [ansible_module] -a "[arguments]"
* group_inventory : di dalam file inventory nanti akan di buat nama group inventory yang berisikan seperti IP dari server yang akan di konfigurasi
*--become : Privilege Escalation
*-m : module ansible yang dapat di lihat di Ansible Module . Contoh kita menggunakan module ansible.builtin.shell yang berguna untuk execute shell command.
*-a : di sini arguments tambahan dari module. contoh -a "cmd='apt update'"