Mungkin kita dapat membuat BASH script atau dengan menggunakan bahasa pemrograman lain untuk mempermudah masalah kita. Namun dengan Ansible, kita dapat melakukan pengelolaan server yang lebih mudah dan terstruktur. Selain itu dapat menghemat waktu kita untuk mengeksekusi proses konfigurasi atau deployment yang sama terhadap beberapa server yang kita miliki.
Untuk memasang Ansible, kamu dapat memasangnya dengan cara berikut.
Mac:
$ brew install ansible
Ubuntu:
$ sudo apt-get install ansible
Kemudian buatlah ansible.cfg di dalam direktori ~/.ansible dan isi dengan konfigurasi berikut:
[defaults]
inventory=/usr/local/etc/ansible/hosts
[ssh_connection]
control_path=%(directory)s/%%h-%%r
control_path_dir=~/.ansible/cp
[privilege_escalation]
become = yes
become_method = sudo
Konfigurasi diatas akan membaca daftar host dari file /usr/local/etc/ansible/hosts, dan membuatnya sebagai sudo. Sekarang kita coba tambahkan server yang akan ditembak oleh Ansible dengan mencatatkannya di file hosts.
[ubuntu-server]
192.168.11.57 ansible_ssh_user=ubuntu ansible_ssh_private_key_file=./ubuntu-server.pem
Sebagai langkah awal, kamu dapat mengeksekusi ad hoc command seperti berikut:
$ ansible ubuntu-server -m ping
$ ansible ubuntu-server -a "free -m"
$ ansible ubuntu-server -a "hostname && uname -a"
$ ansible ubuntu-server -a "ps ax | grep python"
$ ansible ubuntu-server -a "touch ~/README.txt"
Sebagai contoh berikut adalah contoh script Ansible untuk memasang Apache2 dan PHP5 di Ubuntu Server:
- hosts: ubuntu-server
tasks:
- command: apt-get update
- apt: "name=apache2 state=present"
- apt: "name=php5 state=present"
Untuk memanggilnya, kamu dapat mengeksekusinya dengan menggunakan perintah berikut:
$ ansible-playbook initial-setup.yml
Kamu pun dapat menambahkan banyak server di dalam inventory Ansible. Kemudian bila proses konfigurasi hampir sama, kamu dapat mengganti hosts menjadi all seperti berikut:
- hosts: all
tasks:
- command: apt-get update
- apt: "name=apache2 state=present"
- apt: "name=php5 state=present"
0 Comments