ansible / ansible-container
- воскресенье, 5 июня 2016 г. в 03:12:44
Python
Ansible Container is a tool to build Docker images and orchestrate containers using only Ansible playbooks.
Ansible Container is a tool to build Docker images and orchestrate containers using only Ansible playbooks. It does this by building a container from which to execute Ansible and connects to your other containers via the Docker engine instead of SSH.
And when you're ready to deploy to the cloud, use Ansible Container's shipit command to generate an Ansible Role that deploys your application. The role is generated from your project's docker-compose file, leveraging the time and work already invested in Docker compose.
Dockerfile
is not much more than a script with hand-crafted shell commands.
We're well past the point where we should be managing build processes
with manually maintained series of shell scripts. That's why we wrote Ansible
in the first place, and this is just as applicable to containers.docker build
does not. For example, in a Django project, your VCS may contain
a bunch of sources for static assets that need to be compiled and then
collected. With Ansible Container, you can compile the static assets in your Django
container and then collect them into your static file serving container.sudo pip install docker-compose
- Ansible Container relies upon the docker-compose
library.
sudo python setup.py install
Run ansible-container init
in the root directory of your project. This will create
a directory ansible
with files to get you started. Read the comments and
edit to suit your needs.
ansible-container build
- This will make your Ansible Container builder and
use Ansible to build the images for your other containers. By the end of this
run, you will have flattened, tagged images in your local Docker engine.
ansible-container run
- This will orchestrate running your images as described
in your container.yml
file, using the Ansible-Container-built images instead of
the base images.
ansible-container push
- This will push your Ansible-Container-built images to a
registry of your choice.
When you're ready to deploy to the cloud:
ansible-container shipit
- This will read your docker-container.yml file and create an Ansible
role for deploying your project to OpenShift. Additional cloud providers
are under development, including: Google Container Engine and Amazon EC2 Container Service.Feel free to see the test
or test-v1
projects as an examples.