General Improvements + Miner Deprecation (#23)
* Add volume key controls. * Add placeholder for LBRY app. * Refactor gui into gnome and packages. Remove deprecated lineinfiles. Enhance package management. * Variablize tar to fix FreeBSD. * Variablize tar to fix FreeBSD. * Take FreeBSD gui.yml refactor into account. * Unfinished changes to use self-signed cert so local traffic can hit https. Server starts fine, but getting "gnutls_handshake() failed: An unexpected TLS packet was received." on client's `git clone`. * Make D2D optional. FreeBSD is still having a hard time compiling it. * Use a block for Dash To Dock so only one ignore_errors is necessary. * Deprecate miner section since machines have been decommissioned. * Remove deprecated file. * Switch to lightdm on FreeBSD. * Automate GPU driver installation. * Updated DWM config and added TODO's. * Move lynis to src folder for cleanliness. * Remove debug. * Refactor for "shared" system type folder. * Fix FreeBSD gpu.yml location. * Add a default hosts file to hide warnings.
This commit is contained in:
43
tasks/workstation/freebsd/software/gnome.yml
Normal file
43
tasks/workstation/freebsd/software/gnome.yml
Normal file
@ -0,0 +1,43 @@
|
||||
---
|
||||
# Provide FreeBSD with a DE.
|
||||
|
||||
- name: Workstation | FreeBSD | Software | GUI | Install UI Components
|
||||
package:
|
||||
name:
|
||||
- xorg
|
||||
- gnome3-lite
|
||||
- "{{ firefox_esr }}"
|
||||
- "{{ evolution }}"
|
||||
- vscode
|
||||
- gimp
|
||||
- telegram-desktop
|
||||
- lightdm
|
||||
- lightdm-gtk-greeter
|
||||
state: present
|
||||
|
||||
- name: Workstation | FreeBSD | Software | GUI | Create rc.conf Entries
|
||||
blockinfile:
|
||||
path: "{{ rc_conf }}"
|
||||
marker: "# {mark} MANAGED BY ANSIBLE | GNOME Components"
|
||||
block: |
|
||||
dbus_enable="YES"
|
||||
hald_enable="YES"
|
||||
gnome_enable="YES"
|
||||
#gdm_enable="YES"
|
||||
lightdm_enable="YES"
|
||||
create: yes
|
||||
backup: yes
|
||||
|
||||
- name: Workstation | FreeBSD | Software | GUI | Create fstab Entries
|
||||
blockinfile:
|
||||
path: /etc/fstab
|
||||
block: |
|
||||
proc /proc procfs rw 0 0
|
||||
marker: '# {mark} MANAGED BY ANSIBLE | GNOME Components'
|
||||
state: present
|
||||
backup: yes
|
||||
|
||||
- name: Workstation | FreeBSD | Software | GUI | Mount All
|
||||
shell: mount -a
|
||||
args:
|
||||
warn: false
|
17
tasks/workstation/freebsd/software/gpu.yml
Normal file
17
tasks/workstation/freebsd/software/gpu.yml
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
# Provide FreeBSD with GPU driver.
|
||||
|
||||
- name: Workstation | FreeBSD | Software | GPU Driver | Install
|
||||
package:
|
||||
name:
|
||||
- drm-kmod
|
||||
state: present
|
||||
|
||||
- name: Workstation | FreeBSD | Software | GPU Driver | Create rc.conf Entries
|
||||
blockinfile:
|
||||
path: "{{ rc_conf }}"
|
||||
marker: "# {mark} MANAGED BY ANSIBLE | GPU Components"
|
||||
block: |
|
||||
kld_list="{{ freebsd_gpu }}"
|
||||
create: yes
|
||||
backup: yes
|
@ -1,63 +0,0 @@
|
||||
---
|
||||
# Provide FreeBSD with a DE.
|
||||
|
||||
- name: Workstation | FreeBSD | GUI | Install UI Components
|
||||
package:
|
||||
name:
|
||||
- xorg
|
||||
- gnome3-lite
|
||||
- "{{ firefox_esr }}"
|
||||
- "{{ evolution }}"
|
||||
- vscode
|
||||
- gimp
|
||||
- telegram-desktop
|
||||
state: present
|
||||
|
||||
- name: Workstation | FreeBSD | GUI | Uninstall Bloat
|
||||
package:
|
||||
name:
|
||||
- "{{ firefox }}"
|
||||
- "{{ thunderbird }}"
|
||||
state: absent
|
||||
|
||||
- name: Workstation | FreeBSD | GUI | Create rc.conf Entries
|
||||
blockinfile:
|
||||
path: "{{ rc_conf }}"
|
||||
marker: "# {mark} MANAGED BY ANSIBLE | GUI Components"
|
||||
block: |
|
||||
dbus_enable="YES"
|
||||
hald_enable="YES"
|
||||
gnome_enable="YES"
|
||||
gdm_enable="YES"
|
||||
create: yes
|
||||
backup: yes
|
||||
|
||||
- name: Workstation | FreeBSD | GUI | Create proc fstab Entry
|
||||
lineinfile:
|
||||
path: /etc/fstab
|
||||
regexp: '^proc'
|
||||
line: proc /proc procfs rw 0 0
|
||||
state: absent
|
||||
backup: yes
|
||||
|
||||
- name: Workstation | FreeBSD | GUI | Create proc fstab Comment
|
||||
lineinfile:
|
||||
path: /etc/fstab
|
||||
regexp: '^# MANAGED BY ANSIBLE | Leet Share'
|
||||
line: '# MANAGED BY ANSIBLE | Leet Share'
|
||||
state: absent
|
||||
insertbefore: '^proc'
|
||||
|
||||
- name: Workstation | FreeBSD | GUI | Create fstab Entries
|
||||
blockinfile:
|
||||
path: /etc/fstab
|
||||
block: |
|
||||
proc /proc procfs rw 0 0
|
||||
marker: '# {mark} MANAGED BY ANSIBLE | GUI Components'
|
||||
state: present
|
||||
backup: yes
|
||||
|
||||
- name: Workstation | FreeBSD | GUI | Mount All
|
||||
shell: mount -a
|
||||
args:
|
||||
warn: false
|
4
tasks/workstation/freebsd/software/lbry.yml
Normal file
4
tasks/workstation/freebsd/software/lbry.yml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
# Install LBRY desktop client.
|
||||
|
||||
# TODO: https://github.com/lbryio/lbry-desktop#install
|
74
tasks/workstation/freebsd/software/packages.yml
Normal file
74
tasks/workstation/freebsd/software/packages.yml
Normal file
@ -0,0 +1,74 @@
|
||||
---
|
||||
# Packages for FreeBSD workstation.
|
||||
|
||||
# General #
|
||||
|
||||
- name: Workstation | FreeBSD | Software | Packages | General | Install
|
||||
package:
|
||||
name:
|
||||
- "{{ firefox_esr }}"
|
||||
- "{{ evolution }}"
|
||||
- telegram-desktop
|
||||
- libreoffice
|
||||
state: present
|
||||
|
||||
- name: Workstation | FreeBSD | Software | Packages | General | Uninstall Bloat
|
||||
package:
|
||||
name:
|
||||
- "{{ firefox }}"
|
||||
- "{{ thunderbird }}"
|
||||
state: absent
|
||||
|
||||
# Coding #
|
||||
|
||||
- name: Workstation | FreeBSD | Software | Packages | Coding | Install
|
||||
package:
|
||||
name:
|
||||
- vscode
|
||||
state: present
|
||||
when: coding == true
|
||||
|
||||
- name: Workstation | FreeBSD | Software | Packages | Coding | Install
|
||||
package:
|
||||
name:
|
||||
- vscode
|
||||
state: absent
|
||||
when: not coding == true
|
||||
|
||||
# Media Editors #
|
||||
|
||||
- name: Workstation | FreeBSD | Software | Packages | Editing | Install
|
||||
package:
|
||||
name:
|
||||
- gimp
|
||||
- shotcut
|
||||
- obs-studio
|
||||
state: present
|
||||
when: editing == true
|
||||
|
||||
- name: Workstation | FreeBSD | Software | Packages | Editing | Install
|
||||
package:
|
||||
name:
|
||||
- gimp
|
||||
- shotcut
|
||||
- obs-studio
|
||||
state: absent
|
||||
when: not editing == true
|
||||
|
||||
# Gaming #
|
||||
|
||||
- name: Workstation | FreeBSD | Software | Packages | Gaming | Install
|
||||
package:
|
||||
name:
|
||||
- 0ad
|
||||
- supertuxkart
|
||||
state: present
|
||||
when: gaming == true
|
||||
|
||||
- name: Workstation | FreeBSD | Software | Packages | Gaming | Install
|
||||
package:
|
||||
name:
|
||||
- 0ad
|
||||
- supertuxkart
|
||||
state: absent
|
||||
when: not gaming == true
|
@ -40,126 +40,130 @@
|
||||
## Dash to Dock Extension ##
|
||||
# Note: Validate DtD by checking /org/gnome/shell/enabled-extensions for dash-to-dock@micxgx.gmail.com
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Check
|
||||
shell: "cd ~/.local/share/gnome-shell/extensions/dash-to-dock@micxgx.gmail.com/"
|
||||
become_user: "{{ user }}"
|
||||
register: dash_to_dock_exists
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock
|
||||
block:
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Check
|
||||
shell: "cd ~/.local/share/gnome-shell/extensions/dash-to-dock@micxgx.gmail.com/"
|
||||
become_user: "{{ user }}"
|
||||
register: dash_to_dock_exists
|
||||
|
||||
# Install #
|
||||
# https://micheleg.github.io/dash-to-dock/download.html
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Install | Clone Repo
|
||||
git:
|
||||
repo: https://github.com/micheleg/dash-to-dock.git
|
||||
dest: "~/TRASH/dash-to-dock/"
|
||||
clone: yes
|
||||
force: no
|
||||
version: master
|
||||
become_user: "{{ user }}"
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Install | Dependencies
|
||||
package:
|
||||
name:
|
||||
- "{{ make }}"
|
||||
- "{{ msgfmt }}"
|
||||
- "{{ sassc }}"
|
||||
state: present
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Install | Make
|
||||
shell: "cd ~/TRASH/dash-to-dock/; {{ make }}; {{ make }} install"
|
||||
become_user: "{{ user }}"
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Read Enabled Extension Array
|
||||
dconf:
|
||||
key: /org/gnome/shell/enabled-extensions
|
||||
state: read
|
||||
become_user: "{{ user }}"
|
||||
register: gnome_enabled_extensions
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | dconf Return Object
|
||||
debug:
|
||||
var: gnome_enabled_extensions
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
# https://ansible-docs.readthedocs.io/zh/stable-2.0/rst/playbooks_filters.html#filters-for-formatting-data
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Variables 1
|
||||
set_fact:
|
||||
gnome_enabled_extensions: "{{ gnome_enabled_extensions.value | replace('@as ', '') }}"
|
||||
dash_to_dock_ext_comma: ""
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | After replace()
|
||||
debug:
|
||||
var: gnome_enabled_extensions
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Variables 2
|
||||
set_fact:
|
||||
dash_to_dock_ext_comma: ", "
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed and gnome_enabled_extensions not in ("[]", [], "None")
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Variables 3
|
||||
set_fact:
|
||||
dash_to_dock_ext_name: "{{ dash_to_dock_ext_comma }}'dash-to-dock@micxgx.gmail.com']"
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Variables 4
|
||||
set_fact:
|
||||
gnome_enabled_extensions: "[]"
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed and gnome_enabled_extensions == "None"
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Print Value To Append With
|
||||
debug:
|
||||
var: dash_to_dock_ext_name
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Print Value To Append To
|
||||
debug:
|
||||
var: gnome_enabled_extensions
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Print Combined Value
|
||||
debug:
|
||||
msg: "{{ gnome_enabled_extensions | replace(']', dash_to_dock_ext_name) }}"
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Enable
|
||||
dconf:
|
||||
key: /org/gnome/shell/enabled-extensions
|
||||
value: "{{ gnome_enabled_extensions | replace(']', dash_to_dock_ext_name) }}"
|
||||
state: present
|
||||
become_user: "{{ user }}"
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
# Settings #
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Dock Position
|
||||
dconf:
|
||||
key: /org/gnome/shell/extensions/dash-to-dock/dock-position
|
||||
value: "'LEFT'"
|
||||
state: present
|
||||
become_user: "{{ user }}"
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Dock Fixed
|
||||
dconf:
|
||||
key: /org/gnome/shell/extensions/dash-to-dock/dock-fixed
|
||||
value: "true"
|
||||
state: present
|
||||
become_user: "{{ user }}"
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Icon Size
|
||||
dconf:
|
||||
key: /org/gnome/shell/extensions/dash-to-dock/dash-max-icon-size
|
||||
value: "32"
|
||||
state: present
|
||||
become_user: "{{ user }}"
|
||||
|
||||
ignore_errors: yes
|
||||
|
||||
# Install #
|
||||
# https://micheleg.github.io/dash-to-dock/download.html
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Install | Clone Repo
|
||||
git:
|
||||
repo: https://github.com/micheleg/dash-to-dock.git
|
||||
dest: "~/TRASH/dash-to-dock/"
|
||||
clone: yes
|
||||
force: no
|
||||
version: master
|
||||
become_user: "{{ user }}"
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Install | Dependencies
|
||||
package:
|
||||
name:
|
||||
- "{{ make }}"
|
||||
- "{{ msgfmt }}"
|
||||
- "{{ sassc }}"
|
||||
state: present
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Install | Make
|
||||
shell: "cd ~/TRASH/dash-to-dock/; {{ make }}; {{ make }} install"
|
||||
become_user: "{{ user }}"
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Read Enabled Extension Array
|
||||
dconf:
|
||||
key: /org/gnome/shell/enabled-extensions
|
||||
state: read
|
||||
become_user: "{{ user }}"
|
||||
register: gnome_enabled_extensions
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | dconf Return Object
|
||||
debug:
|
||||
var: gnome_enabled_extensions
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
# https://ansible-docs.readthedocs.io/zh/stable-2.0/rst/playbooks_filters.html#filters-for-formatting-data
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Variables 1
|
||||
set_fact:
|
||||
gnome_enabled_extensions: "{{ gnome_enabled_extensions.value | replace('@as ', '') }}"
|
||||
dash_to_dock_ext_comma: ""
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | After replace()
|
||||
debug:
|
||||
var: gnome_enabled_extensions
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Variables 2
|
||||
set_fact:
|
||||
dash_to_dock_ext_comma: ", "
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed and gnome_enabled_extensions not in ("[]", [], "None")
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Variables 3
|
||||
set_fact:
|
||||
dash_to_dock_ext_name: "{{ dash_to_dock_ext_comma }}'dash-to-dock@micxgx.gmail.com']"
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Variables 4
|
||||
set_fact:
|
||||
gnome_enabled_extensions: "[]"
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed and gnome_enabled_extensions == "None"
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Print Value To Append With
|
||||
debug:
|
||||
var: dash_to_dock_ext_name
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Print Value To Append To
|
||||
debug:
|
||||
var: gnome_enabled_extensions
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Print Combined Value
|
||||
debug:
|
||||
msg: "{{ gnome_enabled_extensions | replace(']', dash_to_dock_ext_name) }}"
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Enable
|
||||
dconf:
|
||||
key: /org/gnome/shell/enabled-extensions
|
||||
value: "{{ gnome_enabled_extensions | replace(']', dash_to_dock_ext_name) }}"
|
||||
state: present
|
||||
become_user: "{{ user }}"
|
||||
when: ansible_distribution not in ("Ubuntu") and dash_to_dock_exists.failed
|
||||
|
||||
# Settings #
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Dock Position
|
||||
dconf:
|
||||
key: /org/gnome/shell/extensions/dash-to-dock/dock-position
|
||||
value: "'LEFT'"
|
||||
state: present
|
||||
become_user: "{{ user }}"
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Dock Fixed
|
||||
dconf:
|
||||
key: /org/gnome/shell/extensions/dash-to-dock/dock-fixed
|
||||
value: "true"
|
||||
state: present
|
||||
become_user: "{{ user }}"
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Dash To Dock | Icon Size
|
||||
dconf:
|
||||
key: /org/gnome/shell/extensions/dash-to-dock/dash-max-icon-size
|
||||
value: "32"
|
||||
state: present
|
||||
become_user: "{{ user }}"
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Favorites (Linux)
|
||||
dconf:
|
||||
key: /org/gnome/shell/favorite-apps
|
@ -3,6 +3,11 @@
|
||||
# https://dwm.suckless.org/
|
||||
# https://sites.google.com/site/lazyboxx/-articles/dwm-a-newbie-s-guide#TOC-Status-Bar
|
||||
|
||||
#TODO: Move this to tasks/shared/ pasth rather than tasks/linux/.
|
||||
#TODO: Generate files based on blockinfile.
|
||||
#TODO: Fix config.mk for FreeBSD automatically (use /usr/local/ for libs not /usr/X11RC/)
|
||||
#TODO: scm.sh to use bash variable so that FreeBSD correctly hits /usr/local/bin/bash.
|
||||
|
||||
## Pre-reqs ##
|
||||
|
||||
- name: Workstation | Linux | Software | DWM | Pre-Reqs
|
Reference in New Issue
Block a user