Sunday, March 19, 2017

Mengenal Ansible Sebagai Configuration Management

Pada kesempatan ini saya akan berbagi tentang ansible sebagai configuration management.

Apa itu ansible?
- Implementasi software dari configuration management
- Adalah automation engine yang dijalankan untuk memudahkan untuk mengelola server yang berjumlah banyak.
Berdasarkan pernyataan diatas maka dapat dipahami bahwa ansible diperlukan untuk mengelola target server yang berjumlah banyak. Sebagai contoh jika kita ingin copy file dari laptop ke server yang berjumlah 2 atau 3 mungkin kita dapan menggunakan scp, tapi bayangkan jika kita perlu melakukan copy file ke 15 atau 100 server? Wow pasti sesuatu :)

Ada tiga cara untuk menjalankan ansible, yaitu:
- Ad-Hoc (free)
  Cara menjalankan ansible berupa command-line instruksi via terminal

- Playbooks (free)
  Cara menjalankan ansible yang terdiri dari plays, dan plays terdiri dari task, dimana task akan memanggil modul-modul ansible. Sebagai catatan task dijalankan secara berurutan

- Automation Framework Tower (Berbayar)
  Enterprise framework untuk mengontrol, keamanan dan mengelola automasi ansible menggunakan UI dan restful API.

Untuk menjalankan ansible maka dibutuhkan python pada ansible server dan target server, dan berkomunikasi menggunakan OpenSSH.

Baiklah, langsung saja.

=> Tahap Instalasi
Pada kasus ini saya menggunakan OS X dimana install via python package manager (pip).
$ sudo easy_install ansible
$ sudo pip install ansible

=> Setting inventory
Pada kasus ini saya memiliki 2 node dengan address berikut:
- 192.168.56.108 (node1)
- 192.168.56.109 (node2)
*note: asumsi hosts sudah memiliki private key agar tidak perlu password saat ssh ke target server.

Pada working directory buat file hosts dengan isi target server. Seperti pada contoh berikut
[dev]
192.168.56.108 ansible_ssh_user=root
192.168.56.109 ansible_ssh_user=root

Kata yang berada dalam tanda kurung "[dev]" adalah group name dari target server. Anda dapat menggantinya dengan apa saja.

Pertama-tama kita akan menjalankan ansible dengan metode ad-hoc.
- Test koneksi ke seluruh server development

ansible dev -m ping


Dengan begitu kita tidak perlu mengetes koneksi kesemua server development, ini adalah contoh sederhana. Berikutnya adalah contoh copy file dari ansible host ke seluruh target.

ansible dev -m copy -a "src=/Users/pasaribu/testFile.xml dest=/tmp/testFile.xml"

Dengan begitu seluruh server yang tergabung dalam group name dev sudah memiliki file testFile.xml

Pada artikel berikutnya saya akan menjelaskan bagaimana menggunkanan ansible dengan cara ansible playbook.

Referensi :
- http://docs.ansible.com/


No comments:

Post a Comment