You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible-homelab/playbooks/setup-homelab.yml

86 lines
1.9 KiB
YAML

---
- name: Update packages and ensure users on all hosts.
hosts: all
become: true
gather_facts: false
strategy: free
roles:
- role: setup_users
- 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 on Docker hosts.
hosts: docker
become: true
strategy: free
roles:
- role: geerlingguy.pip
- role: geerlingguy.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]
vars:
portainer_version: "2.18.3"
- 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]