Pada saat kita dihadapkan dengan pilihan harus melakukan installasi secara berulang-ulang ataupun harus melakukan installasi aplikasi yang sama di banyak server, tentu hal ini merupakan hal yang menjemukan, bikin bete, boring, mumet dan lain sebagainya, You count it lah 😀
Bayangkan seandainya ente berada dalam posisi harus menginstall 50 atau 100 server sekaligus, apa ga mabok ***curcol mode =))
Sebenarnya ada cara yang mudah untuk melakukannya, tidak perlu melakukan installasi secara berulang-ulang, selama server sudah bisa di remote, masalah ente bakalan tuntas…tas..tas… Sayangnya ini ga berlaku untuk installasi OS (blom nemu solusi yang enak gimana) *** curcol lagi, hiks….
Mau sistem operasinya pake distro Ubuntu, distro redhat dan keluarganya, debian, atau bahkan gentoo dan slackware ga ada masalah. Cukup menjalankan satu perintah, and simsalabim…..
Ada banyak tools yang bisa dipake bertebaran diluaran sana. Ada puppet (my favorite one), ada chef, salt, dan ansible. Masih banyak lagi tentunya. Namun yang cukup low resource, jadi bisa di install di server dengan spesifikasi rendah dan paling mudah digunakan adalah ansible. Kita cukup bikin yang namanya playbook (istilah untuk kumpulan script ansible).
Mumpung kebetulan gi ada waktu luang, habis kmaren-kmaren pada gontok-gontokan ngedukung capres idola. Kali ini kita akan coba oprek-oprek, menginstall ansible. Distro yang dipake Centos 6, bukan apa-apa, soalnya RedHat termasuk distro yang umumnya digunakan oleh perusahaan soalnya ***alasan aja seh sebenernya, kebetulan aja punya mesin nganggurnya cuman centos kekeke.. Tapi apa yang ane bilang ga salah kok, berdasarkan survey kecil-kecilan dari rata-rata os yang dipake oleh pengguna InfinysCloud dan CloudKilat, mayoritas pakenya Centos.
Ok, langsung aja deh kita mulai oprek-opreknya.
Siapkan satu mesin yang akan kita jadikan master (Ansible) yang akan memerintahkan mesin-mesin target sesuai yang kita inginkan
Update terlebih dulu Centosnya, biar maknyus!
yum update
Kemudian download dan install aplikasi ansible dengan langkah berikut:
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm yum install ansible
Klo udah, tinggal kita edit file /etc/ansible/hosts klo ga ada tinggal dibikin. Isinya cuman list IP atau hostname (klo kita udah masukin di /etc/hosts) mesin target.
Jangan lupa, mesin Ansible harus bisa obrol dengen mesin target tanpa ditanyain soal password, klo belum bisa dibuatkan koneksi dengan mengizinkan Ansible ngobrol melalui autentifikasi SSH, alias SSH key. Caranya sebagai berikut (dilakukan dimesin Ansible):
ssh-keygen ssh-copy-id root@ip-mesin-target
Klo langkah diatas udah dilakukan dengan bener, cobain deh, harusnya Ansible udah bisa kirim perintah yang akan di eksekusi sama mesin target.
ansible all -m ping
Contoh:
root@master:~# ansible all -m ping 192.168.1.1 | success >> { "changed": false, "ping": "pong" } 192.168.1.2 | success >> { "changed": false, "ping": "pong" }
Whats next?
Selanjutnya tinggal bikin yang namanya playbook deh. Playbook, adalah file bahasa yang digunakan untuk menjalankan mesin target. Berbentuk file YML.
Hmmm… ane nyontohinnya apa ya biar asik…. Gotcha, gimana klo berandai-andai klo kita mesti install 100 webserver yang udah terinstall wordpress? Ngapain juga punya 100 wordpress server ya? wkwkkwk namanya juga berandai-andai….
Kita masukkan IP atau hostname dari mesin yang mau kita install, kemudian bikin file YML dengan nama yang kita mau, contoh: coba.yml
vi coba.yml
Kurang lebih kira-kira kek gini isinya:
- hosts: all tasks: - name: Install Apache yum: name=httpd state=latest - name: Selanjutnya Install PHP yum: pkg={{ item }} state=latest with_items: - php - php-common - php-mysql - name: Ini MySQL dan kawan-kawan yum: pkg={{ item }} state=latest with_items: - mysql - mysql-server - name: Klo ini download wordpress get_url: dest=/root/latest.tar.gz url=http://wordpress.org/latest.tar.gz - name: Sekarang kita extract wordpressnya action: command tar xzf /root/latest.tar.gz -C /var/www/html/
Nah, tinggal jalankan dengan perintah dibawah, tunggu proses selesai dan 100 webserver dengan wordpress siap disajikan.
ansible-playbook coba.yml
Menarik bukan? Modul2 perintah yang bisa digunakan bisa di lihat di http://docs.ansible.com/list_of_all_modules.html
Gampang kan? Rulez your puppets!
Wuiiih keren… Saya sebagai pengguna linux biasa masih belum bisa beginian…
Have you ever considered publishing an ebook or guest authoring on other sites?
I have a blog centered on the same subjects you discuss and would really like to have you share
some stories/information. I know my subscribers would appreciate your work.
If you’re even remotely interested, feel free to shoot me an e mail.
wih mantab om, makasih ilmunya
Ini info keren dan mantapppppzz… Meskipun artikel tentang Linux seringkali terkesan sangar, cryptic dan njlimet tetapi dengan penyampaian gaya bhs Anda yang gaul dan humoris, bikin pembaca jadi enjoy dan lebih mudah memahaminya. Salut dan sukses untuk Anda. Salam kenal dari saya, and I’s like to know you better for more nice sharing and stuffs about Linux. You could drop and see me in FB using this name: Hamami InkaZo.
Thanks a lot for this nice article/posting.
Ini info keren dan mantapz.. Meskipun artikel tentang Linux seringkali terkesan sangar, cryptic dan njlimet tetapi dengan penyampaian gaya bhs Anda yang gaul dan humoris, bikin pembaca jadi enjoy dan lebih mudah memahaminya. Saya pribadi lebih banyak dealing with Debian atau Ubuntu Linux. But I’d like to learn other distros as well.
Salut dan sukses untuk Anda. Salam kenal dari saya, and I’s like to know you better for more nice sharing and stuffs about Linux. You could drop and see me in FB using this name: Hamami InkaZo.
Thanks a lot for this nice article/posting.
Wahh, keren sekali 😀 saya kok jadi iri dan pengin bisa belajar lebih dalam lagi dengan linux