Ansible คือเครื่องมือที่ช่วยสร้างการตั้งค่าและติดตั้งโปรแกรมต่างๆบนเครื่อง Server แบบอัตโนมัติ มาเริ่มใช้งาน Ansible กันใน How-To ครั้งนี้จะเป็นการติดตั้ง Drupal
ติดตั้ง Ansible ด้วยคำสั่ง

sudo add-apt-repository ppa:rquillo/ansible

sudo apt-get update

sudo apt-get install ansible

สร้างไดเร็กทอรี่ MyPlaybooks เพื่อใช้เก็บไฟล์การตั้งค่าต่างๆด้วยคำสั่ง

mkdir ~/MyPlaybooks

สร้างไดเร็กทอรี่ drupal_setup เพื่อเป็นที่เก็บการตั้งค่าการติดตั้ง Drupal ด้วยคำสั่ง

mkdir ~/MyPlaybooks/drupal_setup

สร้างไฟล์ชื่อ hosts ไว้ใน MyPlaybooks/drupal_setup เพื่อเป็นไฟล์ที่ใช้ในการกำหนดตั้งค่าเครื่อง Server ที่จะลง Drupal ใน How-To ครั้งนี้จะลงใน Localhost ด้วยคำสั่ง

nano ~/MyPlaybooks/drupal_setup/hosts

ทำการเพิ่มเนื้อหาไฟล์และทำการบันทึกดังนี้

[drupal_hosts]
localhost

สร้างไดเร็กทอรี่ roles ไว้ใน MyPlaybooks/drupal_setup/ เพื่อเป็นที่เก็บการทำงานต่างๆในการติดตั้ง Drupal ด้วยคำสั่ง

mkdir ~/MyPlaybooks/drupal_setup/roles

สร้างไดเร็กทอรี่ update/tasks ไว้ใน MyPlaybooks/drupal_setup/roles เพื่อทำการเก็บคำสั่งในการทำ apt-get update ด้วยคำสั่ง

mkdir ~/MyPlaybooks/drupal_setup/roles/update

mkdir ~/MyPlaybooks/drupal_setup/roles/update/tasks

สร้างไฟล์ main.yml ที่เป็นไฟล์ในการเก็บคำสั่งที่ใช้ด้วยคำสั่ง

nano ~/MyPlaybooks/drupal_setup/roles/update/tasks/main.yml

โดยมีเนื้อหาไฟล์ดังนี้

---

- name: apt-get update the server
  apt: update_cache=yes

สร้างไดเร็กทอรี่ php/tasks ไว้ใน MyPlaybooks/drupal_setup/roles เพื่อเป็นที่เก็บไฟล์การตั้งค่าการติดตั้ง PHP ด้วยคำสั่ง

mkdir ~/MyPlaybooks/drupal_setup/roles/php

mkdir ~/MyPlaybooks/drupal_setup/roles/php/tasks

สร้างไฟล์ main.yml เพื่อเป็นไฟล์ที่ใช้ในการตั้งค่าการติดตั้ง PHP ด้วยคำสั่ง

nano ~/MyPlaybooks/drupal_setup/roles/php/tasks/main.yml

โดยมีเนื้อหาไฟล์ดังนี้

---

- name: Install PHP and associated packages
  apt: name=php5 state=latest

- name: Install PHP GD library
  apt: name=php5-gd state=latest
  notify:
    - Restart Apache

สร้างไดเร็กทอรี่ handlers ด้วยคำสั่ง

mkdir ~/MyPlaybooks/drupal_setup/roles/php/handlers

สร้างไฟล์ main.yml ด้วยคำสั่ง

nano ~/MyPlaybooks/drupal_setup/roles/php/handlers/main.yml

โดยมีเนื้อหาไฟล์ดังนี้

---

- name: Restart Apache
  service: name=apache2 state=restarted

สร้างไดเร็กทอรี่ /mysql/tasks ไว้ใน MyPlaybooks/drupal_setup/roles เพื่อเป็นที่เก็บไฟล์การตั้งค่าการติดตั้ง MySQL ด้วยคำสั่ง

