Install aplikasi Linux secara masal? Ga masalah. Ansible jawabannya!

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 [email protected]

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:

[email protected]:~# 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? Masih alesan ga punya server buat di oprek? tinggal langganan di CloudKilat.com murah kok **Promo mode:on kekeke….

A. Hardiena

Teknoblogger, Linux Addict yang juga Pengembang Linux Zencafe, meraih penghargaan dibidang open source oleh Menkominfo M. Nuh dan Menristek Kusmayanto Kadiman. Saat ini berlabuh disalah satu perusahaan media terbesar Indonesia, VIVA.co.id. Hobi wisata kuliner dengan beberapa aktivitas seperti Koordinator IGOS Center, Koordinator Pokja Asosiasi Open Source Indonesia, Pembina Asosiasi Warnet Linux & Open Source Indonesia dan KPLI Bekasi.

One thought on “Install aplikasi Linux secara masal? Ga masalah. Ansible jawabannya!

  1. qiosqu_official Reply

    emng enak,a pake sistemoprasi linux ?

Leave a Reply

Your email address will not be published. Required fields are marked *