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

88 lines
1.8 KiB
YAML

---
- name: Update packages and ensure users on all hosts.
hosts: all
become: true
pre_tasks:
- name: Update Packages
ansible.builtin.apt:
upgrade: dist
update_cache: true
roles:
- role: setup_users
- name: Configure mergerfs pools.
hosts: mergerfs
become: true
roles:
- role: setup_mergerfs
tags: [mergerfs]
- name: Configure samba shares.
hosts: all
become: true
roles:
- role: geerlingguy.samba
tags: [samba]
- name: Configure samba shares.
hosts: samba
become: true
roles:
- role: setup_samba
tags: [samba]
- name: Samba Clients
hosts: sambaclients
become: true
pre_tasks:
- name: Include vault variables.
ansible.builtin.include_vars: '../{{ vault_file }}'
tags: [always]
tasks:
- name: Check mountpoint exists.
ansible.builtin.file:
path: "/mnt/mergerfs"
state: directory
mode: '0755'
owner: root
group: root
- name: Mount share.
tags: [samba]
mount:
state: "mounted"
fstype: "cifs"
path: /mnt/mergerfs
src: '//192.168.178.42/mergerfs'
- name: Install Docker on Docker hosts.
hosts: docker
become: true
roles:
- geerlingguy.pip
- geerlingguy.docker
- name: Install Portainer on Portainer host.
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: Setup and deploy 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]