EP3: Automation menggunakan Ansible Semaphore
Ada banyak configuration management (CM) tool untuk memudahkan tugasan untuk configure server atau melaksanakan tugasan berkala secara automatik seperti patching server dan application deployment. Antara tool CM yang terkenal adalah Ansible, Puppet, Chef, CFEngine dan Saltstack. Cuma untuk perkongsian kali ni saya nak berkongsi tentang Ansible.
Ansible ni merupakan CM tool jenis ‘push’ dimana task execution dilakukan dengan cara SSH ke server dan laksanakan tugasan yang telah dinyatakan dalam file arahan tugasan iaitu Ansible Playbook. Bermaksud Ansible perlu ada direct connectivity ke server untuk melakukan tugasan menggunakan protokol SSH.
Dan CM tool jenis ‘push’ ini berbeza dengan jenis ‘pull’ dimana ia tidak memerlukan pemasangan agent dalam server (agentlesss) manakala jenis ‘pull’ seperti Puppet memerlukan pemasangan agent dalam server (agent based) sebelum boleh melaksanakan tugasan.
Secara asasnya untuk menggunakan Ansible, anda hanya perlu memasang Ansible dalam pc anda, menyediakan Ansible Playbook script seperti update operating system, menyediakan host inventory file dan kemudian melaksanakan playbook tersebut menggunakan command Ansible.
Proses ni berlaku dalam bentuk terminal kerana Ansible merupakan open source tool dan secara asasnya ia tidak didatangkan bersama dengan GUI. Bagi kebanyakan situasi/ tugasan, menggunakan Ansible melalui terminal sudah mencukupi.
Namun jika anda ingin mempunyai GUI untuk mengurusakan task, anda boleh setup Ansible Tower server tetapi ianya perlu dibayar. Jadi alternatif bagi Ansible Tower untuk menguruskan Ansible mnggunakan GUI adalah dengan cara menggunakan Ansible Semaphore.
Ansible Semaphore merupakan satu tool yang membolehkan Task Ansible diuruskan menggunakan web UI yang moden. Anda boleh setup Ansible Semaphore menggunakan package manager, Docker ataupun secara manual. Ansible Semaphore membolehkan tugasan seperti update operating system, patching, application deployment dan configuration menjadi semakin mudah. Ia juga boleh di integrate bersama dengan git repository dimana anda boleh pull ansible playbook code daripada git repo dan execute Ansible task secara automatik. Anda juga boleh lihat history task yang telah dijalankan serta schedule task untuk dijalankan secara berkala menggunakan cron.
Untuk pengetahuan anda, sebenarnya Ansible juga boleh digunakan bersama Jenkins jika anda mahukan UI untuk menguruskan task Ansible. Akan tetapi setelah menggunakan Ansible Semaphore, saya dapati ia lebih mudah digunakan bersama Ansible Semaphore berbanding Jenkins.
Dalam screenshot yang saya sertakan, saya telah menggunakan Ansible Semaphore untuk update container image, Upgrade OS dan install Zabbix agent.
Untuk maklumat lebih lanjut mengenai Ansible Semaphore, anda boleh layari laman web Ansible Semaphore di https://www.ansible-semaphore.com/