Files
env-ansible/local.yml
T

238 lines
7.5 KiB
YAML

---
# Harmonize systems rather than doing everything manually. :)
# Setup of any device connected to this repo.
- name: Local | Main
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
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 | 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 | 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 | 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
# 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
block:
- name: Main | Server | Services
ansible.builtin.include_tasks: tasks/server/software/services.yml
- block:
- name: Main | Server | Certbot
ansible.builtin.include_tasks: tasks/server/software/certbot.yml
- name: Main | Server | Certbot Cron
ansible.builtin.include_tasks: tasks/server/cron/certbot.yml
when: certbot
- block:
- name: Main | Server | 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