--- # Harmonize systems rather than doing everything manually. :) # Setup of any device connected to this repo. - name: Main | Default Setup hosts: localhost connection: local become: true tasks: ####### Header ####### - name: Main | Header ansible.builtin.include_tasks: tasks/header.yml ####### Workstations ####### # Additional setup for systems with GUI. - name: Main | Workstation Setup block: - ansible.builtin.include_tasks: facts/workstation/package.yml ## Desktop Environments ## - ansible.builtin.include_tasks: tasks/workstation/freebsd/software/gpu.yml when: ansible_system == "FreeBSD" and bsd_gpu and internet # Window Managers without true Desktop Environments # - ansible.builtin.include_tasks: tasks/workstation/shared/software/dwm.yml when: internet - ansible.builtin.include_tasks: tasks/workstation/shared/software/i3.yml when: internet # Polished Desktop Environments # - ansible.builtin.include_tasks: tasks/workstation/freebsd/software/gnome.yml when: ansible_system == "FreeBSD" and internet - name: Main | Workstation | Fancy Desktop Environments block: - ansible.builtin.include_tasks: tasks/workstation/linux/software/gnome.yml when: ansible_service_mgr == "systemd" - ansible.builtin.include_tasks: tasks/workstation/linux/software/cinnamon.yml - ansible.builtin.include_tasks: tasks/workstation/linux/software/lxqt.yml when: ansible_system == "Linux" and internet # TBD: Implement this: and extra_desktops ## Software Tasks ## - name: Main | Workstation Setup | Linux block: - ansible.builtin.include_tasks: tasks/workstation/linux/software/packages.yml - ansible.builtin.include_tasks: tasks/workstation/linux/software/tlp.yml - ansible.builtin.include_tasks: tasks/workstation/linux/software/lutris.yml - ansible.builtin.include_tasks: tasks/workstation/linux/software/vscodium.yml - ansible.builtin.include_tasks: tasks/workstation/linux/software/vpn.yml - ansible.builtin.include_tasks: tasks/workstation/linux/software/nodejs.yml - ansible.builtin.include_tasks: tasks/workstation/linux/software/hugo.yml - ansible.builtin.include_tasks: tasks/workstation/linux/software/brave.yml when: ansible_pkg_mgr in ("apt", "dnf", "zypper") and not mobile when: ansible_system == "Linux" and internet - ansible.builtin.include_tasks: tasks/workstation/freebsd/software/packages.yml when: ansible_system == "FreeBSD" and internet - ansible.builtin.include_tasks: tasks/workstation/mac-os/software/brew.yml when: ansible_system == "Darwin" and internet ## Configuration Tasks ## - name: Main | Workstation Setup | Configuration block: - ansible.builtin.include_tasks: tasks/workstation/shared/settings/gnome.yml - ansible.builtin.include_tasks: tasks/workstation/shared/settings/cinnamon.yml - ansible.builtin.include_tasks: tasks/workstation/shared/settings/xdg_autostart.yml - ansible.builtin.include_tasks: tasks/workstation/linux/cron/ansible.yml when: ansible_system == "Linux" when: not mobile - ansible.builtin.include_tasks: tasks/workstation/shared/settings/nfs.yml - ansible.builtin.include_tasks: tasks/workstation/shared/settings/rdp.yml when: rdp - ansible.builtin.include_tasks: tasks/workstation/shared/settings/vnc.yml when: vnc - ansible.builtin.include_tasks: tasks/workstation/shared/settings/services.yml - ansible.builtin.include_tasks: tasks/workstation/shared/settings/templates.yml ## Final Tasks (SLOW) ## - name: Main | Workstation Setup | Linux [Slow] block: - ansible.builtin.include_tasks: tasks/workstation/linux/software/flatpaks.yml when: flatpak_distro - ansible.builtin.include_tasks: tasks/workstation/linux/software/java.yml - ansible.builtin.include_tasks: tasks/workstation/linux/software/flutter.yml - ansible.builtin.include_tasks: tasks/workstation/linux/software/android.yml - ansible.builtin.include_tasks: tasks/workstation/linux/software/llm.yml when: ansible_system == "Linux" and internet when: workstation # No longer mining, this is now considered deprecated. # ####### Miners ####### # # # Additional setup for miners. # - name: Main | Miner Setup # block: # # ##### Setup ##### # - ansible.builtin.include_tasks: tasks/miner/debug.yml # # - ansible.builtin.include_tasks: tasks/miner/acct_mgmt/users.yml # # - ansible.builtin.include_tasks: facts/miner/system.yml # - ansible.builtin.include_tasks: facts/miner/config.yml # - ansible.builtin.include_tasks: facts/miner/pool.yml # # ##### Installations ##### # ### CPU SECTION ### # # Monero # # - ansible.builtin.include_tasks: tasks/miner/software/xmr-stak-cpu.yml # when: xmr_stak_cpu is defined # # ### GPU Section ### # ## Drivers ## # - ansible.builtin.include_tasks: tasks/miner/drivers/amdgpu.yml # when: ansible_distribution == "Ubuntu" and amdgpu # # # Ethereum # # - ansible.builtin.include_tasks: tasks/miner/software/ethminer.yml # when: ethminer # # - ansible.builtin.include_tasks: tasks/miner/software/nanominer.yml # when: nanominer # # ##### Scheduling ##### # - ansible.builtin.include_tasks: tasks/miner/cron/ansible.yml # - ansible.builtin.include_tasks: tasks/miner/cron/mfn.yml # # when: miner ####### Servers ####### # Easy to deploy server configurations. - name: Main | Server Setup block: - name: Main | Server Setup | Services ansible.builtin.include_tasks: tasks/server/software/services.yml - block: - name: Main | Server Setup | Certbot ansible.builtin.include_tasks: tasks/server/software/certbot.yml - name: Main | Server Setup | Certbot Cron ansible.builtin.include_tasks: tasks/server/cron/certbot.yml when: certbot - block: - name: Main | Server Setup | OnlyOffice ansible.builtin.include_tasks: tasks/server/software/onlyoffice.yml when: onlyoffice - ansible.builtin.include_tasks: tasks/server/software/influxdb1.yml when: influxdb1 - ansible.builtin.include_tasks: tasks/server/software/influxdb2.yml when: influxdb2 - ansible.builtin.include_tasks: tasks/server/software/grafana.yml when: grafana when: ansible_pkg_mgr == "apt" - ansible.builtin.include_tasks: tasks/server/software/hugo.yml when: hugo when: server ####### Reporting ####### # Provide information for analysis. - name: Main | Reporting block: - ansible.builtin.include_tasks: tasks/general/software/telegraf.yml when: internet - ansible.builtin.include_tasks: tasks/general/tests/services.yml - ansible.builtin.include_tasks: tasks/general/tests/lynis.yml - ansible.builtin.include_tasks: tasks/general/tests/nmap.yml ####### Footer ####### - name: Main | Footer ansible.builtin.include_tasks: tasks/footer.yml