[Ansible] Install Web Server

Instalasi Web Server menggunakan Ansible

Environment

Situation

Saya ingin menginstal Web Server di Ubuntu Server 18.04 dengan mudah. Dengan Reqirement sebagai berikut:

Requirement

Resolution

Install semua paket/service Web Server secara otomatis menggunakan Ansible.

Steps

  1. Install Ansible pada host/laptop disini
  2. Membuat direktory dan masuk direktory
mkdir web-server
cd web-server
  1. Membuat file “hosts” untuk inventory Ansiblenya
nano hosts

Isi dengan IP Server. Contoh:

[webserver]
192.168.88.10 ansible_connection=ssh ansible_user=root
  1. Membuat file “main.yml” untuk script ansible playbooknya
nano main.yml

Isi dengan script di bawah ini

---
 - hosts: webserver
   vars :
     mysql_root_password : passwdroot #sesuaikan password
   tasks:
     - name: update repository
       apt: update_cache=yes force_apt_get=yes cache_valid_time=3600
     - name: install nginx
       apt: name=nginx state=latest
     - name: start nginx
       service:
           name: nginx
           state: started
     - name: install php7.2 dan composer
       apt:
         pkg:
           - php7.2-fpm
           - php7.2-common
           - php7.2-xml 
           - php7.2-zip
           - php7.2-mysql 
           - php7.2-mbstring
           - php7.2-json
           - php7.2-curl
           - php7.2-gd
           - php7.2-pgsql
           - composer
     - name: start php7.2-fpm
       service:
         name: php7.2-fpm
         state: started
     - name: Install MySQL
       apt:
         pkg:
           - mysql-server-5.7
           - mysql-client-5.7
           - libmysqlclient-dev
           - python-mysqldb
     - name: Start MySQL
       action: service name=mysql state=started
     - name: Update mysql root password
       mysql_user: name=root host={{item}} password={{mysql_root_password}}
       with_items:
         - 127.0.0.1
         - ::1
         - localhost
...
  1. Pastikan Bisa akses SSH ke Server menggunakan Private Key
  2. Jalankan Ansible dengan perintah seperti dibawah
ansible-playbook -i hosts main.yml

Note: Jika terjadi kegagalan, coba ulangin Step ke 6