5 ms·
Vagrant, Docker and Ansible. WTF?
- bryanlarsen 13y agoAs far as I can tell, Docker & Ansible don't work well together. If you provision your app using a Dockerfile, you get a bunch of cool stuff because it knows what's been applied and what isn't. If you provision your app using ansible, you get a bunch of cool provisioning features from ansible. I want both. It looks like you provision your app using ansible, meaning that you're missing out on a some cool Docker features. Our ansible scripts take over a minute to run even when it doesn't make any changes but one of the major reasons to use docker is because you can spin up an instance instantaneously.
- mpdehaan2 13y agodisclaimer: Ansible author here. You could consider using Ansible to do image builds to set up your containers. You should probably look into local mode. As for your speed questions, accelerate mode is 1.3 may be something you'd be interested in. I agree the article made that a little unclear as I would expect the docker file to be calling Ansible, but I may have gotten confused by the intent. Obviously one of the main reasons to use a config and app deployment system is when you can't just use throwaway instances and need to do upgrades. Not always a problem with web architecture but you've still got something to preserve on the database machines, so I think there's always going to be a need for automation even with image build systems -- if only to provide an easier way of preparing those images too :)
- balou 13y agoIndeed, hence the numerous cheats in the playbook to make things work together. Still need some digging to figure out the perfect workflow; Dockerfile that runs some git clone vs. add of local code vs. deploy via ansible - the ansible approach still provides the flexibility to have a customized container per dev that includes one custom set of ssh keys for example to fetch code from github or alike...
- bryanlarsen 13y agoOne thought I had was that you could get some of the benefits of both by using a large number or "ansible" commands in a Dockerfile rather than using a single ansible-playbook command to kick off the process. You'd most of the organization features that ansible gives (like roles etc), but you would get most of the docker features.
- anderssv 13y agoCool. I've done something similar for testing Puppet manifeste here: https://github.com/anderssv/puppet-docker https://github.com/anderssv/puppet-docker . Like Bryan points out I would love to construct something that utilises the features of Docker in production too, but right now it's just a awesome testing tool with minimal turn around.