Ansible playbook for automating personal servers
Go to file
2023-09-09 09:05:05 -04:00
group_vars roles/synapse: added 2023-09-07 21:47:16 -04:00
roles roles/synapse: fix mistakes 2023-09-09 09:05:05 -04:00
tasks moved hosts to yml format 2023-08-23 17:31:22 -04:00
.gitignore moved hosts to yml format 2023-08-23 17:31:22 -04:00
ansible.cfg initial commit: upload essentials from original playbook 2023-08-21 17:19:29 -04:00
inventory.example.yml fix minor issues 2023-08-26 22:02:29 -04:00
README.md roles/containers: also create archive dir 2023-09-04 20:09:48 -04:00
run.yml roles/synapse: added 2023-09-07 21:47:16 -04:00

installation steps

  • Install required packages:

    • sshpass
  • Copy inventory.example.yml to inventory.yml, modifying fields as adequate.

  • Look at group_vars/all/vars.yml, and set needed settings in host_vars/<hostname>/vars.yml.

  • Look at the following roles, and for each of them override their defaults/vars.yml in host or group vars:

    • networking/connection
    • networking/ddclient
    • networking/nameserver
    • caddy
    • containers
    • filesystems
    • firewall
    • syncthing
    • website
  • Create vault for secrets:

    ansible-vault create host_vars/[hostname]/vault.yml
    ansible-vault edit host_vars/[hostname]/vault.yml
    

    Copy-paste group_vars/all/secret_template.yml into this vault, and modify as needed.

  • Add secret files:

    # Keyfile for LUKS disk encryption
    dd if=/dev/random of=roles/filesystems/files/host1.secret bs=1024 count=2
    ansible-vault encrypt roles/filesystems/files/host1.secret
    # repeat the above for every host with encrypted external storage
    
  • Start avahi-daemon (install avahi if not installed):

    systemctl start avahi-daemon
    
  • Run the playbook:

    ansible-playbook run.yml --ask-vault-pass