--- - hosts: all handlers: - import_tasks: global_handlers/global_handlers.yml connection: local vars_files: - "os_vars/{{ ansible_distribution | lower }}.yml" become: true pre_tasks: - name: pre-run | update apt repository (debian, ubuntu, etc.) apt: update_cache=yes changed_when: false when: ansible_distribution in ["Debian", "Ubuntu"] - name: pre-run | upgrade system (debian, ubuntu, etc.) apt: upgrade=dist changed_when: false when: ansible_distribution in ["Debian", "Ubuntu"] - name: pre-run | update pacman repository (arch) pacman: update_cache=yes changed_when: false when: ansible_distribution == 'Archlinux' - name: pre-run |update portage repository (gentoo) portage: sync: yes when: ansible_distribution == 'Gentoo' # run roles - hosts: all tags: base become: true roles: - base # - hosts: workstation # tags: workstation # become: true # roles: # - workstation - hosts: servers tags: servers become: true roles: - servers - hosts: nameservers tags: servers,nameservers become: true roles: - nameservers - hosts: webservers tags: servers,webservers become: true roles: - webservers # - hosts: mailservers # tags: servers,mailservers # become: true # roles: # - mailservers - hosts: databases tags: servers,databases become: true roles: - databases # - hosts: dhcpservers # tags: servers,dhcpservers # become: true # roles: # - dhcpservers - hosts: docker tags: servers,docker become: true roles: - docker # - hosts: fileservers # tags: servers,fileservers # become: true # roles: # - fileserver - hosts: mastodon tags: servers,mastodon become: true roles: - mastodon # - hosts: printspoolers # tags: servers,printspoolers # become: true # roles: # - printspooler - hosts: jitsimeet tags: servers,jitsimeet,webservers become: true roles: - jitsimeet # - hosts: proxyservers # tags: servers,proxyservers # become: true # roles: # - proxyservers # end of roles; cleanup and reporting - hosts: all become: true tasks: - name: cleanup package cache (debian and ubuntu) tags: always apt: autoclean: yes changed_when: false when: ansible_distribution in ["Debian", "Pop!_OS", "Ubuntu"] - name: autoremove orphan packages (debian and ubuntu) tags: always apt: autoremove: yes purge: yes when: ansible_distribution in ["Debian", "Pop!_OS", "Ubuntu"] # - name: send completion alert # include_tasks: playbooks/send_completion_alert.yml # tags: always # when: # - task_failed is not defined # - name: send failure alert # include_tasks: playbooks/send_failure_alert.yml # tags: always # when: # - task_failed is defined # - task_failed == true # vim: ts=2 sw=2 fdm=indent