5. In March 2014…
www.bipsync.com
• Ad hoc local development in OS X
• Hand-built production systems in AWS
• Various installation notes kept in wiki
6. And now…
www.bipsync.com
• Local development in Vagrant VMs
• Virtual Machines provisioned by Ansible playbooks
• Production systems provisioned by playbooks
• Ansible playbooks are living documentation
13. Provisioning in EC2
www.bipsync.com
1. Define an Ansible playbook
2. Create an instance from an Amazon Machine Image
(AMI) within a given subnet
3. Store relevant outcomes as facts - allows us to refer
to them later in the playbook
4. Wait until SSH is available, perform additional
provisioning
15. Taking it further
www.bipsync.com
1. Master playbook includes playbooks sequentially
2. Facts are maintained from one playbook to the next
3. Once all resources are available, configuration
playbooks use facts to connect them together
18. Provisioning PHP
www.bipsync.com
• Bipsync’s OS of choice is Ubuntu
• We use semi-official packages from https://
launchpad.net/~ondrej/+archive/ubuntu/php5
• Installation (PHP-FPM, PECL, config) is pretty
straightforward…
• But not totally straightforward
20. What else do we do?
www.bipsync.com
• Install and configure Supervisor for long running tasks
• Cron jobs
• Upgrades
• Migrations
• Continuous integration
21. Why is this cool?
www.bipsync.com
1. Lowers risk
2. Breaks down barriers
3. Enhances scalability
4. Fits the programmer’s mindset
5. Lots of scrolling text on your terminal
22. Words of warning
www.bipsync.com
• Beware Ansible bugs - turn on termination protection
• Provisioning can take time - make use of AMIs
• Costs can escalate quickly - look at Eucalyptus
• It’s not programming, it’s scripting
23. Further Reading
www.bipsync.com
• Ansible Up and Running (Loren Hochstein) -
Free preview at http://www.ansible.com/ansible-book
• Vagrant Cookbook (Erika Heidi)
• https://groups.google.com/forum/#!forum/ansible-
project