35 lines
1.2 KiB
YAML
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' ]
|