--- - 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' ]