This isn't an exact answer to your question, but hopefully it can
provide you with some ideas.
We're using Jenkins[*] as a front-end to ansible. Playbooks are
wrapped in Jenkins jobs, which allow us to schedule and remotely
trigger the playbooks, or have them run automatically on VCS
commits, or in response to some other job, like a successful
software build. Using Jenkins also allows us to capture run times,
do fancy trending and reporting, trigger other tasks based on the
results of a playbook run, and do all the other approximately 5
billion things for which Jenkins plugins exist. (Seriously, Jenkins
is pretty much the best thing ever.) Finally, ansible compliments
Jenkins nicely, because it allows us to trivially do things like
distribute build artifacts to mutliple clusters of app servers
simultaneously.
(Incidentally, I'm also using Jenkins to control our puppet
infrastructure; the pupetmaster setup that puppetlabs recommends is,
frankly, absurd, but we have too much invested in puppet manifests
and modules to throw it away. Our nodes are managed via multiple
geograpically-distributed Jenkins slaves, controlled by a single
master, which communicate over ssh, much like ansible. Honestly, if
ansible existed when I started designing this infrastructure, I'd
likely be triggering puppet runs from playbooks, via jenkins!)
[*]:
http://jenkins-ci.org/
* Trevor Squillario <tsquillario at
gmail.com> [2012/08/31 12:58]:
> I'm coming from a Puppet mindset where nodes checkin and actions
> are performed if they are out of spec. With ansible you execute
> playbooks using the ansible-playbook command, I understand that
> much.
>
> Say you have many playbooks for various purposes (ntp, sshd,
> nginx, etc.) how do you automate the execution of those playbooks.
> Do you have to run each one manually after it's modified? I do
> realize they are idempotent and can be run multiple times. I just
> thought maybe there was a better way to automate this process. Is
> the Pull-Mode the best way to achieve this?
--
Darren Chamberlain <
dar...@boston.com>