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 14.04 Trusty LTS.
I’ve got a local dev setup with bedrock-ansible (Win 7 host for 14.04 Trusty LTS 32bit) and it is quite nice. I’m wondering if you can share a bit more on suggestion to use it for production servers for those new to the playbook world.
The two questions that come to mind specifically at the moment:
- Production would not have / use vagrant - What more steps req’d other than manual playbook execution?
- If base OS is Cent OS or another version of linux, how much difference does that make to the EMP in LEMP?
Ansible at its most basic is just this:
ansible-playbook -i site.yml hosts
Which just means “run the site.yml playbook on the hosts file”. And a hosts file is pretty simple. You can see examples here: http://docs.ansible.com/intro_inventory.html
When using Vagrant with Ansible, it automatically creates a
hosts file so you never really see that. So back to question #1:
- You can just create a
hosts file with your production hostname/ip in there.
group_vars/all will apply to all hosts as its name suggests. So you may want to rename that to
group_vars/dev and make a new
group_vars/prod with your production sites. Then your
hosts file would look like:
And you would run
ansible-playbook -i site.yml hosts as usual. You can always make a new playbook based on
site.yml if you want to change what roles are run as well. Little more info here as well: Bedrock Vagrant/Ansible released
- Using this playbook on CentOS would require a lot more changes as it’s all set up to use
apt and Ubuntu ppa’s.
I’m running into some difficulties running Bedrock-ansible on my production server. I’m getting this error:
TASK: [wordpress-sites | Create database of sites] ****************************
<220.127.116.11> ESTABLISH CONNECTION FOR USER: me
fatal: [default] => One or more undefined variables: 'str object' has no attribute 'env'
FATAL: all hosts have already failed -- aborting
Unfortunately, I’m so unfamiliar with all of this that I don’t even know where to look. Thoughts?
Can’t really do much to debug without your files like
group_vars. Seems like you’ve defined something wrong since it can’t find
env which should be an attribute on
I misnamed my
group_vars file. The name has to match the
hosts variable in
RE: CentOS / RHEL:
Seems like a good alternative path that I’m beginning to explore.