Deploy Web Server dengan Automisasi Ansible
Halo balik lagi dengan tulisan kecil saya tentang sysadmin
Ansible adalah alat otomatisasi TI. Itu dapat mengonfigurasi sistem, menyebarkan perangkat lunak, dan mengatur tugas-tugas TI yang lebih canggih seperti penerapan berkelanjutan atau pembaruan bergulir tanpa henti.
Ansible tidak bergantung pada perangkat lunak agen sehingga mudah digunakan. Ansible memungkinkan Anda untuk mengonfigurasi tidak hanya satu komputer, tetapi berpotensi seluruh jaringan komputer sekaligus.
Lanjut ke demo aja ya teori nya temen-temen baca melalui dokumentasi Ansible https://docs.ansible.com/ atau melalui Youtube https://www.youtube.com/watch?v=yARgG7y0O64 dan blog tentang Ansible lainnya.
- Pertama saya menggunakan dua VM menggunakan Cloud dari Microsoft Azure dengan OS Ubuntu 18.04 LTS
- Lalu saya menyatukan dua VM tersebut ke satu Network agar bisa saling berkomunikasi, Ansible menggunakan SSH untuk melakukan Automisasi jadi menyatukan Network adalah hal yang penting. Referensi untuk cara menyatukan Network di VM Azure adalah melalui link berikut : https://docs.microsoft.com/id-id/azure/virtual-network/tutorial-connect-virtual-networks-portal
- Lalu menset hostname dan melakukan ssh public key ke masing-masing VM, agar masing-masing VM dapat saling ssh. Dokumentasi untuk cara menset nya ada di link google docs berikut : https://docs.google.com/document/d/13S8sk_O7sIbREwd-sNoufhnCu8Z95mVm/edit?usp=sharing&ouid=102710474924980771469&rtpof=true&sd=true
- Harus diingat bahwa satu vm berfungsi sebagai Controller atau pengelola yaitu VM yang akan melakukan Automisasi dan satu VM Managed atau yang VM yang akan dikelola atau akan di deploy web server
- Selanjutnya Running Playbooks untuk men-deploy web server Apache.
Eksekusi di VM Controller
- Create Ansible Configuration
sudo nano ansible.cfg...[defaults]inventory = ./inventoryremote_user = <username>...
- Create Inventory
sudo nano inventory...[web]pod-<username>-managed1...
- Create Playbook
sudo nano site.yml...- name: Install and start Apache 2.hosts: pod-raufvm-managed1become: truetasks:- name: apache2 package is presentapt:update_cache: yesforce_apt_get: yesname: apache2state: present- name: correct index.html is presentcopy:src: index.htmldest: /var/www/html/index.html- name: Apache 2 is startedservice:name: apache2state: startedenabled: true...
Run Playbook
ansible-playbook site.yml
Jika berhasil maka tampilan tidak ada error dan web server telah di deploy
Verify Web Server
curl pod-<username>-managed1
Bila web server telah dapat di curl maka web server yang ingin di deploy telah berhasil di deploy. Ansible termasuk sensitif terhadap kesalahan baik itu hostname di inventory ataupun kesalahan dalam menuliskan file yml, maka dibutuhkan ketelitian. Bila ada kesalahan maka akan terjadi error.
Sekian tulisan kecil saya semoga bermanfaat buat yg ingin belajar Ansible, Mohon maaf juga bila tulisan saya banyak kekurangan.
Terimakasih dan sampai ketemu lagi di tulisan saya selanjutnya bye…bye