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 ก็จะพร้อมใช้งาน