Cara Menggunakan Ansible untuk Instalasi LEMP di Debian 11

Cara Menggunakan Ansible untuk Instalasi LEMP di Debian 11

Sebagai seorang SysAdmin, mungkin akan membutuhkan waktu dalam memanage server yang lebih dari 1 seperti monitoring, maupun instalasi dengan perintah yang sama ke beberapa server, untuk itu diperlukan Ansible untuk memudahkan prosesnya. Pada artikel ini, kami akan membahas mengenai cara menggunakan Ansible untuk instalasi LEMP di Debian 11.

Ansible

Ansible adalah provisioning tool yang dikembangkan oleh Red Hat yang bersifat open source, menjadi salah satu jalan termudah untuk melakukan automasi.

Ansible adalah alternatif yang bagus untuk opsi automasi, karena menawarkan arsitektur yang tidak memerlukan software khusus yang harus di install pada server/node, menggunakan SSH untuk mengeksekusi automation task dan file YAML untuk menentukan provisioning details.

Server Automation saat ini memainkan peran penting dalam system administration, karena sifat sekali pakai dari modern application environment. Tools manajemen konfigurasi seperti Ansible biasanya digunakan untuk merampingkan proses automate server setup dengan menetapkan standar prosedur untuk server baru dan juga mengurangi human error yang terkait dengan manual setup.

Persiapan

Ada beberapa hal yang perlu disiapkan:

  1. Memiliki 2 VPS yang aktif dengan OS Debian 11.
  2. Sudah melakukan Instalasi Ansible pada Control Node.
  3. Memiliki akses root.

2 VPS yang perlu disiapkan untuk:

  • 1 Ansible Control Node: Ansible Control Node yang akan digunakan untuk connect dan control ke Ansible Host melalui SSH.
  • 1 Ansible Hosts: Ansible Host nantinya akan di kontrol oleh Ansible Control Node yang sudah dikonfigurasi untuk automasi. 

Point

  • Update Server
  • Playbook
  • Run Playbook

Cara Menggunakan Ansible untuk Instalasi LEMP di Debian 11

Berikut cara menggunakan Ansible untuk Instalasi LEMP di Debian 11.

Update Server

Login sebagai root dan update package yang ada pada server supaya up-to-date.

$ apt-get update -y

$ reboot

Playbook

Untuk instalasinya nanti melalui Playbook, playbook untuk Linux, Nginx, MySQL, PHP (LEMP Stack) akan melakukan beberapa proses pada Ansible Hosts kamu seperti:

  1. Install aptitude, direferensikan oleh Ansible sebagai pengganti apt package manager.
  2. Install package yang dibutuhkan LEMP.
  3. Create file konfigurasi Nginx yang baru.
  4. Enable file konfigurasi Nginx yang baru dan juga disable file konfigurasi Nginx default.
  5. Disable default Apache pages, dimana value pada disable_default di-set ke true.
  6. Set password untuk MySQL root.
  7. Remove Anonymous MySQL account dan test database.
  8. Set up PHP test script seperti info php.

Ketika proses playbook sudah selesai, kamu memiliki web PHP environment yang berjalan di atas Nginx.

Run Playbook

Yang perlu dilakukan adalah dengan menggunakan playbook, kamu bisa dapatkan dari Repository GitHub atau kamu bisa membuatnya sendiri, di sini kami menggunakan dari S-Damian yang mungkin outdated, namun karena ini adalah tutorial, jadi kami hanya gunakan untuk contoh saja. Kemudian lakukan clone repository ke server yang dijadikan Ansible Control Node.

$ cd ~

$ git clone https://github.com/s-damian/ansible-web-server-debian.git

$ cd ansible-web-server-debian

Isi dari repository tersebut adalah

ansible-web-server-debian

├── ansible

│   ├── roles

│   └── hosts

│   └── web-server.yml

└── README.md

Move directory tersebut ke /etc/ansible/

$ mv ansible-web-server-debian/ /etc/ansible/

Ubah value pada konfigurasi playbook tersebut.

$ cd /etc/ansible/ansible-web-server-debian/ansible/

$ nano web-server.yml

Ubah pada section # REQUIRED.

hosts: all

linux_user: www-data

domains:      
 - vps201.dewiweb.net

mariadb_super_user_username: super_user

mariadb_super_user_password: P4ssword123su!

mariadb_prod_username: user_prod

mariadb_prod_password: P4ssword123prod!

Sesuaikan value di atas dengan kebutuhan kamu.

Jika sudah, save dan exit.

Kemudian, jalankan playbooknya. Kami memilih untuk menjalankan playbooknya secara spesifik ke server1.

$ ansible-playbook -l server1 -u root -i /etc/ansible/hosts /etc/ansible/ansible-web-server-debian/ansible/web-server.yml

Outputnya akan seperti berikut:

PLAY [Installing the LEMP server] *************************************************************************************************************************************************************************

TASK [Gathering Facts] ************************************************************************************************************************************************************************************

ok: [server1]

TASK [start : Update and upgrade] *************************************************************************************************************************************************************************

changed: [server1]

TASK [start : Installation] *******************************************************************************************************************************************************************************

ok: [server1]

TASK [domains-architecture : Create domain architecture] **************************************************************************************************************************************************

included: /etc/ansible/ansible-web-server-debian/ansible/roles/domains-architecture/tasks/domain.yml for server1 => (item=vps201.dewiweb.net)

TASK [domains-architecture : Create /home/www-data/www/sites/vps201.dewiweb.net/public folder] ************************************************************************************************************

changed: [server1]

TASK [domains-architecture : Create /home/www-data/www/sites/vps201.dewiweb.net/public/index.php file] ****************************************************************************************************

changed: [server1]

TASK [php : Installation of useful packages] **************************************************************************************************************************************************************

ok: [server1]

TASK [php : Ondrej Sury - Download the GPG key] ***********************************************************************************************************************************************************

ok: [server1]

TASK [php : Ondrej Sury - Add the repository to sources list.] ********************************************************************************************************************************************

changed: [server1]

TASK [php : APT update] ***********************************************************************************************************************************************************************************

ok: [server1]

TASK [php : Install PHP 8.2 and PHP-FPM and few packages] *************************************************************************************************************************************************

ok: [server1]



TASK [phpmyadmin : Installation on the domain vps201.dewiweb.net with a symlink] **************************************************************************************************************************

changed: [server1]

TASK [end : Remove apache2] *******************************************************************************************************************************************************************************

ok: [server1]

TASK [end : Change the timezone - Put UTC] ****************************************************************************************************************************************************************

[WARNING]: Consider using 'become', 'become_method', and 'become_user' rather than running sudo

changed: [server1]

TASK [end : Update and upgrade] ***************************************************************************************************************************************************************************

ok: [server1]

PLAY RECAP ************************************************************************************************************************************************************************************************

server1                    : ok=68   changed=46   unreachable=0    failed=0    skipped=20   rescued=0    ignored=0   

Proses playbook sudah selesai, kamu bisa akses domain atau IP yang kamu set di playbook sebelumnya.

cara menggunakan ansible

Tampilan di atas adalah hasil dari akses ke IP/Domain.

Kesimpulan

Dengan mengikuti artikel ini, artinya kamu telah berhasil menggunakan Ansible untuk instalasi LEMP di Debian 11, kamu dapat modifikasi lagi playbook-nya sesuai dengan kebutuhan kamu.

Demikian artikel ini, jangan sungkan untuk meninggalkan ide-ide topik yang ingin kamu baca di blog Dewaweb. Semoga artikel ini membantu.