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:
Hyperling 2022-01-10 13:41:54 +00:00 committed by GitHub
parent b26d94d911
commit 791dc245a6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 468 additions and 468 deletions

View File

@ -13,6 +13,7 @@
sshfs: sshfs sshfs: sshfs
locate: locate locate: locate
opensshd: openssh-server opensshd: openssh-server
tar: tar
when: ansible_pkg_mgr == "apt" when: ansible_pkg_mgr == "apt"
- name: General | Facts | Package | pacman - name: General | Facts | Package | pacman
@ -20,6 +21,7 @@
sshfs: sshfs sshfs: sshfs
locate: mlocate locate: mlocate
opensshd: openssh opensshd: openssh
tar: tar
when: ansible_pkg_mgr == "pacman" when: ansible_pkg_mgr == "pacman"
- name: General | Facts | Package | FreeBSD - name: General | Facts | Package | FreeBSD
@ -28,6 +30,7 @@
locate: htop # Placeholder to prevent errors, locate built into FreeBSD. locate: htop # Placeholder to prevent errors, locate built into FreeBSD.
opensshd: htop # sshd comes installed on FreeBSD opensshd: htop # sshd comes installed on FreeBSD
ansible_python_interpreter: "/usr/local/bin/python3.8" ansible_python_interpreter: "/usr/local/bin/python3.8"
tar: htop # tar already provided in FreeBSD
when: ansible_system == "FreeBSD" when: ansible_system == "FreeBSD"
- name: General | Facts | Package | dnf - name: General | Facts | Package | dnf
@ -35,6 +38,7 @@
sshfs: fuse-sshfs sshfs: fuse-sshfs
locate: mlocate locate: mlocate
opensshd: openssh opensshd: openssh
tar: tar
when: ansible_pkg_mgr == "dnf" when: ansible_pkg_mgr == "dnf"

View File

@ -5,7 +5,7 @@
set_fact: set_fact:
leet_ssh: '{{ user }}@leet' leet_ssh: '{{ user }}@leet'
leet_drive: /mnt/leet leet_drive: /mnt/leet
lynis_install_dir: /usr/local/lynis lynis_install_dir: /usr/local/src/lynis
dwm_install_dir: /usr/local/src/dwm dwm_install_dir: /usr/local/src/dwm
st_install_dir: /usr/local/src/st st_install_dir: /usr/local/src/st
global_bin: /usr/local/bin global_bin: /usr/local/bin

View File

@ -61,10 +61,16 @@ static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn()
static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL };
static const char *termcmd[] = { "st", NULL }; static const char *termcmd[] = { "st", NULL };
// Volume (https://varunbpatil.github.io/2013/09/28/dwm.html)
static const char *mutecmd[] = {"amixer","-q","sset","Master","toggle",NULL};
static const char *lowervolcmd[] = {"amixer","-q","sset","Master","1%-",NULL};
static const char *raisevolcmd[] = {"amixer","-q","sset","Master","1%+",NULL};
static Key keys[] = { static Key keys[] = {
/* modifier key function argument */ /* modifier key function argument */
{ MODKEY, XK_p, spawn, {.v = dmenucmd } }, { MODKEY, XK_p, spawn, {.v = dmenucmd } },
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },
{ MODKEY, XK_Return, spawn, {.v = termcmd } },
{ MODKEY, XK_b, togglebar, {0} }, { MODKEY, XK_b, togglebar, {0} },
{ MODKEY, XK_j, focusstack, {.i = +1 } }, { MODKEY, XK_j, focusstack, {.i = +1 } },
{ MODKEY, XK_k, focusstack, {.i = -1 } }, { MODKEY, XK_k, focusstack, {.i = -1 } },
@ -97,7 +103,11 @@ static Key keys[] = {
TAGKEYS( XK_9, 8) TAGKEYS( XK_9, 8)
{ MODKEY|ShiftMask, XK_q, quit, {0} }, { MODKEY|ShiftMask, XK_q, quit, {0} },
// Mine // Mine
{ MODKEY, XK_q, killclient, {0} }, { MODKEY, XK_q, killclient, {0} },
// Volume (https://varunbpatil.github.io/2013/09/28/dwm.html)
{ 0, 0x1008ff12,spawn, {.v = mutecmd } },
{ 0, 0x1008ff11,spawn, {.v = lowervolcmd } },
{ 0, 0x1008ff13,spawn, {.v = raisevolcmd } },
}; };
/* button definitions */ /* button definitions */

View File

