Ansible playbook designed to be used with Bedrock to configure dev & production servers for Bedrock-based WordPress sites.
This playbook will install the common LEMP (Linux/Nginx/MySQL/PHP) stack with PHP 5.5 and MariaDB as a drop-in MySQL replacement (but better) on Ubuntu 12.04 Precise LTS.
Vagrant is recommended to provision servers and this comes with a basic Vagrantfile
for an easy dev setup.
- Ansible >= 1.5.4 - Installation docs
- Virtualbox >= 4.3 - Downloads
- Vagrant >= 1.5 - Downloads
Download/fork/clone this repo to your local machine.
- Edit
Vagrantfile
and set yourconfig.vm.synced_folder
(you can copy thisVagrantfile
into a project's directory for a project specific VM). - Edit
group_vars/all
and add your WordPress site(s). See Options below for details. - Optionally copy and edit
hosts.example
tohosts
for more than the single dev host through Vagrant (since Vagrant automatically creates its own hosts inventory). - Optionally add any dev hostnames to your local
/etc/hosts
file (or use the hostsupdated plugin. - Run
vagrant up
.
All Ansible configuration is done in YAML.
wordpress_sites
is the top level array used to define the WordPress sites/virtual hosts that will be created.
site_name
(required) - name used to identify site (commonly the domain name) (default: none)site_hosts
(required) - array of hosts that Nginx will listen on (default: none)user
(optional) - user owner of site directories/files (default:root
|user
insite.yml
)group
(optional) - group owner of site directories/files (default:www-data
)site_install
(optional) - whether to install WordPress or not (default:true
)site_title
(optional) - WP site title (default:site_name
)db_import
(optional) - Path to localsql
dump file which will be imported (default:false
)admin_user
(optional) - WP admin user name (default:admin
)admin_password
(required ifsite_install
) - WP admin user password (default: none)admin_email
(required ifsite_install
) - WP admin email address (default: none)multisite
(optional) - hash of multisite optionsenabled
(optional) - Multisite enabled flag (default:false
)subdomains
(optional) - subdomains option (default:false
)base_path
(optional) - base path/current site path (default:/
)
env
(required) - hash of multisite optionswp_home
(required) -WP_HOME
constant orhome
option (default: none)wp_siteurl
(required) -WP_SITEURL
constant orsiteurl
option (default: none)wp_env
(required) - WordPress environment (default: none)db_name
(optional) - name of database (default:site_name
)db_user
(required) - database user name (default: none)db_password
(required) - database user password (default: none)db_host
(required) - database host (default:localhost
)
- Multisite: basic support is included but not yet complete. There are issues with doing a network install from scratch via WP-CLI.
- MariaDB: there's no
root
password set yet. - WordPress Salts/Keys: the generated
.env
file does not include these yet. - Nginx: configuration needs more options and advanced setups like static files and subdomain multisite support.