So I think everyone and their mother has fallen in love with Ansible – I know I have! Mostly because I’m not really a fan of Ruby and Ansible is just so simple and basic to operate – ssh only required.
I’ve got a bunch of Ansible roles defined: apache-php5, nginx-fpm, nginx-hhvm, etc. It’s nice to be able to spin up a server and test things out. Here’s a quick little script I use to execute roles against a server not listed in /etc/ansible/hosts file:
#!/bin/bash if [ -z $2 ]; then echo "$0 [www.domain.com] [role]" exit 1 fi ansible-playbook $2.yml -i "$1," --extra-vars "fqdn=$1"
The trick is the “$1,” which allows you to define the host on the fly instead of having to define it in the ‘hosts’ file.
All my roles use the ‘aws‘ module to spin up a new EC2 instance, create a new DNS A record, and configure the new host to the specified role as the referenced FQDN.