Afterburner
See how Voce Platforms makes WordPress fly for large, high-traffic, high-profile sites. From server configuration to must-have WordPress plugins to front end optimizations, you'll learn how to make WordPress scale, reduce server resources, and load quickly.
afterburner-ansible
is a set of Ansible playbooks and tasks that complement the resources, guides and recommendations at afterburner.voceplatforms.com.
What's included?
- System level tuning and optimizations
- Basic firewall via iptables and fail2ban with blocking of IP addresses that repeatedly send POST requests to various WordPress pages
- NGINX, tuned for WordPress with output level caching
- PHP-FPM, with ZendOptimizerPlus opcode caching
- memcached, for WordPress object level caching
- Percona MySQL
- Basic WordPress application setup (regular install or multi-site)
- Various utilities for monitoring the stack (htop, mytop, strace)
Getting Started
Requirements
- A server (either bare metal or virtual) with at least 1GB of RAM.
- Ubuntu 12.04
- SSH access to your server as a user with 'sudo' ability
Setting up your server
First, get Ansible installed.
Once you have Ansible installed...
- Clone this repository and
cd afterburner-ansible
- Run
./install
. (this copies.sample
files for editing) - Edit
group_vars/
files and change any variables needed to match your application/requirements. - Edit
hosts
and supply the domain names of your server(s). - Edit
ansible.cfg
and change any variables needed to run Ansible tasks against your server(s). - Execute
ansible all -m ping
to ensure Ansible can connect to your hosts - Run
ansible-playbook site.yml
Visit your application's domain name to view your WordPress install. The wp-admin
login details:
- Username: admin
- Password: nsgreoheare
It's strongly recommended you change the default wp-admin
login credentials.
To do
- Allow configuring and setting up multiple applications and domains
- Add backup support (Tarnsap? Duplicity to S3?)
- Use ansible facts for wp-config.php database and memcached addresses
Contributing
Pull requests and contributions more than welcome...
License
GPLv3, just like Ansible. Any other components and templates should be considered covered by their respective licenses.