mkdir -p ~/MyPlaybooks/drupal_setup/roles/mysql/tasks

สร้างไฟล์ setup.yml เพื่อเป็นที่เก็บการตั้งค่าการติดตั้ง MySQL ด้วยคำสั่ง

nano ~/MyPlaybooks/drupal_setup/roles/mysql/tasks/setup.yml

โดยมีเนื้อหาไฟล์ดังนี้

---

- name: Install MySQL server
  apt: name=mysql-server state=latest

- name: Install Apache module for MySQL authentication
  apt: name=libapache2-mod-auth-mysql state=latest

- name: Install MySQL module for PHP
  apt: name=php5-mysql state=latest

สร้างไฟล์ create_db.yml เพื่อเป็นไฟล์ที่ใช้กำหนดค่าต่างๆของ MySQL ด้วยคำสั่ง

nano ~/MyPlaybooks/drupal_setup/roles/mysql/tasks/create_db.yml

โดยมีเนื้อหาไฟล์ดังนี้

---
- name: Install Python MySQLdb
  apt: name=python-mysqldb state=latest

- name: Create the Drupal database
  mysql_db: db={{ db_name }} state=present

- name: Create the Drupal user
  mysql_user: >
    name={{ db_user }}
    password={{ db_password }}
    priv={{ db_name }}.*:ALL
    host=localhost

สร้างไฟล์ main.yml ด้วยคำสั่ง

nano ~/MyPlaybooks/drupal_setup/roles/mysql/tasks/main.yml

โดยมีเนื้อหาไฟล์ดังนี้

---

- include: setup.yml
- include: create_db.yml

สร้างไดเร็กทอรี่ /drupal/tasks ไว้ใน MyPlaybooks/drupal_setup/roles เพื่อเป็นที่เก็บไฟล์การตั้งค่าการติดตั้ง Drupal ด้วยคำสั่ง

mkdir -p ~/MyPlaybooks/drupal_setup/roles/drupal/tasks

สร้างไฟล์ main.yml ด้วยคำสั่ง

nano ~/MyPlaybooks/drupal_setup/roles/drupal/tasks/main.yml

โดยมีเนื้อหาไฟล์ดังนี้

---

- name: Install git
  apt: name=git state=latest

- name: Clone Drupal
  git: >
    repo=http://git.drupal.org/project/drupal.git
    dest=/var/www/html/drupal/
    update=no

- name: Create settings.php
  command: cp /var/www/html/drupal/sites/default/default.settings.php /var/www/html/drupal/sites/default/settings.php

- name: Create services.yml
  command: cp /var/www/html/drupal/sites/default/default.services.yml /var/www/html/drupal/sites/default/services.yml

- name: Update permissions of settings.php
  file: path=/var/www/html/drupal/sites/default/settings.php mode=777

- name: Update permissions of services.yml
  file: path=/var/www/html/drupal/sites/default/services.yml mode=777

- name: Update permissions of files directory
  file: >
    path=/var/www/html/drupal/sites/default/files
    mode=777
    state=directory
    recurse=yes

สร้างไฟล์ site.yml เพื่อเป็นไฟล์ที่ใช้ในการเรียกไฟล์การตั้งค่าต่างๆมาใช้งานด้วยคำสั่ง

nano ~/MyPlaybooks/drupal_setup/site.yml

โดยมีเนื้อหาไฟล์ดังนี้

---

- hosts: drupal_hosts

  sudo: yes

  vars:
    - db_name: drupal
    - db_user: user
    - db_password: password

  roles:
    - update
    - php
    - mysql
    - drupal

โดยทำการเปลี่ยนค่า user และ password เป็นชื่อผู้ใช้งานและรหัสผ่านของ MySQL ที่ต้องการ
ทำการ SSH เข้าเครื่องด้วยคำสั่ง

ssh localhost

สั่งให้ Ansible ทำงานด้วยคำสั่ง

cd ~/MyPlaybooks/drupal_setup/

ansible-playbook -i hosts site.yml –kK

ติดตั้ง Drupal ด้วยเว็บเบราเซอร์ตามขั้นตอนของ Drupal ก็จะพร้อมใช้งาน

Comments are closed.