UNPKG

@installdoc/ansible-gas-station

Version:

An Ansible playbook that provisions your network with software from GitHub Awesome lists, developed with disaster recovery in mind ⛽🔥🤤

74 lines (66 loc) 2.04 kB
--- - name: Ensure dependencies are installed pip: name: - jsondiff - pyyaml - docker state: present when: swarm_master is defined and swarm_master - name: Initialize Docker Swarm community.docker.docker_swarm: advertise_addr: "{{ warp_ip }}" state: present when: swarm_master is defined and swarm_master - name: Check if Docker Swarm Manager is configured community.docker.docker_swarm_info: ignore_errors: true register: swarm_info delegate_to: "{%- for host in hostvars -%} {%- if hostvars[host].swarm_master is defined and hostvars[host].swarm_master -%} {{host}}{%- endif -%}{%- endfor -%}" when: swarm_node is defined and swarm_node - name: Add nodes to the Swarm cluster community.docker.docker_swarm: state: join join_token: "{{ swarm_info.swarm_facts.JoinTokens.Worker }}" remote_addrs: [ "{{ warp_ip }}" ] when: swarm_node is defined and swarm_node - name: Ensure /srv/stacks directory exists become_user: root file: path: /srv/stacks mode: 0755 state: directory owner: "{{ ansible_user }}" when: swarm_master is defined and swarm_master - name: Ensure Stack files are copied copy: src: "templates/{{ stack.app_name }}.docker-stack.yml" dest: /srv/stacks mode: 0644 loop: "{{ docker_stacks }}" loop_control: label: "{{ stack.app_name }}" loop_var: stack when: swarm_master is defined and swarm_master - name: Ensure Secrets are created include_tasks: secrets.yml loop: "{{ docker_stacks }}" loop_control: label: "{{ stack.app_name }}" loop_var: stack when: - swarm_master is defined and swarm_master - stack.environment is defined - name: Ensure Stacks are deloyed community.docker.docker_stack: name: "{{ stack.app_name }}" state: present compose: - "/srv/stacks/{{ stack.app_name }}.docker-stack.yml" loop: "{{ docker_stacks }}" loop_control: label: "{{ stack.app_name }}" loop_var: stack when: swarm_master is defined and swarm_master