--- - name: Update packages and ensure users on all hosts. hosts: all become: true gather_facts: false strategy: free roles: - role: setup_users - name: Install go on all hosts. hosts: all become: true strategy: free roles: - role: gantsign.golang golang_version: '1.21.1' golang_gopath: '$HOME/workspace-go' - name: Configure mergerfs pools. hosts: mergerfs strategy: free become: true roles: - role: setup_mergerfs tags: [mergerfs] - name: Configure samba shares. hosts: all strategy: free become: true roles: - role: geerlingguy.samba tags: [samba] - name: Install docker hosts: docker become: true strategy: free roles: - role: setup_docker tags: [docker] - name: Install Portainer on Portainer hosts. gather_facts: false hosts: portainer become: true pre_tasks: - name: Include vault variables. ansible.builtin.include_vars: '../{{ vault_file }}' tags: [always] roles: - role: setup_portainer tags: [services, portainer] - name: Install Portainer agent on Portainer agent hosts. gather_facts: false hosts: portainer_agent become: true roles: - role: setup_portainer_agent tags: [services, portainer_agent] - name: Setup and deploy compose services. hosts: dell become: true pre_tasks: - name: Include vault variables. ansible.builtin.include_vars: '../{{ vault_file }}' tags: [always] roles: - role: setup_compose_services tags: [compose] - name: Setup and deploy portainer services. gather_facts: false hosts: servers become: true strategy: free tags: [services] pre_tasks: - name: Include vault variables. ansible.builtin.include_vars: '../{{ vault_file }}' tags: [always] tasks: - name: Setup and deploy portainer services. include_role: name: "{{ item.role }}" with_items: "{{ portainer_roles }}" - name: Setup and deploy templated portainer services. hosts: servers become: true pre_tasks: - name: Include vault variables. ansible.builtin.include_vars: '../{{ vault_file }}' tags: [always] roles: - role: setup_hosted_services tags: [services]