Ansibel adalah software gratis, open-source, dan populer untuk keperluan automation dan manajemen konfigurasi (configuration management). Tools ini di tulis dalam bahasa phyton. Di bidang teknologi, konsep automatisasi (automation) sudah sangat diadopsi dan diterapkan oleh banyak organisasi untuk mengelola lingkungan yang kompleks (complex enviroment) dan perlu untuk di skalakan (dikembangkan) secara cepat oleh system administrator dan developer. Konsep ini telah mendorong dibuatnya alat-alat (tools) seperti Ansible, Puppet, Chef, Foreman, Katelo, dan CFEngine. Dari semua pilihan tools automation ansible menjadi pilihan pertama di banyak organisasi IT untuk melakukan manajemen sistem berbasis UNIX/Linux karena beberapa fitur berikut :
- Gratis dan open-source
- Mudah di set-up dan di gunakan
- Fleksibel karena memungkinkan orkestrasi dimulai di seluruh lingkungan
- Efisien karena tidak perlu menginstall software lain atau membuka port firewall baru
- Powerful dan bisa di gunakan dalam alur kerja IT yang kompleks
- Secure / Aman
Untuk tugas
orkestrasi, ansible perlu di install di salah satu nodes. Nodes yang melakukan
manajemen node lain disebut dengan Control node. Node ini menyimpan file
Ansibel Playbook. Yaitu file YAML yang berisi langkah-langkah
yang akan ingin dijalankan pengguna, pada mesin-mesin tertentu atau biasa
dikenal dengan managed nodes.
Istilah lain
dalam ansible bisa anda cari di internet, atau dengan membaca artikel berikut :
https://www.logicmonitor.com/blog/ansible-key-terms-getting-started
Pada tutorial
ini kita akan melakukan instalasi Ansible di Debian 11.
Pra-Syarat
- 3 servers – dengan control node Debian 11
- Membuat user dengan privileges sudo di setiap user. *lihat tutornya disini
- Sudah menginstall ssh di semua nodes
Saya sudah
melakukan setup seperti berikut.
Task |
IP-Address |
Control Node (node1 / Debian11) |
172.30.20.1 |
Managed Node 1 (node2 / Debian11) |
172.30.20.6 |
Managed Node 2 (node3 /Debian11) |
172.30.20.5 |
Langkah 1 – Install Ansible di Debian
Lakukan
instalasi ansible di salah satu node, yang akan dijadikan Control node. Disini
saya menggunakan node 1 (ip: 172.30.20.1).
Tambahkan repository debian 11 kemudian update system package.
sudo apt update
Install Ansible menggunakan perintah berikut
sudo apt -y install ansible sshpass curl
Konfirmasi apakah instalasi ansible berhasil dengan melakukan cek versi ansible.
which ansible
sudo ansible --version
Ansible berhasil
di install.
Ada 2 pilihan
cara lain untuk instalasi ansible, yaitu menggunakan PIP dan Repository
tertentu. Untuk lebih jelasnya silahkan kunjungi halaman berikut.
Langkah 2 – Membuat file Host Inventory
Setelah melakukan instalasi Ansible di Control node, file /etc/hosts akan dibuat secara otomatis. Pada file ini kita bisa menambahkan managed nodes / node-node yang akan di konfigurasi. Kita juga bisa membuat file inventory sendiri di direktori home.
sudo nano ~/.hosts
tambakan script berikut
[node1] 172.30.20.6 ansible_ssh_pass=your_password ansible_ssh_user= your_username [node2] 172.30.20.5 ansible_ssh_pass=your_password ansible_ssh_user= your_username
Ganti
your_password dengan password dan your_username dengan username yang digunakan
pada managed nodes.
Setelah itu kita
buat SSH fingerprints key diantara Control Node dengan Managed nodes.
ssh-keygen -t rsa
# Hanya tekan Enter
sampai selesai.
Kemudian salin
(copy) Public keys ke managed nodes menggunakan perintah berikut.
ssh-copy-id -i ~/.ssh/id_rsa_pub your_username@172.30.20.6
ssh-copy-id -i ~/.ssh/id_rsa_pub your_username@172.30.20.5
# Sesuaikan your_username dan IP Adress yang kamu gunakan.
Dengan konfigurasi
diatas memungkinkan control nodes untuk melakukan manajemen node tanpa
menggunakan otentikasi password.
Langkah 3 – Working with Ansible
Dengan ansible,
Kita hanya perlu melakukan manajemen node dari Control node menggunakan Syntax
dibawah.
ansible -i [inventory_file -m [module] [hosts]
Sekarang kita
coba test apakah managed host sudah ditambahkan dan bisa terhubung.
sudo ansible -i ~/.hosts -m ping all
Contoh out-put.
Control nodes sudah berhasil terhubung dengan managed nodes dan bisa melakukan manajemen konfigurasi secara otomatis.
Apa yang terjadi ketika menggunakan module ping ?
Module ping digunakan untuk request check-up ke remote host (managed host). Modul ini melakukan spesifik cek untuk hal-hal berikut ini :
- Apakah remote host dalam keadaan hidup (up) dan bisa di akses.
- Apakah lingkungan Python berhasil berjalan untuk syarat menggunakan ansible playbooks.
- Cek user login dan privileges.
Ping module, bukan ICMP ping; melainkan, sebuah module kecil yang memerlukan lingkungan Python untuk dieksekusi di remote host. baca lebih lanjut disini.
Setelah melakukan test ping pada managed noded, kita akan lakukan uji-coba apakah managed nodes sudah bisa menerima perintah dari control node dengan melakukan cek memory yang tersedia di managed nodes.
sudo ansible -i ~/.hosts -m shell -a "free -m" all
Uji-coba dengan melakukan cek konfigurasi networking di node2
sudo ansible -i ~/.hosts -m shell -a "ip address" node2
Managed nodes berhasil terhubung dan bisa menerima perintah dari controled node.
Install Aplikasi menggunakan Ansible
Pada tutorial
ini, kita akan melakukan instalasi di managed nodes menggunakan file Playbook.
Kita akan install Web Server Apache2, dan melakukan cek system-uptime (waktu
server menyala) di node 2. Untuk itu kita buat file Playbood di Control Nodes.
sudo nano playbook.yaml
Pada file YAML
tambahkan informasi berikut.
---
- hosts: node2
become: yes
tasks:
- name: Install web server apache2 terbaru di Debian 11 node
apt: name=apache2 state=latest
- name: Start service apache2
service:
name: apache2
state: started
- name: Cek uptime dari remote host
shell: uptime
register: command_output
- debug:
var: command_output.stdout_lines
Sekarang eksekusi / jalankan playbook file menggunakan perintah berikut.
sudo ansible-playbook -i ~/.hosts playbook.yaml -K
Akhirnya kita berhasil install Apache2 di managed node : node2.
Selanjutnya kita bisa cek
status service Apache2 di managed nodes menggunakan perintah ansible berikut.
sudo ansible -i ~/.hosts -m shell -a "systemctl status apache2" node2
Terakhir kita cek apakah web server di node 2 bisa diakses menggunakan curl
curl http://172.30.20.5
Kesimpulan
Selamat kamu
sudah berhasil melakukan instalasi dan bekerja menggunakan ansible. Namun
panduan ini adalah panduan praktis, untuk bisa lebih memahami ansible secara
mendalam kamu masih butuh banyak membaca dan bereksperimen menggunakan
tugas-tugas (tasks) yang lebih kompleks. Tetap semangat !!!
Sumber referensi :
https://computingforgeeks.com/install-and-use-ansible-on-debian-linux/?expand_article=1
0 Comments