January 19, 2019

Install Aplikasi Linux Secara Massal? Pake Ansible Aja

Pada saat kita dihadapkan dengan pilihan harus melakukan installasi aplikasi secara berulang ataupun harus melakukan installasi aplikasi yang sama di beberapa server dan diwaktu itu juga kalian mau ngelakuin sesuatu, tentu hal tersebut bikin mumet atau apalah. Bayangkan jika sekarang kalian disuruh melakukan hal tersebut untuk 15 sampai 50 server, mabok dan bete auto mode ON hihihi :v Apalagi kalau sistem operasinya berbeda beda, mungkin baru dengar aja seketika mabok dan bete udah auto ganti ke mode ON.

Nah karena pada artikel sebelumnya siBunglon telah mengajak kalian berkenalan dengan ansible, sekarang kalian diajak untuk memecahkan masalah kalian yang sesuai dengan point utama artikel ini, install aplikasi secara bersamaan di beberapa server atau menginstall aplikasi yang sama dengan apa yang diinstall pada server sebelumnya.

Sebelum mode mabok dan betenya auto ON karena banyak menghayal memikirikan beberapa server, mending sekarang langsung main lagi :D Sebelum bermain di lab kali ini, saya asumsikan kalian telah membaca dan melakukan hal yang sama sesuai sesi bermain di artikel sebelumnya.

Pada lab ini saya asumsikan:

  • IP server = 192.168.0.8
  • Username server = airgreen
  • Identitas remote = airgreen
  • File inventaris = hosts
  • File playbook = build.yml

Bermain Dengan Ansible

Note: pastikan ansible telah terinstall yah!

1) Pastikan local kalian saat ini bisa berkomunikasi atau local bisa remote server tanpa harus dimintai password karena ansible menggunakan SSH untuk terhubung ke server yang dituju.

2) Pastikan local kalian saat ini bisa berkomunikasi dengan server melalui ansible, coba kalian ping servernya dengan ansible menggunakan command ansible ipServerOrDNSServer -m ping

Jika outputnya seperti berikut berarti local anda sudah bisa berkomunikasi dengan server melalui ansible

192.168.0.8 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

3) Buat inventaris dengan nama file hosts yang berisikan informasi server yaitu ip dan identity server anda, isinya seperti berikut ini.

[airgreen]
192.168.0.8 ansible_ssh_user=airgreen

4) Buat playbook ansible dengan nama file build.yml yang berisi perintah perintah yang akan diterapkan ke server, isinya seperti berikut ini.

---
- hosts: [airgreen]
  remote_user: airgreen
  become: true
  become_user: root
  become_method: sudo
  tasks:
     - name: Set NTP to inactive
       shell: timedatectl set-ntp 0
     - name: Set timezone to Asia/Jakarta
       shell: timedatectl set-timezone Asia/Jakarta
     - name: Update Repository
       apt:
         update_cache: yes
     - name: Install Packages
       apt:
         name: "{{ item }}"
         state: present
       with_items:
         - nginx
         - unzip

5) Sekarang waktunya menjalankan playbooknya agar perintah dalam playbook tersebut segera dieksekusi diserver, gunakan command ansible-playbook -i hosts build.yml, dan silahkan tunggu hingga prosesnya selesai :D Sembari nunggu, enaknya ngopi aja hihihi :D

Oh yaa biar lebih enak lagi, saya berikan juga videonya sesuai command yang dipaparkan