Hello, I've done a lot of demos of this sort of thing using Ansible Tower's 'callbacks' feature. A playbook is exposed as a URL - embed a call to that URL[1] in user-data when spinning up an instance, and you have a 'phone home' solution that keeps the beauty of the push model.
--Mark [1] Here's an example of that exact user-data https://github.com/phips/tiad_demo/blob/master/scripts/ec2_bootstrap.sh ** Full disclosure and all that - I work for Ansible. On Thursday, 23 April 2015 04:12:34 UTC+1, [email protected] wrote: > > Hi all, > > So I've been thinking about how to best use Ansible in an autoscaling > environment on AWS, and I was wondering if anyone else had dealt with this, > and if they had any advice. > > My thought is to essentially do some kind of push/pull hybrid. Something > like: > > > - When a new instance comes online, have it pull an artifact (gz file, > zip, etc.) from a known place on S3 - something like > s3://bucket/latest.tar.gz. Unzip it into a known location, and run > whatever > commands to get it online. > - When we're pushing a new version of the code out, update the latest > artifact on the bucket, and from a central server, use the AWS module to > find all instances with the same Name, and issue a command to force them > to > grab the latest copy and install. > - The code would have some kind of playbook embedded in it, so after > the latest copy is pulled down, that playbook just gets run. > > In this way, we're not refreshing the code every *n* minutes via cron, > and things stay more steady; the instances only update when they have to. I > suppose another alternative is to have the instances access a Git > repository and pull down the code from there, but then you have to deal > with private repos. > > Has anyone done anything like this? > -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/9b0be6e6-ff17-41fb-81f6-95bfc7b38df6%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