@ -2,7 +2,7 @@
# 2021-10-30 Hyperling # 2021-10-30 Hyperling
# Basically .xinitrc, but not placed there to avoid GDM/GNOME problems. # Basically .xinitrc, but not placed there to avoid GDM/GNOME problems.
## System Libs ## ## Load System Libs ##
if [ -d /etc/X11/xinit/xinitrc.d ]; then if [ -d /etc/X11/xinit/xinitrc.d ]; then
for f in /etc/X11/xinit/xinitrc.d/*; do for f in /etc/X11/xinit/xinitrc.d/*; do
@ -11,23 +11,32 @@ if [ -d /etc/X11/xinit/xinitrc.d ]; then
unset f unset f
fi fi
if [ -d /usr/local/etc/X11/xinit/xinitrc.d ]; then
for f in /usr/local/etc/X11/xinit/xinitrc.d/*; do
[ -x "$f" ] && . "$f"
done
unset f
fi
## Variables ## ## Variables ##
# This doesn't work for some reason. LBRY needs it but added to its executable instead. purple="#400080"
eval `dbus-launch`
## Background ##
xsetroot -solid "$purple"
## Status Bars ## ## Status Bars ##
# slstatus, from Suckless # # slstatus, from Suckless #
#exec slstatus & #exec slstatus &
# Custom # # Custom #
while true; do while true; do
xsetroot -name "`date +"%Y-%m-%d %H:%M:%S"`" xsetroot -name "`whoami`@`hostname` `date +"%Y-%m-%d %H:%M:%S"`"
done & done &

128
hosts
View File

@ -1,130 +1,4 @@
;;; DEPRECATION WARNING ;;; ; Configuration is managed via /usr/local/etc/hyperling-scm/*.ini files.
; The move to file-based variables has begun.
; This file will be removed once all variables are converted and all hosts have been modified.
; Please see tasks/general/acct_mgmt/provision_config.yml for details.
;;; END DEPRECATION WARNING ;;;
[global] [global]
localhost localhost
;;; Old hosts file:
;;; [everything]
;;; ;;;;;;; Available options - all require lowercase values ;;;;;;
;;; ;
;;; ; branch : Provide the Github branch that the machine should poll.
;;; ; Example: main, dev
;;; ;
;;; ; pentesting : Set to anything to install tools such as metasploit (nmap is already provided for reporting)
;;; ; Example: true
;;; ;
;;; localhost
;;; ;dell-laptop branch=dev pentesting=true
;;; ;airbook branch=dev pentesting=true
;;; ;x570 branch=dev
;;; ;test branch=dev pentesting=true
;;;
;;; [workstation]
;;; ;;;;;;; Available options - all require lowercase values ;;;;;;
;;; ;
;;; ; coding : Define for installation of code editors (VSCode, PyCharm, Android Studio)
;;; ;
;;; ; editing : Define for installation of Audio/Video editors (Shotcut, Audacity, OBS Stdio, GIMP)
;;; ;
;;; ; gaming : Define for installation of gaming software (Steam, Lutris)
;;; ;
;;; ; rdp : Define for installation of RDP protocol
;;; ; CURRENTLY FREEBSD-ONLY
;;; ;
;;; ; vnc : Define for installation of VNC protocol
;;; ; NOT IMPLEMENTED YET
;;; ;
;;; dell-laptop coding=true editing=true gaming=true
;;; dell-inspiron coding=true gaming=true
;;; usb-workstation coding=true
;;; lbry-server-1
;;; lbry-server-2
;;; lbry-server-3
;;; aspire coding=true editing=true gaming=true
;;; freeboy rdp=true
;;; airbook coding=true editing=true gaming=true
;;;
;;; [mobile]
;;; pinephone
;;; usb-mobile
;;; silicon-power
;;;
;;; [miner]
;;; ;;;;;;; Available options - all require lowercase values ;;;;;;
;;; ; amdgpu : Set to anything for installation of AMDGPU-Pro drivers on Ubuntu (20.04 preferred)
;;; ; Example: true
;;; ;
;;; ; nanominer : Set to anything for installation of nanominer
;;; ; Example: true
;;; ;
;;; ; nanominer_cpu : Set to coin code that you'd like the CPU to work on
;;; ; Valid values: xmr
;;; ;
;;; ; nanominer_cpu_pool : Set to pool organization to use for CPU mining
;;; ; Valid values: nanopool
;;; ;
;;; ; nanominer_gpu : Set to coin code that you'd like the GPU to work on
;;; ; Valid values: eth
;;; ;
;;; ; nanominer_gpus : Set to comma list of GPU devices that should be used for nanominer
;;; ; Example: 0,2,3
;;; ;
;;; ; nanominer_gpu_pool : Set to pool organization to use for GPU mining
;;; ; Valid values: nanopool etherpool f2pool
;;; ;
;;; ; eth_minhashrate : Set to minimum hashrate over 10 minutes before restarting. Can accept M for Million and K for thousand.
;;; ; Example: 100K
;;; ;
;;; usb-miner amdgpu=true nanominer=true nanominer_gpu=eth nanominer_gpus=0 nanominer_gpu_pool=nanopool
;;; x570 amdgpu=true nanominer=true nanominer_gpu=eth nanominer_gpus=0 nanominer_gpu_pool=nanopool eth_minhashrate=50M
;;; ;x570 amdgpu=true ethminer=true
;;;
;;; [server]
;;; ;;;;;;; Parameters ;;;;;;
;;; ;
;;; ; domain : Set to the domain which gives the server its FQDN.
;;; ; Example: hyperling.com
;;; ;
;;; ; onlyoffice : Set to anything for this server to be configured as an OnlyOffice server.
;;; ; Example: true
;;; ;
;;; ; grafana : Set to anything for this server to be configured as an Grafana web server.
;;; ; Example: true
;;; ;
;;; ; influxdb1 : Set to anything for this server to be configured as an Influx 1 DB server.
;;; ; Example: true
;;; ;
;;; ; influxdb2 : Set to anything for this server to be configured as an Influx 2 DB + web server.
;;; ; Example: true
;;; ;
;;; ; certbot : Set to anything to add cron job for `certbot renew`.
;;; ; Example: true
;;; ;
;;; ; hugo : Set to anything to install HUGO static website generator.
;;; ; Example: true
;;; ;
;;; ; gitlab : ee - Installs Enterprise Edition Free Tier. Basically CE with an easier upgrade path for Paid Features.
;;; ; ce - Installs Community Edition. Excludes paid features if you'll never use them. Supposedly difficult to move to EE.
;;; ; Example: ce
;;; ;
;;; ; gitlab_url : The URL prefix for the server. Using 'http://mygitlabserver' would result in "http://mygitlabserver.{{domain}}".
;;; ; Regardless of whether you choose http or https, the Certbot config will be skipped since the maintainer uses a reverse proxy.
;;; ; Example: https://gitlab
;;; ;
;;; onlyoffice domain=hyperling.com onlyoffice=true
;;; grafana domain=hyperling.com grafana=true influxdb1=true
;;; test
;;; hyperling certbot=true
;;; hyperling.com certbot=true
;;; tmcvideos certbot=true
;;; tmcvideos.com certbot=true
;;; reverse-proxy certbot=true
;;; nextcloud
;;; wordpress certbot=true
;;; usb-server
;;; git gitlab=ce domain=hyperling.com gitlab_url=https://git
;;; gitlab gitlab=ce domain=hyperling.com gitlab_url=https://gitlab

100
local.yml
View File

@ -57,14 +57,16 @@
- include: facts/workstation/package.yml - include: facts/workstation/package.yml
# Set Up Desktop Environments # # Set Up Desktop Environments #
- include: tasks/workstation/freebsd/software/gui.yml - include: tasks/workstation/freebsd/software/gpu.yml
when: ansible_system == "FreeBSD" and bsd_gpu == true
- include: tasks/workstation/freebsd/software/gnome.yml
when: ansible_system == "FreeBSD" when: ansible_system == "FreeBSD"
- include: tasks/workstation/linux/software/gnome.yml - include: tasks/workstation/linux/software/gnome.yml
when: ansible_system == "Linux" when: ansible_system == "Linux"
- include: tasks/workstation/linux/software/dwm.yml - include: tasks/workstation/shared/software/dwm.yml
when: ansible_system in ("Linux", "FreeBSD")
ignore_errors: yes ignore_errors: yes
# Software Tasks # # Software Tasks #
@ -77,6 +79,9 @@
- include: tasks/workstation/linux/software/brave.yml - include: tasks/workstation/linux/software/brave.yml
when: ansible_pkg_mgr in ("apt", "dnf") when: ansible_pkg_mgr in ("apt", "dnf")
- include: tasks/workstation/freebsd/software/packages.yml
when: ansible_system == "FreeBSD"
- include: tasks/workstation/mac-os/software/brew.yml - include: tasks/workstation/mac-os/software/brew.yml
when: ansible_system == "Darwin" when: ansible_system == "Darwin"
@ -84,63 +89,64 @@
when: ansible_system == "Darwin" when: ansible_system == "Darwin"
# Configuration Tasks # # Configuration Tasks #
- include: tasks/workstation/settings/gnome.yml - include: tasks/workstation/shared/settings/gnome.yml
- include: tasks/workstation/linux/cron/ansible.yml - include: tasks/workstation/linux/cron/ansible.yml
when: ansible_system == "Linux" when: ansible_system == "Linux"
- include: tasks/workstation/settings/nfs.yml - include: tasks/workstation/shared/settings/nfs.yml
- include: tasks/workstation/settings/rdp.yml - include: tasks/workstation/shared/settings/rdp.yml
when: rdp == true when: rdp == true
- include: tasks/workstation/settings/vnc.yml
- include: tasks/workstation/shared/settings/vnc.yml
when: vnc == true when: vnc == true
- include: tasks/workstation/settings/services.yml - include: tasks/workstation/shared/settings/services.yml
ignore_errors: yes ignore_errors: yes
when: workstation == true when: workstation == true
# No longer mining, this is now considered deprecated.
####### Miners ####### # ####### Miners #######
#
# Additional setup for miners. # # Additional setup for miners.
- name: Main | Miner Setup # - name: Main | Miner Setup
block: # block:
#
##### Setup ##### # ##### Setup #####
- include: tasks/miner/debug.yml # - include: tasks/miner/debug.yml
#
- include: tasks/miner/acct_mgmt/users.yml # - include: tasks/miner/acct_mgmt/users.yml
#
- include: facts/miner/system.yml # - include: facts/miner/system.yml
- include: facts/miner/config.yml # - include: facts/miner/config.yml
- include: facts/miner/pool.yml # - include: facts/miner/pool.yml
#
##### Installations ##### # ##### Installations #####
### CPU SECTION ### # ### CPU SECTION ###
# Monero # # # Monero #
- include: tasks/miner/software/xmr-stak-cpu.yml # - include: tasks/miner/software/xmr-stak-cpu.yml
when: xmr_stak_cpu is defined # when: xmr_stak_cpu is defined
#
### GPU Section ### # ### GPU Section ###
## Drivers ## # ## Drivers ##
- include: tasks/miner/drivers/amdgpu.yml # - include: tasks/miner/drivers/amdgpu.yml
when: ansible_distribution == "Ubuntu" and amdgpu == true # when: ansible_distribution == "Ubuntu" and amdgpu == true
#
# Ethereum # # # Ethereum #
- include: tasks/miner/software/ethminer.yml # - include: tasks/miner/software/ethminer.yml
when: ethminer == true # when: ethminer == true
#
- include: tasks/miner/software/nanominer.yml # - include: tasks/miner/software/nanominer.yml
when: nanominer == true # when: nanominer == true
#
##### Scheduling ##### # ##### Scheduling #####
- include: tasks/miner/cron/ansible.yml # - include: tasks/miner/cron/ansible.yml
- include: tasks/miner/cron/mfn.yml # - include: tasks/miner/cron/mfn.yml
#
when: miner == true # when: miner == true

View File

@ -88,6 +88,9 @@
; vnc : Set to true for installation of VNC protocol ; vnc : Set to true for installation of VNC protocol
; UNFINISHED/UNTESTED ; UNFINISHED/UNTESTED
; ;
; bsd_gpu : Set to [] to install GPU driver
; Example: amdgpu
;
[global] [global]
marker: '; {mark} MANAGED BY ANSIBLE | Workstation Config' marker: '; {mark} MANAGED BY ANSIBLE | Workstation Config'
state: present state: present
@ -102,6 +105,7 @@
gaming: "{{ lookup('ini', 'gaming file={{wrk_file}} default=false') }}" gaming: "{{ lookup('ini', 'gaming file={{wrk_file}} default=false') }}"
rdp: "{{ lookup('ini', 'rdp file={{wrk_file}} default=false') }}" rdp: "{{ lookup('ini', 'rdp file={{wrk_file}} default=false') }}"
vnc: "{{ lookup('ini', 'vnc file={{wrk_file}} default=false') }}" vnc: "{{ lookup('ini', 'vnc file={{wrk_file}} default=false') }}"
bsd_gpu: "{{ lookup('ini', 'bsd_gpu file={{wrk_file}} default=false') }}"
- name: General | Account Management | Provisioning Configuration | Workstation | List - name: General | Account Management | Provisioning Configuration | Workstation | List
set_fact: set_fact:
@ -113,86 +117,87 @@
- { 'gaming': "{{ gaming }}" } - { 'gaming': "{{ gaming }}" }
- { 'rdp': "{{ rdp }}" } - { 'rdp': "{{ rdp }}" }
- { 'vnc': "{{ vnc }}" } - { 'vnc': "{{ vnc }}" }
- { 'bsd_gpu': "{{ bsd_gpu }}" }
# No longer mining, this is now considered deprecated.
## Miner ## ### Miner ##
#
- name: General | Account Management | Provisioning Configuration | Miner | Create #- name: General | Account Management | Provisioning Configuration | Miner | Create
blockinfile: # blockinfile:
path: "{{ mnr_file }}" # path: "{{ mnr_file }}"
block: | # block: |
;;;;;;; Available options - all require lowercase values ;;;;;; # ;;;;;;; Available options - all require lowercase values ;;;;;;
; # ;
; enable : Set to true for system to be considered a miner. # ; enable : Set to true for system to be considered a miner.
; # ;
; amdgpu : Set to true for installation of AMDGPU-Pro drivers on Ubuntu (20.04 preferred) # ; amdgpu : Set to true for installation of AMDGPU-Pro drivers on Ubuntu (20.04 preferred)
; # ;
; nanominer : Set to true for installation of nanominer # ; nanominer : Set to true for installation of nanominer
; # ;
; nanominer_cpu : Set to coin code that you'd like the CPU to work on # ; nanominer_cpu : Set to coin code that you'd like the CPU to work on
; Valid values: xmr # ; Valid values: xmr
; # ;
; nanominer_cpu_pool : Set to pool organization to use for CPU mining # ; nanominer_cpu_pool : Set to pool organization to use for CPU mining
; Valid values: nanopool # ; Valid values: nanopool
; # ;
; nanominer_gpu : Set to coin code that you'd like the GPU to work on # ; nanominer_gpu : Set to coin code that you'd like the GPU to work on
; Valid values: eth # ; Valid values: eth
; # ;
; nanominer_gpus : Set to comma list of GPU devices that should be used for nanominer # ; nanominer_gpus : Set to comma list of GPU devices that should be used for nanominer
; Example: 0,2,3 # ; Example: 0,2,3
; # ;
; nanominer_gpu_pool : Set to pool organization to use for GPU mining # ; nanominer_gpu_pool : Set to pool organization to use for GPU mining
; Valid values: nanopool etherpool f2pool # ; Valid values: nanopool etherpool f2pool
; # ;
; eth_minhashrate : Set to minimum hashrate over 10 minutes before restarting. Can accept M for Million and K for thousand. # ; eth_minhashrate : Set to minimum hashrate over 10 minutes before restarting. Can accept M for Million and K for thousand.
; Example: 100K # ; Example: 100K
; # ;
; ethminer : Set to true for installation of ethminer # ; ethminer : Set to true for installation of ethminer
; UNFINISHED/UNTESTED # ; UNFINISHED/UNTESTED
; # ;
; nvidia : Set to true for NVidia support in ethminer. # ; nvidia : Set to true for NVidia support in ethminer.
; UNFINISHED/UNTESTED # ; UNFINISHED/UNTESTED
; # ;
; xmr_stak_cpu : Set to true for istallation # ; xmr_stak_cpu : Set to true for istallation
; UNFINISHED/UNTESTED # ; UNFINISHED/UNTESTED
; # ;
[global] # [global]
marker: '; {mark} MANAGED BY ANSIBLE | Miner Config' # marker: '; {mark} MANAGED BY ANSIBLE | Miner Config'
state: present # state: present
create: yes # create: yes
backup: yes # backup: yes
#
- name: General | Account Management | Provisioning Configuration | Miner | Load #- name: General | Account Management | Provisioning Configuration | Miner | Load
set_fact: # set_fact:
miner: "{{ lookup('ini', 'enable file={{mnr_file}} default=false') }}" # miner: "{{ lookup('ini', 'enable file={{mnr_file}} default=false') }}"
amdgpu: "{{ lookup('ini', 'amdgpu file={{mnr_file}} default=false') }}" # amdgpu: "{{ lookup('ini', 'amdgpu file={{mnr_file}} default=false') }}"
nanominer: "{{ lookup('ini', 'nanominer file={{mnr_file}} default=false') }}" # nanominer: "{{ lookup('ini', 'nanominer file={{mnr_file}} default=false') }}"
nanominer_cpu: "{{ lookup('ini', 'nanominer_cpu file={{mnr_file}} default=false') }}" # nanominer_cpu: "{{ lookup('ini', 'nanominer_cpu file={{mnr_file}} default=false') }}"
nanominer_cpu_pool: "{{ lookup('ini', 'nanominer_cpu_pool file={{mnr_file}} default=false') }}" # nanominer_cpu_pool: "{{ lookup('ini', 'nanominer_cpu_pool file={{mnr_file}} default=false') }}"
nanominer_gpu: "{{ lookup('ini', 'nanominer_gpu file={{mnr_file}} default=false') }}" # nanominer_gpu: "{{ lookup('ini', 'nanominer_gpu file={{mnr_file}} default=false') }}"
nanominer_gpus: "{{ lookup('ini', 'nanominer_gpus file={{mnr_file}} default=false') }}" # nanominer_gpus: "{{ lookup('ini', 'nanominer_gpus file={{mnr_file}} default=false') }}"
nanominer_gpu_pool: "{{ lookup('ini', 'nanominer_gpu_pool file={{mnr_file}} default=false') }}" # nanominer_gpu_pool: "{{ lookup('ini', 'nanominer_gpu_pool file={{mnr_file}} default=false') }}"
eth_minhashrate: "{{ lookup('ini', 'eth_minhashrate file={{mnr_file}} default=false') }}" # eth_minhashrate: "{{ lookup('ini', 'eth_minhashrate file={{mnr_file}} default=false') }}"
ethminer: "{{ lookup('ini', 'ethminer file={{mnr_file}} default=false') }}" # ethminer: "{{ lookup('ini', 'ethminer file={{mnr_file}} default=false') }}"
nvidia: "{{ lookup('ini', 'nvidia file={{mnr_file}} default=false') }}" # nvidia: "{{ lookup('ini', 'nvidia file={{mnr_file}} default=false') }}"
xmr_stak_cpu: "{{ lookup('ini', 'xmr_stak_cpu file={{mnr_file}} default=false') }}" # xmr_stak_cpu: "{{ lookup('ini', 'xmr_stak_cpu file={{mnr_file}} default=false') }}"
#
- name: General | Account Management | Provisioning Configuration | Miner | List #- name: General | Account Management | Provisioning Configuration | Miner | List
set_fact: # set_fact:
provision_variables: "{{ provision_variables | combine(item) }}" # provision_variables: "{{ provision_variables | combine(item) }}"
loop: # loop:
- { 'miner': "{{ miner }}" } # - { 'miner': "{{ miner }}" }
- { 'amdgpu': "{{ amdgpu }}" } # - { 'amdgpu': "{{ amdgpu }}" }
- { 'nanominer': "{{ nanominer }}" } # - { 'nanominer': "{{ nanominer }}" }
- { 'nanominer_cpu': "{{ nanominer_cpu }}" } # - { 'nanominer_cpu': "{{ nanominer_cpu }}" }
- { 'nanominer_cpu_pool': "{{ nanominer_cpu_pool }}" } # - { 'nanominer_cpu_pool': "{{ nanominer_cpu_pool }}" }
- { 'nanominer_gpu': "{{ nanominer_gpu }}" } # - { 'nanominer_gpu': "{{ nanominer_gpu }}" }
- { 'nanominer_gpus': "{{ nanominer_gpus }}" } # - { 'nanominer_gpus': "{{ nanominer_gpus }}" }
- { 'nanominer_gpu_pool': "{{ nanominer_gpu_pool }}" } # - { 'nanominer_gpu_pool': "{{ nanominer_gpu_pool }}" }
- { 'eth_minhashrate': "{{ eth_minhashrate }}" } # - { 'eth_minhashrate': "{{ eth_minhashrate }}" }
- { 'ethminer': "{{ ethminer }}" } # - { 'ethminer': "{{ ethminer }}" }
- { 'nvidia': "{{ nvidia }}" } # - { 'nvidia': "{{ nvidia }}" }
- { 'xmr_stak_cpu': "{{ xmr_stak_cpu }}" } # - { 'xmr_stak_cpu': "{{ xmr_stak_cpu }}" }
## Server ## ## Server ##

View File

@ -2,11 +2,6 @@
# Tasks related to finishing ansible-pull # Tasks related to finishing ansible-pull
# EG: End timer, start conflicting jobs, etc # EG: End timer, start conflicting jobs, etc
- name: General | Finish | Ansible Pull Report | Debug
debug:
var: leet_drive_details
when: leet_drive_details is defined
- name: General | Finish | Ansible Pull Report | Finish File - name: General | Finish | Ansible Pull Report | Finish File
shell: "echo 'FINISH' >> {{ ansible_pull_report }}" shell: "echo 'FINISH' >> {{ ansible_pull_report }}"
when: leet_drive_details.stat.exists when: leet_drive_details.stat.exists

View File

@ -48,7 +48,7 @@
- "{{ locate }}" - "{{ locate }}"
- zsh - zsh
- "{{ opensshd }}" - "{{ opensshd }}"
- tar - "{{ tar }}"
state: present state: present
- name: General | Software | Services | Install CROND (Looking at you, Fedora) - name: General | Software | Services | Install CROND (Looking at you, Fedora)

View File

@ -4,7 +4,7 @@
## Variables ## ## Variables ##
- name: Server | Software | Git | Check Config Variables - name: Server | Software | HTTPS Git Server | Check Config Variables
debug: debug:
var: "{{ item }}" var: "{{ item }}"
loop: loop:
@ -13,14 +13,14 @@
- git_url - git_url
- git_sep - git_sep
- name: Server | Software | Git | Split Config Variables To Array - name: Server | Software | HTTPS Git Server | Split Config Variables To Array
set_fact: set_fact:
git_names: "{{ git_name.split(git_sep) }}" git_names: "{{ git_name.split(git_sep) }}"
git_branches: "{{ git_branch.split(git_sep) }}" git_branches: "{{ git_branch.split(git_sep) }}"
git_urls: "{{ git_url.split(git_sep) }}" git_urls: "{{ git_url.split(git_sep) }}"
git_projects: [] git_projects: []
- name: Server | Software | Git | Check Arrays - name: Server | Software | HTTPS Git Server | Check Arrays
debug: debug:
var: "{{ item }}" var: "{{ item }}"
loop: loop:
@ -28,29 +28,34 @@
- git_branches - git_branches
- git_urls - git_urls
- name: Server | Software | Git | Build Dictionary - name: Server | Software | HTTPS Git Server | Build Dictionary
set_fact: set_fact:
git_projects: "{{ git_projects + [{ 'name': git_names[item], 'branch': git_branches[item], 'url': git_urls[item] }] }}" git_projects: "{{ git_projects + [{ 'name': git_names[item], 'branch': git_branches[item], 'url': git_urls[item] }] }}"
loop: "{{ range(0, git_names|length) | list }}" loop: "{{ range(0, git_names|length) | list }}"
- name: Server | Software | Git | Display Dictionary - name: Server | Software | HTTPS Git Server | Display Dictionary
debug: debug:
var: git_projects var: git_projects
- name: Server | Software | Git | Variables 1 - name: Server | Software | HTTPS Git Server | Variables 1
set_fact: set_fact:
git_web_root: /var/www/html/git git_web_root: /var/www/html/git
git_config_file: /etc/nginx/conf.d/git.conf git_config_file: /etc/nginx/conf.d/git.conf
git_nginx_user: www-data git_nginx_user: www-data
git_ssl_dir: /usr/local/etc/ssl/private
git_ssl_cert_name: cert.pem
git_ssl_key_name: key.pem
- name: Server | Software | Git | Variables 2 - name: Server | Software | HTTPS Git Server | Variables 2
set_fact: set_fact:
git_cron_commands: "git pull --rebase && cd {{ git_web_root }}/ && chown -R {{ git_nginx_user }} . && chmod -R 775 ." git_cron_commands: "git pull --rebase && cd {{ git_web_root }}/ && chown -R {{ git_nginx_user }} . && chmod -R 775 ."
git_ssl_cert: "{{ git_ssl_dir }}/{{ git_ssl_cert_name }}"
git_ssl_key: "{{ git_ssl_dir }}/{{ git_ssl_key_name }}"
## Pre-reqs ## ## Pre-reqs ##
- name: Server | Software | Git | Install - name: Server | Software | HTTPS Git Server | Install
package: package:
name: name:
- nginx - nginx
@ -60,26 +65,32 @@
- unzip - unzip
state: present state: present
when: ansible_pkg_mgr == "apt" when: ansible_pkg_mgr == "apt"
- name: Server | Software | HTTPS Git Server | SSL Certificate
shell: "{{ item }}"
loop:
- mkdir -p {{ git_ssl_dir }}
- openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout {{ git_ssl_key }} -out {{ git_ssl_cert }} -subj "/C=XX/ST=STATELESS/L=HOMELAB/O={{ domain }}/OU=Git Server/CN={{ domain }}"
## Repositories ## ## Repositories ##
- name: Server | Software | Git | Delete - name: Server | Software | HTTPS Git Server | Delete
file: file:
path: "{{ git_web_root }}" path: "{{ git_web_root }}"
state: absent state: absent
- name: Server | Software | Git | Download - name: Server | Software | HTTPS Git Server | Download
git: git:
repo: "{{ item.url }}" repo: "{{ item.url }}"
dest: "{{ git_web_root }}/{{ item.name }}.git" dest: "{{ git_web_root }}/{{ item.name }}.git"
version: "{{ item.branch }}" version: "{{ item.branch }}"
clone: yes clone: yes
force: yes force: yes
#ignore_errors: yes ignore_errors: yes
loop: "{{ git_projects }}" loop: "{{ git_projects }}"
- name: Server | Software | Git | Permissions - name: Server | Software | HTTPS Git Server | Permissions
file: file:
path: "{{ git_web_root }}/{{ item.name }}.git" path: "{{ git_web_root }}/{{ item.name }}.git"
state: directory state: directory
@ -92,7 +103,7 @@
## NGINX ## ## NGINX ##
- name: Server | Software | Git | Index - name: Server | Software | HTTPS Git Server | Index
blockinfile: blockinfile:
path: "{{ git_web_root }}/index.html" path: "{{ git_web_root }}/index.html"
block: | block: |
@ -106,12 +117,16 @@
marker: "<!-- {mark} {{ item.name }} -->" marker: "<!-- {mark} {{ item.name }} -->"
loop: "{{ git_projects }}" loop: "{{ git_projects }}"
- name: Server | Software | Git | Config - name: Server | Software | HTTPS Git Server | Config
blockinfile: blockinfile:
path: "{{ git_config_file }}" path: "{{ git_config_file }}"
block: | block: |
server { server {
listen 80; listen 443;
server_name {{ ansible_hostname }}.{{ domain }};
ssl_certificate {{ git_ssl_cert }};
ssl_certificate_key {{ git_ssl_key }};
root {{ git_web_root }}; root {{ git_web_root }};
@ -119,8 +134,6 @@
index index.html; index index.html;
#autoindex on; #autoindex on;
server_name {{ ansible_hostname }}.{{ domain }};
location / { location / {
# First attempt to serve request as file, then # First attempt to serve request as file, then
# as directory, then fall back to displaying a 404. # as directory, then fall back to displaying a 404.
@ -146,7 +159,7 @@
backup: yes backup: yes
marker: "# {mark} Managed By Ansible Git Server Playbook -->" marker: "# {mark} Managed By Ansible Git Server Playbook -->"
- name: Server | Software | Git | Service - name: Server | Software | HTTPS Git Server | Service
service: service:
name: nginx name: nginx
pattern: nginx pattern: nginx
@ -156,14 +169,14 @@
## Cron ## ## Cron ##
- name: Server | Software | Git | Cron | Hourly - name: Server | Software | HTTPS Git Server | Cron | Hourly
ansible.builtin.cron: ansible.builtin.cron:
name: "{{ item.name }} hourly" name: "{{ item.name }} hourly"
special_time: hourly special_time: hourly
job: "cd {{ git_web_root }}/{{ item.name }}.git && {{ git_cron_commands }}" job: "cd {{ git_web_root }}/{{ item.name }}.git && {{ git_cron_commands }}"
loop: "{{ git_projects }}" loop: "{{ git_projects }}"
- name: Server | Software | Git | Cron | Reboot - name: Server | Software | HTTPS Git Server | Cron | Reboot
ansible.builtin.cron: ansible.builtin.cron:
name: "{{ item.name }} reboot" name: "{{ item.name }} reboot"
special_time: reboot special_time: reboot

View 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

View 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

View File

@ -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

View File

@ -0,0 +1,4 @@
---
# Install LBRY desktop client.
# TODO: https://github.com/lbryio/lbry-desktop#install

View 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

View File

@ -40,126 +40,130 @@
## Dash to Dock Extension ## ## Dash to Dock Extension ##
# Note: Validate DtD by checking /org/gnome/shell/enabled-extensions for dash-to-dock@micxgx.gmail.com # 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 - name: Workstation | Account Management | GNOME | Dash To Dock
shell: "cd ~/.local/share/gnome-shell/extensions/dash-to-dock@micxgx.gmail.com/" block:
become_user: "{{ user }}"
register: dash_to_dock_exists - 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 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) - name: Workstation | Account Management | GNOME | Favorites (Linux)
dconf: dconf:
key: /org/gnome/shell/favorite-apps key: /org/gnome/shell/favorite-apps

View File

@ -3,6 +3,11 @@
# https://dwm.suckless.org/ # https://dwm.suckless.org/
# https://sites.google.com/site/lazyboxx/-articles/dwm-a-newbie-s-guide#TOC-Status-Bar # 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 ## ## Pre-reqs ##
- name: Workstation | Linux | Software | DWM | Pre-Reqs - name: Workstation | Linux | Software | DWM | Pre-Reqs