ansible-role-docker-swarm/tasks/portainer.yml

35 lines
1.2 KiB
YAML

---
- name: Manage the installation of portainer as a stack
block:
- name: Create a directory for the portainer stack
file: dest=/srv/portainer state=directory mode='0755'
- name: Install the portainer docker stack configuration
template: src=portainer-agent-stack.yml.j2 dest=/srv/portainer/portainer-agent-stack.yml owner=root group=root mode='0444'
- name: Run the docker stack to start portainer
docker_stack:
state: present
name: portainer
compose:
- /srv/portainer/portainer-agent-stack.yml
run_once: True
- name: Create the overlay network that will be used by portainer
docker_network:
name: '{{ docker_swarm_portainer_network }}'
driver: overlay
scope: swarm
- name: Connect the portainer service to its network
shell: docker service update --network-add {{ docker_swarm_portainer_network }} {{ item }} --update-delay 30s --update-parallelism 1 && touch /srv/portainer/.network_{{ item }}
with_items:
- 'portainer_portainer'
- 'portainer_agent'
args:
creates: '/srv/portainer/.network_{{ item }}'
ignore_errors: True
when: docker_swarm_manager_main_node | bool
tags: [ 'portainer', 'docker_portainer', 'docker_swarm', 'docker' ]