env-ansible/local.yml
Hyperling c59e706c17
Add initial HUGO support, FreeBSD 13 support, and script for Ansible to hit dev branch. (#4)
* Create HUGO file.

* Add HUGO.

* Add script for running system against development branch.

* Add newline to end of file.

* Comment unused blocks.

* Add path of site that HUGO should host.

* Newlines, comments, and HUGO path. (#2) (#3)

* Create HUGO file.

* Add HUGO.

* Add script for running system against development branch.

* Add newline to end of file.

* Comment unused blocks.

* Add path of site that HUGO should host.

* FreeBSD is complaining about certbot not having dict object stdout. This whole playbook is supposed to be skipped though, lol.

* FreeBSD 13 is still mad. Ansible 2.11.2, jinja 2.11.2 (same version number??), Python 3.8.10.

* Fix root group to be existing variable. FreeBSD uses wheel.

* Allow choosing Github branch dynamically.

* `branch` needs to be at General level. Testing if this works...

* Change other `localhost` to `everything`.

* Update FreeBSD status.

* Goodbye, Code-OSS on Linux!

* Delete a terrible file.

* Remove excess tag.

* "Fix" SSHFS for FreeBSD.

* Variablize FreeBSD's loading of fusefs.

* Variablize /etc/rc.conf. Enable FuseFS more properly.

* Add beginning ticks.

* Add missing playbook.

* Enable FreeBSD mount job.

* Rearrange items to be more consistent with comment.

* It seems  FreeBSD removed the `gnome3` metapackage. Use `gnome3-lite` instead. Also add Telegram.

* Python is to 3.8 now.

* Expand on FreeBSD work.

* Expand on FreeBSD work.

* Add placeholders for Gitlab.

* Add parameter for Gitlab install.

* Add Gitlab playbook.

* Ensure FreeBSD uses the correct Python install.

* Add newline.

* Fix NFS for FreeBSD workstations.

* Remove unnecessary line, restricted install to Linux in playbook.

* Fix mount options for FreeBSD.

* Fix mount number, as well as system-specific facts.

* Add placeholders for remote viewing.

* Add RDP for FreeBSD.

* Omg! It works! Add setting enforcement.

* Always remove OSS.

* Remove hosts from explicit dev testing.
2021-07-19 07:07:03 -05:00

169 lines
4.5 KiB
YAML

---
# Harmonize my systems rather than doing everything manually. :)
# Setup of any device connected to this repo.
- name: Main | Default Setup
hosts: everything
connection: local
become: true
tasks:
- include: facts/general/system.yml
- include: facts/general/package.yml
- include: facts/general/service.yml
- include: facts/general/user.yml
- include: tasks/general/start.yml
- include: tasks/general/software/packages.yml
- include: tasks/general/software/services.yml
ignore_errors: yes
- include: facts/general/gather.yml
- include: tasks/general/acct_mgmt/groups.yml
- include: tasks/general/acct_mgmt/users.yml
- include: tasks/general/acct_mgmt/sudo.yml
- include: tasks/general/acct_mgmt/keys.yml
- include: tasks/general/acct_mgmt/mounts.yml
- include: tasks/general/scripts/root.yml
- include: tasks/general/cron/ansible.yml
- include: tasks/general/cron/root.yml
# TODO Need to refactor. Maybe tasks/general/cron/freebsd.yml
- include: tasks/workstation/freebsd/cron/ansible.yml
when: ansible_system == "FreeBSD"
# Additional setup for systems with GUI.
- name: Main | Workstation UI Setup
hosts: workstation
connection: local
become: true
tasks:
- include: facts/general/system.yml
- include: facts/workstation/package.yml
# Set up any systems that do not come with Desktop Environments
- include: tasks/workstation/freebsd/software/gui.yml
when: ansible_system == "FreeBSD"
- include: tasks/workstation/linux/software/gnome.yml
when: ansible_system == "Linux"
- include: tasks/workstation/settings/gnome.yml
# Additional tasks to configure systems with Desktop Environments
- include: tasks/workstation/linux/software/flatpaks.yml
when: ansible_system == "Linux" and flatpak_distro
- include: tasks/workstation/linux/software/debs.yml
when: ansible_pkg_mgr == "apt"
- include: tasks/workstation/linux/software/brave.yml
when: ansible_pkg_mgr == "apt"
- include: tasks/workstation/linux/cron/ansible.yml
when: ansible_system == "Linux"
- include: tasks/workstation/settings/nfs.yml
- include: tasks/workstation/settings/rdp.yml
when: rdp is defined
- include: tasks/workstation/settings/vnc.yml
when: vnc is defined
# Additional setup for miners!
- name: Main | Miner Setup
hosts: miner
connection: local
become: true
tasks:
##### Setup #####
- include: tasks/miner/debug.yml
- include: facts/miner/gather.yml
- include: tasks/miner/acct_mgmt/users.yml
- include: facts/miner/system.yml
- include: facts/miner/config.yml
- include: facts/miner/pool.yml
##### Installations #####
### CPU SECTION ###
# Monero #
- include: tasks/miner/software/xmr-stak-cpu.yml
when: xmr_stak_cpu is defined
### GPU Section ###
## Drivers ##
- include: tasks/miner/drivers/amdgpu.yml
when: ansible_distribution == "Ubuntu" and amdgpu is defined
# Ethereum #
- include: tasks/miner/software/ethminer.yml
when: ethminer is defined
- include: tasks/miner/software/nanominer.yml
when: nanominer is defined
##### Scheduling #####
- include: tasks/miner/cron/ansible.yml
- include: tasks/miner/cron/mfn.yml
# Easy to deploy server configurations.
- name: Main | Server Setup
hosts: server
connection: local
become: true
tasks:
- include: tasks/server/software/onlyoffice.yml
when: onlyoffice is defined and ansible_pkg_mgr == "apt"
- include: tasks/server/software/influxdb1.yml
when: influxdb1 is defined and ansible_pkg_mgr == "apt"
- include: tasks/server/software/influxdb2.yml
when: influxdb2 is defined and ansible_pkg_mgr == "apt"
- include: tasks/server/software/grafana.yml
when: grafana is defined and ansible_pkg_mgr == "apt"
- include: tasks/server/software/certbot.yml
when: certbot is defined
- include: tasks/server/cron/certbot.yml
when: certbot is defined
- include: tasks/server/software/hugo.yml
when: hugo is defined
- include: tasks/server/software/gitlab.yml
when: gitlab is defined
# Provide information for analysis.
- name: Main | Reporting
hosts: everything
connection: local
become: true
tasks:
- include: tasks/general/software/telegraf.yml
- include: tasks/general/tests/nmap.yml
- include: tasks/general/tests/lynis.yml
- include: tasks/general/finish.yml