Hyperling
8e4247fd58
* Add Brave to Fedora (DNF). * First attempt to add metasploit installer. * Fix check for Linux and macOS to use System, not Distro. * Add more memorable aliases for msfconsole. * Telegraf is attemping to install doube-time since hosts match both localhost and hostname. * Add missing pipe. * Attempt to fix flatpak play no longer being able to find user_ling var. Don't see anything in the dev branch which would have changed this behavior though. * Add note for future removal. * Use general gather for all groups. Move user variables to it. * Feodra Workstation succeeds now! Add newline to end of file. * First attempt at doing host variables via local files. * Try using ini as lookup. * Remove "-" typo. * Add an initial gather even though it may not have all values properly populated on a machine's first run. * Fix typo in ignore. * Try default values. * Try defaults without quotes. * Add a section header. Add a default back. * Rename section to global. * Add workstation provision file. Change variables to require true. Only load config file if hosts is not being used. * Put flags back on Dell so that programs are not removed while configuring files. * Add provision config read to workstation. * Go ahead and force config files for hosts. Only affects dev branch until PR. Start making miner and server files. * Change {{}} to (()) in comments to avoid undefined variable error. * Attempt to modify existing task groups instead of moving all tasks to one large group. * Try to use blocks. * Name blocks and remove redundant calls. * Do the bare minimum for miner and server so the variables are at least defined. * Ensure Server and Miner look at their own files. * Test how block variables are handled. * Are the variables true Booleans, not strings?? * Change exits to tests so we can see which ones work. * Add more tests. * Add the test results. * Add config_dir for plays to use when making any config files. * Move provision config dir. * Add results of test. * Remove the exit. Fix the blocks' whens. * Do provision after starting, that way all facts exist. * Fix all "true"'s. * Adjust variable checks for provision_config changes. * Change gui to wrk. Add aliases to cat files. * Comment entire hosts file. * Add localhost, * Try localhost rather than host file group. * Fix typo in "prov_dir". * Add newline to end of file. * Add newline to end of file. * Add newline to end of file. * Debug variable. Should be getting set but receiving errors on Fedora. * Add newline to end of file. * Fix debug property, var not name. * Fix show-config. Change show-config-all to only hit active files, not backups. * Uncomment commented workstation. * Add commands to edit files. * Attempt to fix gitlab installer variables. * Attempt to fix gitlab play variable. * Replacing `ling` for `{{ user }}`. * Remove TODO. * Remove `config_dir` and move provision config back near top. * `user_root` is not needed, already moved to /usr/local/etc/. * Add value for running anything at all. This allows user to set up files before first run. * Reduce the check frequency, * Ensure files are printed in correct order. Also add a newline between each. * Only send file if it exists, and then remove it if it sends successfully. * Always set the destination variables. * Only run the scp for systems without sshfs. Forgot that system variables were shared between the two, and do not want to scp the files to themselves then delete the files from the mount.
244 lines
6.9 KiB
YAML
244 lines
6.9 KiB
YAML
---
|
|
# 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:
|
|
- include: facts/general/gather.yml
|
|
- include: tasks/general/acct_mgmt/provision_config.yml
|
|
|
|
- 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: tasks/general/software/sendmail.yml
|
|
ignore_errors: yes
|
|
when: ansible_system == "FreeBSD"
|
|
|
|
- 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/scripts/user.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"
|
|
|
|
- include: tasks/general/software/metasploit.yml
|
|
when: pentesting == true
|
|
|
|
|
|
- name: FORTESTING | Outside Block | Output Block Variables
|
|
debug:
|
|
var: "{{ item }}"
|
|
loop:
|
|
- workstation
|
|
- miner
|
|
- server
|
|
|
|
- name: FORTESTING | Block
|
|
block:
|
|
|
|
- name: FORTESTING | Inside Block | Output Block Variables
|
|
debug:
|
|
var: "{{ item }}"
|
|
loop:
|
|
- workstation
|
|
- miner
|
|
- server
|
|
|
|
- name: FORTESTING | Inside Block | W Test 1 # Did not run on true. :(
|
|
shell: echo "test"
|
|
when: workstation == "true"
|
|
|
|
- name: FORTESTING | Inside Block | W Test 2 # Did run on true! :)
|
|
shell: echo "test"
|
|
when: workstation == true
|
|
|
|
- name: FORTESTING | Inside Block | W Test 3 # Did run on true! :)
|
|
shell: echo "test"
|
|
when: workstation
|
|
|
|
- name: FORTESTING | Inside Block | M Test 1 # Skipped on false. :)
|
|
shell: echo "test"
|
|
when: miner == "true"
|
|
|
|
- name: FORTESTING | Inside Block | M Test 2 # Skipped on false. :)
|
|
shell: echo "test"
|
|
when: miner == true
|
|
|
|
- name: FORTESTING | Inside Block | M Test 3 # Skipped on false. :)
|
|
shell: echo "test"
|
|
when: miner
|
|
|
|
- name: FORTESTING | Inside Block | S Test 1 # Skipped on yolo. :)
|
|
shell: echo "test"
|
|
when: server == "true"
|
|
|
|
- name: FORTESTING | Inside Block | S Test 2 # Skipped on yolo. :)
|
|
shell: echo "test"
|
|
when: server == true
|
|
|
|
- name: FORTESTING | Inside Block | S Test 3 # Ran on yolo. :(
|
|
shell: echo "test"
|
|
when: server
|
|
|
|
|
|
|
|
####### Workstations #######
|
|
# Additional setup for systems with GUI.
|
|
- name: Main | Workstation Setup
|
|
block:
|
|
|
|
- include: facts/general/system.yml
|
|
- include: facts/workstation/package.yml
|
|
- include: facts/general/service.yml
|
|
|
|
# Set Up 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/linux/software/dwm.yml
|
|
when: ansible_system in ("Linux", "FreeBSD")
|
|
ignore_errors: yes
|
|
|
|
# Software Tasks #
|
|
- 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 in ("apt", "dnf")
|
|
|
|
- include: tasks/workstation/mac-os/software/brew.yml
|
|
when: ansible_system == "Darwin"
|
|
|
|
- include: tasks/workstation/mac-os/software/dmg.yml
|
|
when: ansible_system == "Darwin"
|
|
|
|
# Configuration Tasks #
|
|
- include: tasks/workstation/settings/gnome.yml
|
|
|
|
- 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 == true
|
|
- include: tasks/workstation/settings/vnc.yml
|
|
when: vnc == true
|
|
|
|
- include: tasks/workstation/settings/services.yml
|
|
ignore_errors: yes
|
|
|
|
when: workstation == true
|
|
|
|
|
|
|
|
####### Miners #######
|
|
# Additional setup for miners.
|
|
- name: Main | Miner Setup
|
|
block:
|
|
|
|
##### Setup #####
|
|
- include: tasks/miner/debug.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 == true
|
|
|
|
# Ethereum #
|
|
- include: tasks/miner/software/ethminer.yml
|
|
when: ethminer == true
|
|
|
|
- include: tasks/miner/software/nanominer.yml
|
|
when: nanominer == true
|
|
|
|
##### Scheduling #####
|
|
- include: tasks/miner/cron/ansible.yml
|
|
- include: tasks/miner/cron/mfn.yml
|
|
|
|
when: miner == true
|
|
|
|
|
|
|
|
####### Servers #######
|
|
# Easy to deploy server configurations.
|
|
- name: Main | Server Setup
|
|
block:
|
|
|
|
- include: tasks/server/software/onlyoffice.yml
|
|
when: onlyoffice == true and ansible_pkg_mgr == "apt"
|
|
|
|
- include: tasks/server/software/influxdb1.yml
|
|
when: influxdb1 == true and ansible_pkg_mgr == "apt"
|
|
|
|
- include: tasks/server/software/influxdb2.yml
|
|
when: influxdb2 == true and ansible_pkg_mgr == "apt"
|
|
|
|
- include: tasks/server/software/grafana.yml
|
|
when: grafana == true and ansible_pkg_mgr == "apt"
|
|
|
|
- include: tasks/server/software/certbot.yml
|
|
when: certbot == true
|
|
- include: tasks/server/cron/certbot.yml
|
|
when: certbot == true
|
|
|
|
- include: tasks/server/software/hugo.yml
|
|
when: hugo == true
|
|
|
|
- include: tasks/server/software/gitlab.yml
|
|
when: gitlab and ansible_pkg_mgr in ("apt", "dnf") and ansible_distribution not in ("Fedora")
|
|
|
|
when: server == true
|
|
|
|
|
|
|
|
####### Reporting #######
|
|
# Provide information for analysis.
|
|
|
|
- include: tasks/general/software/telegraf.yml
|
|
|
|
- include: tasks/general/tests/nmap.yml
|
|
- include: tasks/general/tests/lynis.yml
|
|
|
|
- include: tasks/general/finish.yml
|