Install Nginx, MySQL dan PHP (LEMP) Pada Ubuntu Menggunakan Ansible

Thursday, March 24th, 2016 - Tutorial
Advertisement

Seperti yang penulis pernah janjikan, kita akan mencoba untuk belajar cara membuat script deployment untuk memasang Nginx, MySQL dan PHP atau yang biasa disebut LEMP Stack menggunakan Ansible. Tidak ada cara yang spesial atau modul khusus, semua dapat dilakukan dengan modul standar ansible. Pada artikel mengenai cara penggunaan ansible playbook dan roles sudah dijelaskan secara detail, dan kini saatnya mengimplementasikan teori tersebut ke dalam proyek khusus dan spesifik ini.

Yang paling pertama adalah kita memastikan mesin target yang ingin kita deploy dapat kita ssh tanpa menggunakan password. Jika tetap ingin menggunakan password, sebenarnya kita dapat mengisikan saat mengeksekusi ansible playbook dengan opsi --ask-pass atau dalam hal ini juga dibutuhkan password sudo user yaitu dengan memasukkan --ask-sudo-pass . Untuk ssh passwordless atau ssh tanpa menggunakan password dapat dilihat pada tutorial mengenai ssh menggunakan key.

Buat direktori dengan nama belajar_ansible

lalu di dalamnya buat struktur folder seperti ini :

  • belajar_ansible
    • env
    • inventory
    • roles
      • nginx
      • mysql
      • php

Environment

Pertama mari kita membuat file variable yang diletakkan pada folder env.

Lalu isikan variable yang dibutuhkan seperti ini :

Keterangan :

  • db_username : isikan nama user mysql yang ingin di buat.
  • db_password : isikan password database mysql
  • db_name : isi nama database yang akan digunakan
  • document_root : document root dari webserver anda atau direktori dimana letak file web berada
  • nginx_port : port yang akan dilisten oleh nginx (default nya 80)

Untuk file variable ini tidak harus berformat json. Dapat juga dengan format YAML.

Inventory

Pada file inventory ini dapat diisikan semua host yang ingin dideploy. Kami telah menulis tips mengelola inventory pada ansible. Anda dapat mengikuti petunjuk pada artikel tutorial inventory ansible tersebut. Dalam praktek ini, penulis hanya menggunakan sebuah vagrant host untuk mencoba script ini.

Isinya sebagai berikut :

 

Ansible Role Nginx

Pada folder nginx akan ada struktur seperti ini

  • nginx
    • templates
      • nginx.conf.j2
      • server.block.j2
    • handlers
      • main.yml
    • tasks
      • main.yml

Nginx Templates Files

File konfigurasi nginx yang disimpan dalam tempate

File server block / virtual host nginx

Nginx Handler 

Nginx Tasks

Ansible Role MySQL

Pada Role mysql struktur foldernya seperti ini :

  • mysql
    • tasks
      • main.yml
    • handlers
      • main.yml

Mysql Task

Mysql Handler

Ansible Role PHP

Struktur folder pada role php

  • php
    • files
      • php.ini
    • handlers
      • main.yml
    • tasks
      • main.yml

Untuk file php.ini silahkan sesuaikan dengan kebutuhan. Tapi anda juga dapat menyalinnya dari sini :

PHP Handlers

PHP Tasks

Ansible Playbook

Lalu jalankan perintah ini untuk melakukan deployment :

Selamat mencoba

Incoming search terms:

  • cara pasang nginx dengan linux deploy
  • ansible:lemp and configuration
Advertisement
Install Nginx, MySQL dan PHP (LEMP) Pada Ubuntu Menggunakan Ansible | Jsmith | 4.5
Like Page Tutorlinux di Facebook
Leave a Reply