Ansible Playbook to Install WordPress
====================================================================---
- name: 'WordPress installation'
hosts: all
become: yes
gather_facts: no
vars_files:
- vars.yml
tasks:
- name: 'Downloading Wordpress'
get_url:
url: "{{WP_URL}}"
dest: "{{DEST}}/wordpress.tar.gz"
- name: 'Extracting Wordpress Package'
unarchive:
src: "{{DEST}}/wordpress.tar.gz"
dest: "{{DEST}}"
remote_src: yes
- name: 'Setting Permissions and ownership'
file:
dest: "{{DEST}}"
owner: root
group: root
recurse: yes
- name: "Creating Wordpress Database"
mysql_db:
login_user: root
login_password: "{{MYSQL_ROOT}}"
db: "{{DB_NAME}}"
state: present
- name: "Creating Wordpress User"
mysql_user:
login_user: root
login_password: "{{MYSQL_ROOT}}"
name: "{{DB_USER}}"
host: localhost
password: "{{DB_PASSWORD}}"
priv: "{{DB_NAME}}.*:ALL"
- name: 'Wordpress - Generating wp-config.php'
template:
src: wp-config.php.j2
dest: "{{DEST}}/wordpress/wp-config.php"
====================================================================
vars.yml
====================================================================
---
MYSQL_ROOT: ans@root#mysql
DB_NAME: wp_db
DB_USER: wp_ans
DB_PASSWORD: WP123!@#
WP_URL: https://wordpress.org/latest.tar.gz
DEST: /var/www/html/
---
MYSQL_ROOT: ans@root#mysql
DB_NAME: wp_db
DB_USER: wp_ans
DB_PASSWORD: WP123!@#
WP_URL: https://wordpress.org/latest.tar.gz
DEST: /var/www/html/
====================================================================
wp-config.php.j2
====================================================================
<?php
define('DB_NAME', '{{DB_NAME}}');
define('DB_USER', '{{DB_USER}}');
define('DB_PASSWORD', '{{DB_PASSWORD}}');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
$table_prefix = 'wp_';
define('WP_DEBUG', false);
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
require_once(ABSPATH . 'wp-settings.php');
<?php
define('DB_NAME', '{{DB_NAME}}');
define('DB_USER', '{{DB_USER}}');
define('DB_PASSWORD', '{{DB_PASSWORD}}');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
$table_prefix = 'wp_';
define('WP_DEBUG', false);
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
require_once(ABSPATH . 'wp-settings.php');
====================================================================