-
Notifications
You must be signed in to change notification settings - Fork 0
Provisioning Multiple VM dengan Ansible
Kita dapat menggunakan Ansible untuk melakukan provision terhadap multiple server yang kita buat. Pada contoh di modul ini, kami menggunakan Ubuntu 20.04.6 LTS sebagai mesin utama dan nantinya pada Ubuntu tersebut akan dibuat virtualisasi dengan KVM (Kernel-based Virtual Machine) yang merupakan virtualisasi native di Linux. Dengan KVM, kita akan membuat dua virtual machine dengan OS Ubuntu.
Di sini kita akan menggunakan 3 mesin, yaitu mesin Ubuntu utama dan 2 virtual machine Ubuntu. Mesin Ubuntu utama akan menjadi host Ansible atau Control Node sedangkan 2 VM akan digunakan sebagai worker yang akan diprovisioning.
Pertama, Kalian buat direktori baru misal "test-vagrant-ansible", didalam direktori tersebut sama seperti modul sebelumnya untuk setup vagrant seperti biasa. Tetapi isi dari Vagrantfile nya contohnya seperti ini:
Vagrant.configure("2") do |config|
config.vm.box = "generic/ubuntu2004"
config.vm.provider "virtualbox" do |vb|
vb.memory = "2048"
vb.cpus = "2"
end
config.vm.provision "ansible" do |ansible|
ansible.playbook = "playbook.yaml"
end
endNOTE:
- Pastikan Vagrant Boxes yang digunakan memiliki support provider "Libvirt", karena VMM hanya suppport provider Libvirt saja. Kalian bisa lihat di link: Vagrant Boxes
- Kemudian kalian buat file ansible di dalam direktori "playbook.yaml" Dengan isinya bisa disesuiakan dengan kebutuha. Contohnya seperti dibawah ini:
---
- hosts: all
tasks:
- name: Install Nginx to VM
become: true
apt:
name: nginx
state: latest
update_cache: true- Setelah itu, kalian vagrant up terlebih dahulu.
vagrant up --provider=libvirt - Kemudian jika ada perubahan di playbook.yaml ataupun di Vagrantfile kalian perlu reload vagrant nya.
vagrant reload --provision
Jika seperti gambar diatas berarti udah berhasil. Maka di VMM nya akan otomatis running seperti dibawah ini:

Untuk Step selanjutnya akan sama seperti ISO manual untuk yang di step 5. Test SSH Worker.
Pertama, kita install terlebih dahulu VMM dan KVM dengan melihat instalasi berikut:Installasi VMM dan KVM.
Kedua, kita buat dua virtual machine dengan bantuan dari Virtual Machine Manager.

NOTE:
- Untuk installasi virtual machine-nya seperti instalasi VM pada Virtualbox (Oracle atau VMWare).
- Pastikan
usernamedanpassworduser yang dibuat di kedua vm merupakankredensialyangsamakarena akan berpengaruh pada proses SSH. Contoh: VM1 dan VM2 sama-sama memiliki userworkerdengan passwordworker
Pada Control Node (Ubuntu utama) kita install Ansible terlebih dahulu sesuai intruksi pada materi sebelumnya. Lakukan juga install Ansible pada 2 virtual machine yang sudah dibuat. Installasi..
Kemudian, kita buat folder baru untuk testing, misalnya dibuat dengan nama test-playbook.
mkdir test-playbookKemudian, masuk ke folder test-playbook dan buat file inventory ansible yang dinamakan hosts dan diisi dengan.
...
all:
vars:
ansible_user: vagrant
hosts:
worker:
ansible_host: 192.168.121.219
ansible_ssh_private_key_file: /home/ilhanahmads/tka/.vagrant/machines/default/libvirt/private_keyNote:
- Path file private_key sesuaikan dengan device masing-masing
- IP Config VM 1 dan 2 bisa melihat GUI pada Virtual Machine Manager (VMM) seperti foto dibawah ini:
Kemudian, coba lakukan ping ke VM worker untuk mengetahui apakah ssh dapat terhubung atau tidak.
ansible -i ./hosts -m ping all -kKemudian, masukkan password login ssh, yaitu worker
KETERANGAN:
- Parameter
-iuntuk mendeclare ansible inventory - Parameter
-muntuk mendeclare module command - Parameter
-kuntuk menanyakan password login ssh - Parameter
alluntuk penanda ansible dijalankan pada semua host.alldapat diganti juga dengan nama host sesuai keinginan.

NOTE:
- Apabila ada error
Unreachable, pada tiap worker perlu diinstallopenssh-serverdan aktifkan port 22 pada setiap worker. Instalasi dapat dilihat di sini Installasi OpenSSH Ubuntu dan Installasi OpenSSH Kali. - Apabila ada error
Please add host's fingerprint ..., silakan untuk cobe koneksi ssh manual terlebih dahulu untuk tiap worker denganssh worker@IPuntuk menyimpan fingerprintnya pada machine utama.
Kemudian, kita membuat playbook sederhana dengan nama install-package.yaml untuk menginstall lynx pada worker
- hosts: worker
tasks:
- name: Install Lynx
become: true
apt:
name: lynx
state: latest
update_cache: true Kemudian, jalankan perintah berikut ini untuk menjalankan playbook.
ansible-playbook -i hosts install-package.yaml -k
Terakhir, kita coba untuk membuat folder baru di kedua VM worker. File playbook untuk ini kita namakan newfile.yaml
- hosts: worker
tasks:
- name: Create new directory
command: mkdir -p newdir
- name: Create new yaml file
command: touch newfile.yamlKemudian, jalankan perintah berikut ini untuk menjalankan playbook.
ansible-playbook -i hosts newfile.yaml -k
Untuk Video Lengkapnya kalian bisa mengakses link berikut: Video
Modul 1
- Prerequisite
- Dasar Teori
- Installasi
- Membuat Virtualisasi
- Konfigurasi Resource Virtual Machine
- Cara Bermain
- Konfigurasi Internet Pada Virtual Machine
- Sinkronisasi Folder
- Provisioning Aplikasi Pada Virtual Machine
- Soal Latihan
- Referensi
Modul 2
- Dasar Teori
- Installasi
- Terminologi Dasar
- Simple Provisioning Vagrant dengan Ansible
- Provisioning Multiple VM dengan Ansible
- Soal Latihan
- Referensi
Modul 3
- Virtual Machine vs Container
- Docker Instalasi
- Docker
- Docker Image
- Docker Container
- Docker Volume
- Dockerfile
- Docker Compose
- Soal Latihan
- Referensi
Modul 4
Modul 5