Playbooks
Roles
Tasks
Modules
FROM ansible/ubuntu14.04-ansible:stable
RUN mkdir /srv/example
WORKDIR /srv/example
ADD site.yml /srv/example/
RUN ansible-galaxy install geerlingguy.memcached
RUN ansible-playbook site.yml -c local
EXPOSE 11211
# And then start up our service
ENTRYPOINT ["/usr/bin/memcached", "-u", "memcache", ...]
- name: sync app code
synchronize: src={{ playbook_dir }}/../
dest={{ app_path_server }}
recursive=yes
- name: add docker directory
file: path={{ app_path_server }}/docker state=directory
- name: add docker run scripts
template: src={{ item }}.sh.j2 dest={{ app_path_server }}/docker/{{ item }}.sh
with_items:
- functions
- prepare
- run
- name: add dockerfile
template: src=Dockerfile.j2 dest={{ app_path_server }}/docker/Dockerfile
- name: add docker-compose setup
template: src=docker-compose.yml.j2 dest={{ app_path_server }}/docker-compose.yml
- name: build the service via docker-compose
docker_service:
project_src: "{{ app_path_server }}"
$ ansible-container init
$ ansible-container install
$ ansible-container build
$ ansible-container run
$ ansible-container push
$ ansible-container shipit
No solo automatiza la construcción de imágenes, sino que también gestiona todo el ciclo de vida de las aplicaciones.
ShipIt soporta actualmente Kubernetes y OpenShift