Compare commits

...

45 Commits

Author SHA1 Message Date
07dc365410 Add the Matrix protocol messenger Element back to the list, as well as Simplex. 2025-08-31 11:03:11 -07:00
c248a3c048 Add extra dialog to show where we're at when next apt prompt comes up. 2025-08-22 15:54:38 -07:00
16466fb0c8 Finalize backup list. Fixes for debian-upgrade. 2025-08-22 14:04:21 -07:00
86e3f40d36 Added and tested now and backup. Still need to test debian-upgrade. 2025-08-22 13:43:40 -07:00
8038e10364 Add purge to autoremove so that unused config files also get removed. 2025-08-22 11:54:22 -07:00
295f29dece Do not check services if host is a Docker container. 2025-08-21 15:31:40 -07:00
8181ee0848 Remove extra space. 2025-08-21 15:27:14 -07:00
c87c4468b3 Fix command to work locally. 2025-08-21 15:26:26 -07:00
e19902074a Try starting the necessary services multiple times. 2025-08-21 14:55:36 -07:00
c12b54d0dc Only use fastfetch for Trixie. 2025-08-21 14:40:35 -07:00
a5023b2ef7 Add shortcut to remembering how to see Ansible facts. 2025-08-21 14:40:25 -07:00
ad6601f17e neofetch is no longer available in Debian 13 (Trixie). Use fastfetch instead. 2025-08-21 14:31:07 -07:00
8e3e284753 Ensure boolean values are treated as booleans in Debian Trixie. 2025-08-21 14:27:07 -07:00
df4efb2beb Move the Connect software to Workstation. 2025-08-21 14:06:19 -07:00
c7d06da91e Add dig to default installs. 2025-08-19 14:48:23 -07:00
3e1b0cc961 Do not include an extra newline when working with HTML, causes whitespace issues. 2025-08-19 11:52:38 -07:00
2b551cbff5 Add hugo website to project list. 2025-08-18 18:24:08 -07:00
64c77cbd20 Add hugo to workstation packages. 2025-08-13 16:55:07 -07:00
c8186d30da Add Telegram back to install list. 2025-08-12 05:41:09 -07:00
68e1e5a48f Fix unnecessary s in name. 2025-07-26 11:40:46 -07:00
f61fe14a94 Add the speed boost to other stat checks as well. 2025-07-26 11:38:52 -07:00
a03a1b6493 Fix lag of stat building checksum and other data on large swapfile. 2025-07-26 11:35:28 -07:00
d1f50523fb Add output that the log is being followed. 2025-07-26 11:27:09 -07:00
9339b590e0 Add more projects t the reseed list. 2025-07-23 06:49:43 -07:00
dfe0b26498 Add more Android versions for testing. Only download them on devices marked for additional sdks. Move the lists into facts so that they can be reused. Add uninstallation tasks. 2025-07-23 06:44:35 -07:00
57f14fed8d Add alias for nethogs so that base user can hit it. 2025-07-22 16:19:09 -07:00
23b16f5db4 Enable and start chrony service. 2025-07-22 10:03:12 -07:00
a15e0017a6 Add nethogs and chrony to package list. 2025-07-22 10:03:02 -07:00
a7e1d0d25a Move old files somewhere that they'll get purged and not cause warnings. 2025-07-17 14:06:05 -07:00
b203eab7b5 Also refresh the preferences file. 2025-07-17 09:52:29 -07:00
6d4ac9bb69 Allow the moving of apt resources to fail. 2025-07-17 09:39:51 -07:00
5c8eb77f95 Add aliases for ls and ps. 2025-07-17 09:39:24 -07:00
544519bbfa Update Android SDKs. 2025-07-13 19:43:31 -07:00
1ab1594f6c Add the default image so that degoogled emulators can be tested. 2025-07-13 12:49:09 -07:00
ae4967bc04 Add sdk to Flutter report extension. 2025-07-13 10:52:22 -07:00
0d72bc1ea9 Move from Android 34+35 to 35+36. Add task for removal of old versions. Add report of installed modules. 2025-07-13 10:52:01 -07:00
de9c886af2 Add the UPDATE field to ensure that the repo gets any updates. Change YES's to TRUE based on documentation. 2025-07-13 10:35:32 -07:00
8033efce93 Add hostname to Flutter report. 2025-07-13 09:43:35 -07:00
2d9317e9de Add iftop and an alias to call it as a user. 2025-07-13 09:30:26 -07:00
b6066558e7 Add ability to leave off Night Light through Workstation provisioning file. 2025-07-13 09:06:37 -07:00
42306e4287 Add code-sync to do code-check since that's usually why the command is called. 2025-07-11 12:24:04 -07:00
f3cb825981 Add project to current projects. 2025-07-11 12:20:10 -07:00
1db8c0b7b0 Fix tabs in usage to spaces. 2025-06-16 18:07:23 -06:00
116087928d Strip metadata from converted images. 2025-06-16 18:01:59 -06:00
b6e820570f Allow re-expanding the filename in a consistent way so it's not one big number. 2025-06-16 18:01:41 -06:00
19 changed files with 459 additions and 94 deletions

View File

@@ -6,6 +6,11 @@
set_fact:
sshfs: sshfs
tar: tar
iftop: iftop
nethogs: nethogs
ntp_server: chrony
dig: dig
neofetch: neofetch
- name: General | Facts | Packages | Parrot OS Fixes
set_fact:
@@ -21,8 +26,14 @@
microcode_intel: intel-microcode
cron: cron
encfs: encfs
dig: dnsutils
when: ansible_pkg_mgr == "apt"
- name: General | Facts | Package | apt | Debian Trixie
set_fact:
neofetch: fastfetch
when: ansible_pkg_mgr == "apt" and ansible_distribution_release == "trixie"
- name: General | Facts | Package | pacman
set_fact:
locate: mlocate
@@ -98,7 +109,7 @@
echo -e "******* Apt *******\n*** Update Cache ***" &&
sudo apt update &&
echo -e "\n*** Auto Remove ***" &&
sudo apt autoremove {{ update_accept_var }} &&
sudo apt autoremove --purge {{ update_accept_var }} &&
echo -e "\n*** Clean ***" &&
sudo apt clean {{ update_accept_var }} &&
echo -e "Cleaned!\n\n*** Configure DPKG ***" &&
@@ -113,7 +124,7 @@
echo -e "******* Parrot *******\n*** Update Cache ***" &&
sudo apt update &&
echo -e "\n*** Auto Remove ***" &&
sudo apt autoremove {{ update_accept_var }} &&
sudo apt autoremove --purge {{ update_accept_var }} &&
parrot_mirrors_suck=true &&
while [[ $parrot_mirrors_suck ]]; do
unset parrot_mirrors_suck

View File

@@ -60,7 +60,8 @@ while getopts ":s:l:rfFdcAhx" opt; do
F) super_force="Y" ;;
d) delete="Y" ;;
c) clean="Y" ;;
A) recurse="Y" && search="find" && force="Y" && delete="Y" && clean="Y" ;;
e) expand="Y" ;;
A) recurse="Y" && search="find" && force="Y" && delete="Y" && expand="Y" ;;
h) usage 0 ;;
x) set -x ;;
*) echo "ERROR: Option $OPTARG not recognized." >&2 && usage 1 ;;
@@ -74,7 +75,7 @@ if [[ -n "$in_size" && "$size" != "$in_size" ]]; then
usage 1
fi
convert_exe="`which convert`"
convert_exe="`which convert` -strip"
if [[ "$convert_exe" == "" ]]; then
echo "ERROR: 'convert' command could not be found, "
echo "please install 'imagemagick'."
@@ -123,13 +124,31 @@ $search "$location" | sort | while read image; do
new_image_clean="${new_image_clean//-/}"
new_image_clean="${new_image_clean// /}"
# Add directory back to the full path.
## Expanded Filename ##
# Add back in the dashes so that the year, month, date, and time are exposed.
TEMP="$new_image_clean"
# Date Data
new_image_exp="${TEMP:0:4}-${TEMP:4:2}-${TEMP:6:2}"
# Time Data
new_image_exp="${new_image_exp}_${TEMP:8:2}-${TEMP:10:2}-${TEMP:12:2}"
# Remainder Data
if [[ "${TEMP:14:1}" == "." ]]; then
SEP=""
else
SEP="_"
fi
new_image_exp="${new_image_exp}${SEP}${TEMP:14}"
unset TEMP SEP
# Add directory back to the full paths.
new_image_clean="$image_dirname/$new_image_clean"
new_image_exp="$image_dirname/$new_image_exp"
# Delete the existing shrunk image if we are forcing a new compression.
if [[ -n "$force" && (-e "$new_image" || -e $new_image_clean) ]]; then
if [[ -n "$force" &&
(-e "$new_image" || -e $new_image_clean || -e $new_image_exp ) ]]; then
echo -n " FORCE: "
rm -v "$new_image" "$new_image_clean" 2>/dev/null
rm -v "$new_image" "$new_image_clean" "$new_image_exp" 2>/dev/null
fi
# Skip if a compressed image was already created today.
@@ -138,10 +157,14 @@ $search "$location" | sort | while read image; do
continue
fi
# Whether or not to use the cleaned version or the normal version.
# Whether or not to use the cleaned version.
if [[ -n $clean ]]; then
new_image="$new_image_clean"
# Whether or not to use the expanded version.
elif [[ -n $expand ]]; then
new_image="$new_image_exp"
fi
# Otherwise uses the same name as before.
###### TBD Instead of this, only alter the file names, and set a dirname var?
#### Create a new directory if the directory names were altered.

View File

@@ -33,13 +33,13 @@ function usage {
If nothing is provided, current directory (.) is assumed.
-v bitrate : The video bitrate to convert to.
Defaults are based on the size passed.
>= 2160: '30M'
>= 1440: '12M'
>= 1080: '5M'
>= 720: '2000k'
>= 480: '750k'
>= 360: '250k'
< 360: '100k'
>= 2160: '30M'
>= 1440: '12M'
>= 1080: '5M'
>= 720: '2000k'
>= 480: '750k'
>= 360: '250k'
< 360: '100k'
-a bitrate : The audio bitrate to convert to.
Defaults to '192k'.
-c vcodec : The video codec you'd like to use, such as libopenh264.

View File

@@ -12,6 +12,9 @@
"editor.tabSize": 3,
"editor.insertSpaces": false,
"files.insertFinalNewline": true,
"[html]": {
"files.insertFinalNewline": false
},
"files.trimFinalNewlines": true,
"git.confirmSync": false,

View File

@@ -125,17 +125,17 @@
- name: General | Account Management | Provisioning Configuration | General | Load
set_fact:
provision: "{{ lookup('ini', 'enable file={{gen_file}} default=false') }}"
provision: "{{ lookup('ini', 'enable file={{gen_file}} default=false') | bool }}"
user: "{{ lookup('ini', 'user file={{gen_file}} default=ling') }}"
user_desc: "{{ lookup('ini', 'user_desc file={{gen_file}} default=Hyperling') }}"
branch: "{{ lookup('ini', 'branch file={{gen_file}} default=main') }}"
pentesting: "{{ lookup('ini', 'pentesting file={{gen_file}} default=false') }}"
no_telem: "{{ lookup('ini', 'no_telem file={{gen_file}} default=false') }}"
battery: "{{ lookup('ini', 'battery file={{gen_file}} default=false') }}"
swap_block: "{{ lookup('ini', 'swap_block file={{gen_file}} default=false') }}"
pentesting: "{{ lookup('ini', 'pentesting file={{gen_file}} default=false') | bool }}"
no_telem: "{{ lookup('ini', 'no_telem file={{gen_file}} default=false') | bool }}"
battery: "{{ lookup('ini', 'battery file={{gen_file}} default=false') | bool }}"
swap_block: "{{ lookup('ini', 'swap_block file={{gen_file}} default=false') | bool }}"
swap_count: "{{ lookup('ini', 'swap_count file={{gen_file}} default=1') }}"
swap_file: "{{ lookup('ini', 'swap_file file={{gen_file}} default=/swapfile') }}"
sshd_port: "{{ lookup('ini', 'sshd_port file={{gen_file}} default=22') }}"
sshd_port: "{{ lookup('ini', 'sshd_port file={{gen_file}} default=22') }}"
git_host: "{{ lookup('ini', 'git_host file={{gen_file}} default=git.hyperling.com') }}"
git_user: "{{ lookup('ini', 'git_user file={{gen_file}} default=me') }}"
git_project: "{{ lookup('ini', 'git_project file={{gen_file}} default=env-ansible') }}"
@@ -179,6 +179,7 @@
; enable : Set to true for system to be considered a workstation.
;
; coding : Set to true for installation of code editors (VSCode, PyCharm, Android Studio)
; - sdks : Set to true to download additional SDKs to test against.
;
; editing : Set to true for installation of Audio/Video editors (Shotcut, Audacity, OBS Stdio, GIMP)
; Set to video for only the video related portions.
@@ -200,6 +201,9 @@
; mobile : Set to true if not using an amd64 processor.
; Also used to disable tasks not helpful for Pinephone.
;
; redmode : Set to true/false for automatially using Night Light in GNOME.
; Default: true
;
[global]
marker: '; {mark} MANAGED BY ANSIBLE | Workstation Config'
state: present
@@ -208,14 +212,16 @@
- name: General | Account Management | Provisioning Configuration | Workstation | Load
set_fact:
workstation: "{{ lookup('ini', 'enable file={{wrk_file}} default=false') }}"
coding: "{{ lookup('ini', 'coding file={{wrk_file}} default=false') }}"
editing: "{{ lookup('ini', 'editing file={{wrk_file}} default=false') }}"
gaming: "{{ lookup('ini', 'gaming file={{wrk_file}} default=false') }}"
rdp: "{{ lookup('ini', 'rdp 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') }}"
mobile: "{{ lookup('ini', 'mobile file={{wrk_file}} default=false') }}"
workstation: "{{ lookup('ini', 'enable file={{wrk_file}} default=false') | bool }}"
coding: "{{ lookup('ini', 'coding file={{wrk_file}} default=false') | bool }}"
sdks: "{{ lookup('ini', 'sdks file={{wrk_file}} default=false') | bool }}"
editing: "{{ lookup('ini', 'editing file={{wrk_file}} default=false') | bool }}"
gaming: "{{ lookup('ini', 'gaming file={{wrk_file}} default=false') | bool }}"
rdp: "{{ lookup('ini', 'rdp file={{wrk_file}} default=false') | bool }}"
vnc: "{{ lookup('ini', 'vnc file={{wrk_file}} default=false') | bool }}"
bsd_gpu: "{{ lookup('ini', 'bsd_gpu file={{wrk_file}} default=false') | bool }}"
mobile: "{{ lookup('ini', 'mobile file={{wrk_file}} default=false') | bool }}"
redmode: "{{ lookup('ini', 'redmode file={{wrk_file}} default=true' ) | bool }}"
- name: General | Account Management | Provisioning Configuration | Workstation | List
set_fact:
@@ -223,12 +229,14 @@
loop:
- { 'workstation': "{{ workstation }}" }
- { 'coding': "{{ coding }}" }
- { 'sdks': "{{ sdks }}" }
- { 'editing': "{{ editing }}" }
- { 'gaming': "{{ gaming }}" }
- { 'rdp': "{{ rdp }}" }
- { 'vnc': "{{ vnc }}" }
- { 'bsd_gpu': "{{ bsd_gpu }}" }
- { 'mobile': "{{ mobile }}" }
- { 'redmode': "{{ redmode }}" }
# No longer mining, this is now considered deprecated.
### Miner ##
@@ -280,18 +288,18 @@
#
#- name: General | Account Management | Provisioning Configuration | Miner | Load
# set_fact:
# miner: "{{ lookup('ini', 'enable file={{mnr_file}} default=false') }}"
# amdgpu: "{{ lookup('ini', 'amdgpu 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_pool: "{{ lookup('ini', 'nanominer_cpu_pool 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_gpu_pool: "{{ lookup('ini', 'nanominer_gpu_pool 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') }}"
# nvidia: "{{ lookup('ini', 'nvidia file={{mnr_file}} default=false') }}"
# xmr_stak_cpu: "{{ lookup('ini', 'xmr_stak_cpu file={{mnr_file}} default=false') }}"
# miner: "{{ lookup('ini', 'enable file={{mnr_file}} default=false') | bool }}"
# amdgpu: "{{ lookup('ini', 'amdgpu file={{mnr_file}} default=false') | bool }}"
# nanominer: "{{ lookup('ini', 'nanominer file={{mnr_file}} default=false') | bool }}"
# nanominer_cpu: "{{ lookup('ini', 'nanominer_cpu file={{mnr_file}} default=false') | bool }}"
# nanominer_cpu_pool: "{{ lookup('ini', 'nanominer_cpu_pool file={{mnr_file}} default=false') | bool }}"
# nanominer_gpu: "{{ lookup('ini', 'nanominer_gpu file={{mnr_file}} default=false') | bool }}"
# nanominer_gpus: "{{ lookup('ini', 'nanominer_gpus file={{mnr_file}} default=false') | bool }}"
# nanominer_gpu_pool: "{{ lookup('ini', 'nanominer_gpu_pool file={{mnr_file}} default=false') | bool }}"
# eth_minhashrate: "{{ lookup('ini', 'eth_minhashrate file={{mnr_file}} default=false') | bool }}"
# ethminer: "{{ lookup('ini', 'ethminer file={{mnr_file}} default=false') | bool }}"
# nvidia: "{{ lookup('ini', 'nvidia file={{mnr_file}} default=false') | bool }}"
# xmr_stak_cpu: "{{ lookup('ini', 'xmr_stak_cpu file={{mnr_file}} default=false') | bool }}"
#
#- name: General | Account Management | Provisioning Configuration | Miner | List
# set_fact:
@@ -349,14 +357,14 @@
- name: General | Account Management | Provisioning Configuration | Server | Load
set_fact:
server: "{{ lookup('ini', 'enable file={{srv_file}} default=false') }}"
server: "{{ lookup('ini', 'enable file={{srv_file}} default=false') | bool }}"
domain: "{{ lookup('ini', 'domain file={{srv_file}} default=hyperling.com') }}"
onlyoffice: "{{ lookup('ini', 'onlyoffice file={{srv_file}} default=false') }}"
grafana: "{{ lookup('ini', 'grafana file={{srv_file}} default=false') }}"
influxdb1: "{{ lookup('ini', 'influxdb1 file={{srv_file}} default=false') }}"
influxdb2: "{{ lookup('ini', 'influxdb2 file={{srv_file}} default=false') }}"
certbot: "{{ lookup('ini', 'certbot file={{srv_file}} default=false') }}"
hugo: "{{ lookup('ini', 'hugo file={{srv_file}} default=false') }}"
onlyoffice: "{{ lookup('ini', 'onlyoffice file={{srv_file}} default=false') | bool }}"
grafana: "{{ lookup('ini', 'grafana file={{srv_file}} default=false') | bool }}"
influxdb1: "{{ lookup('ini', 'influxdb1 file={{srv_file}} default=false') | bool }}"
influxdb2: "{{ lookup('ini', 'influxdb2 file={{srv_file}} default=false') | bool }}"
certbot: "{{ lookup('ini', 'certbot file={{srv_file}} default=false') | bool }}"
hugo: "{{ lookup('ini', 'hugo file={{srv_file}} default=false') | bool }}"
- name: General | Account Management | Provisioning Configuration | Server | List
set_fact:

View File

@@ -436,6 +436,7 @@
docker compose up -d
if [[ -n "$1" ]]; then
echo "Following logs of '$1':"
docker logs -f $1
fi
@@ -458,6 +459,7 @@
docker compose up -d
if [[ -n "$1" ]]; then
echo "Following logs of '$1':"
docker logs -f $1
fi
@@ -524,6 +526,7 @@
docker compose up -d
if [[ -n "$1" ]]; then
echo "Following logs of '$1':"
docker logs -f $1
fi
@@ -547,6 +550,7 @@
done
echo -e "\nDone!"
'
alias code-sync='code-check'
alias_code_reset: |
alias code-reset='
ls -d ~/Code/* | while read project
@@ -566,6 +570,7 @@
env-ansible dev
env-docker dev
env-termux dev
env-obtainium-hyperling dev
nodejs-website dev
ebook-health-protocol dev
flutter-expense-tracker dev
@@ -573,6 +578,13 @@
nodejs-social-traveler-server dev
misc-spare-change main
flutter-buddy-website dev
flutter-sunset-alarm dev
android-infinite-timer dev
android-carb-up dev
android-hypergames dev
android-45-minute-rule dev
android-tictactoe dev
hugo-jackanope dev
EOF
}
function code-reseed {
@@ -720,6 +732,110 @@
alias_permission_commands: |
alias chown='chown -c'
alias chmod='chmod -c'
alias_iftop: |
alias iftop='sudo iftop'
alias_ls: |
alias l='ls'
alias ll='ls -alh'
alias_progs: |
alias progs='ps -ef'
alias_nethogs: |
alias nethogs='sudo nethogs'
alias_ansible_facts: |
alias ansible-facts='ansible localhost -m setup --connection=local'
function_now: |
function now {
date "+%Y%m%d_%H%M%S"
}
function_backup: |
function backup {
EXTRA="$1"
BACKUP_DIR="/tmp"
BACKUP_FILENAME="Backup-`now`.zip"
BACKUP="$BACKUP_DIR/$BACKUP_FILENAME"
echo "*** Creating backup at '$BACKUP' ***"
sudo zip -rv "$BACKUP" \
/etc /var/{log,mail,spool} /srv /boot \
/usr/local/etc $EXTRA
status="$?"
if [[ "$status" != 0 ]]; then
echo "*** ERROR: Failed to create '$BACKUP', file may be incorrect. ***"
fi
if [[ -e "$BACKUP" ]]; then
ls -alh "$BACKUP"
echo "*** '$BACKUP' created successfully! ***"
else
echo "*** '$BACKUP' not found! ***"
fi
}
function_debian_upgrade: |
function debian-upgrade {
typeset -l OLD NEW
OLD="$1"
NEW="$2"
echo "*** Upgrading from '$OLD' to '$NEW' ***"
if [[ -z "$OLD" || -z "$NEW" ]]; then
echo -n "ERROR: Please pass the OLD and NEW version names"
echo ", such as 'debian-upgrade bookworm trixie'. "
return 1
fi
echo "*** Running 'backup' before starting upgrade. ***"
sleep 1
backup
echo "*** Listing the current apt listing for '$OLD' ***"
sudo grep "$OLD" /etc/apt/sources.list /etc/apt/sources.list.d/*
echo -en "\nAre these the entries you'd like changed to '$NEW'? (y/N) "
typeset -u confirm_change
read confirm_change
if [[ -z "$confirm_change" || "$confirm_change" == "N"* ]]; then
echo "*** Aborting upgrade, change rejected. ***"
return 1
fi
unset confirm_change
echo "*** Continuing with upgrade. ***"
sudo sed -i "s/$OLD/$NEW/g" /etc/apt/sources.list
find /etc/apt/sources.list.d -name "*.list" \
-exec sudo sed -i "s/$OLD/$NEW/g" {} \;
sudo grep $OLD /etc/apt/sources.list /etc/apt/sources.list.d/*
sudo grep $NEW /etc/apt/sources.list /etc/apt/sources.list.d/*
echo -en "\nDo the source files look correct? (y/N) "
typeset -u confirm_correct
read confirm_correct
if [[ -z "$confirm_correct" || "$confirm_correct" == "N"* ]]; then
echo "*** Aborting upgrade, confirmation rejected. ***"
return 1
fi
unset confirm_correct
echo "*** Starting the upgrade. ***"
sleep 1
sudo apt update
sudo apt upgrade --without-new-pkgs
echo "*** Upgrades complete, now add new packages. ***"
sleep 1
sudo apt full-upgrade
echo "*** New packages complete, clean apt files. ***"
sleep 1
sudo apt autoremove --purge
sudo apt clean
echo "*** All done! '$OLD' is now '$NEW'. Please reboot. ***"
sleep 1
unset OLD NEW
}
alias upgrade-debian="debian-upgrade"
- name: General | Account Management | Users | Files | Common Variable
set_fact:
@@ -783,6 +899,14 @@
{{ function_update_sdks }}
{{ function_ansible_vars }}
{{ alias_permission_commands }}
{{ alias_iftop }}
{{ alias_ls }}
{{ alias_progs }}
{{ alias_nethogs }}
{{ alias_ansible_facts }}
{{ function_now }}
{{ function_backup }}
{{ function_debian_upgrade }}
- name: General | Account Management | Users | Files | .bashrc
blockinfile:

View File

@@ -6,13 +6,22 @@
metasploit_installer: msfinstall
when: ansible_system in ("Linux", "Darwin")
- name: General | Software | Metasploit | Refresh Apt Files
shell: "{{ item }}"
loop:
- "mkdir -p /tmp/apt/"
- "mv -fv /usr/share/keyrings/metasploit-framework.gpg /tmp/apt/metasploit-framework.gpg.old"
- "mv -fv /etc/apt/sources.list.d/metasploit-framework.list /tmp/apt/metasploit-framework.list.old"
- "mv -fv /etc/apt/preferences.d/pin-metasploit.pref /tmp/apt/pin-metasploit.pref.old"
when: ansible_system in ("Linux")
ignore_errors: true
- name: General | Software | Metasploit | Install
shell: "{{ item }}"
loop:
- "mv -fv /usr/share/keyrings/metasploit-framework.gpg /usr/share/keyrings/metasploit-framework.gpg.old"
- "curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > {{ metasploit_installer }}"
- "chmod 755 {{ metasploit_installer }}"
- "mkdir -p {{ global_bin }}"
- "mv -fv ./msfinstall {{ global_bin }}/{{ metasploit_installer }}"
- "{{ global_bin }}/{{ metasploit_installer }}"
- yes y | "{{ global_bin }}/{{ metasploit_installer }}"
when: ansible_system in ("Linux", "Darwin")

View File

@@ -43,7 +43,7 @@
- bash
- sudo
- nmap
- neofetch
- "{{ neofetch }}"
- "{{ sshfs }}"
- "{{ locate }}"
- zsh
@@ -56,6 +56,10 @@
- "{{ cron }}"
- "{{ encfs }}"
- rsync
- "{{ iftop }}"
- "{{ nethogs }}"
- "{{ ntp_server }}"
- "{{ dig }}"
state: present
- name: General | Software | Packages | Install Software (DEV)
@@ -138,14 +142,6 @@
when: ansible_distribution != "Ubuntu"
ignore_errors: yes
- name: General | Software | Packages | GS Connect (KDE Connect, Android Tool)
package:
name:
- gnome-shell-extension-gsconnect
state: present
when: ansible_distribution in ("Debian")
ignore_errors: yes
- name: General | Software | Packages | Other Debian Packages
package:
name:

View File

@@ -9,6 +9,11 @@
pattern: "{{ crond_pattern }}"
state: started
enabled: yes
when: ansible_virtualization_type != 'docker'
register: cron_status
until: cron_status.state == "started"
retries: 3
delay: 3
## CUPS ##
@@ -76,6 +81,11 @@
pattern: "{{ sshd_pattern }}"
state: reloaded
enabled: yes
when: ansible_virtualization_type != 'docker'
register: sshd_status
until: sshd_status.state == "started"
retries: 3
delay: 3
## JournalCTL ##
@@ -96,3 +106,17 @@
state: stopped
enabled: no
ignore_errors: yes
## NTP ##
- name: General | Software | Services | NTP | Enable
service:
name: "{{ ntp_server }}"
pattern: "{{ ntp_server }}"
state: started
enabled: yes
when: ansible_virtualization_type != 'docker'
register: ntp_status
until: ntp_status.state == "started"
retries: 3
delay: 3

View File

@@ -9,6 +9,9 @@
- name: General | Software | Swap | Check For Swapfile
stat:
path: "{{ swap_file }}"
get_attributes: false
get_checksum: false
get_mime: false
register: swap_check
- name: General | Software | Swap | Install Block

View File

@@ -13,8 +13,9 @@
git:
repo: https://github.com/CISOfy/lynis
dest: "{{ lynis_install_dir }}"
clone: yes
force: yes
clone: true
force: true
update: true
ignore_errors: yes
- name: General | Tests | Lynis | Ensure Permissions (Looking at you Parrot OS!)

View File

@@ -121,7 +121,7 @@
when: amdgpu_install.failed and hwe_kernel.stdout != "0"
- name: Miner | Driver | AMDGPU | Update + Clean System
shell: "apt update; apt dist-upgrade -y; apt autoremove -y"
shell: "apt update; apt dist-upgrade -y; apt autoremove --purge -y"
when: amdgpu_install.failed and hwe_kernel.stdout != "0"
# This is to ensure we can test adding `apt install --install-recommends linux-generic` later

View File

@@ -17,6 +17,7 @@
android_url: "https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip"
android_download_file: "{{ user_user.home }}/Downloads/android-cmdline-tools.tar.xz"
android_sdk_location: "{{ user_user.home }}/SDKs/Android/Sdk"
android_report_file: "{{ user_user.home }}/Reports/{{ ansible_hostname }}.sdk.android.txt"
- name: Workstation | Linux | Software | Android | Facts [2/3]
set_fact:
@@ -29,23 +30,142 @@
android_sdkmanager_temp: "{{ android_sdk_cmdline_temp }}/cmdline-tools/bin/sdkmanager"
android_sdkmanager_final: "{{ android_sdk_cmdline_final }}/sdkmanager"
# Regarding images to download; the `default` is the smallest, then `playstore`.
# The `google_apis` images are significantly larger than the `playstore` option.
#
# This script was used to download and test the sizes:
#
### #!/bin/bash
###
### cd /home/ling/SDKs/Android/Sdk/cmdline-tools/latest/bin
###
### # Actually to be used
### echo "35 Play Store"
### ./sdkmanager --install "system-images;android-35;google_apis_playstore;x86_64"
### echo "36 Play Store"
### ./sdkmanager --install "system-images;android-36;google_apis_playstore;x86_64"
###
### # FORTESTING file size
### echo "35 AOSP"
### ./sdkmanager --install "system-images;android-35;default;x86_64"
### echo "36 APIs Only"
### ./sdkmanager --install "system-images;android-36;google_apis;x86_64"
### echo "35 APIs Only"
### ./sdkmanager --install "system-images;android-35;google_apis;x86_64"
###
### exit 0
#
# These were the results:
#
### ~/SDKs/Android/Sdk/system-images]$ du -had2 | sort -h
### 1.7G ./android-35/default
### 2.2G ./android-35/google_apis_playstore
### 2.3G ./android-36/google_apis_playstore
### 3.5G ./android-35/google_apis
### 4.3G ./android-36/google_apis
### 6.6G ./android-36
### 7.3G ./android-35
### 14G .
- name: Workstation | Linux | Software | Android | Facts [Downloads]
set_fact:
android_downloads_required:
### 36 ###
- build-tools;36.0.0
- platforms;android-36
- sources;android-36
# Images
#- system-images;android-35;default;x86_64 # TODO: Switch once it exists.
- system-images;android-36;google_apis_playstore;x86_64
### 16 ###
- platforms;android-16
- sources;android-16
# Images
- system-images;android-16;default;x86
android_downloads_additional:
### 35 ###
- platforms;android-35
- sources;android-35
# Images
- system-images;android-35;default;x86_64
### 34 ###
- platforms;android-34
- sources;android-34
# Images
- system-images;android-34;default;x86_64
### 33 ###
- platforms;android-33
- sources;android-33
# Images
- system-images;android-33;default;x86_64
### 30 ###
- platforms;android-30
- sources;android-30
# Images
- system-images;android-30;default;x86_64
### 27 ###
- platforms;android-27
- sources;android-27
# Images
- system-images;android-27;default;x86_64
### 21 ###
- platforms;android-21
- sources;android-21
# Images
- system-images;android-21;default;x86_64
android_downloads_unused:
### 36 ###
# Images
- system-images;android-36;google_apis;x86_64
### 35 ###
- build-tools;35.0.0
- build-tools;35.0.1
# Images
- system-images;android-35;aosp_atd;x86_64 # ATD = Automated Test Device
- system-images;android-35;google_apis;x86_64
- system-images;android-35;google_apis_playstore;x86_64
### 34 ###
- build-tools;34.0.0
- platforms;android-34
- sources;android-34
# Images
- system-images;android-34;google_apis;x86_64
- system-images;android-34;google_apis_playstore;x86_64
### 16 ###
# Images
- system-images;android-16;google_apis;x86
### 15 ###
- platforms;android-15
- sources;android-15
# Images
- system-images;android-15;default;x86 # Not working in Android AVDs
## Checks ##
- name: Workstation | Linux | Software | Android | Check SDK Manager Exists [1/2]
stat:
path: "{{ android_sdkmanager_temp }}"
get_attributes: false
get_checksum: false
get_mime: false
register: android_sdkmanager_temp_stat
when: coding == true
- name: Workstation | Linux | Software | Android | Check SDK Manager Exists [2/2]
stat:
path: "{{ android_sdkmanager_final }}"
get_attributes: false
get_checksum: false
get_mime: false
register: android_sdkmanager_final_stat
when: coding == true
- name: Workstation | Linux | Software | Android | Check Download Exists
stat:
path: "{{ android_download_file }}"
get_attributes: false
get_checksum: false
get_mime: false
register: android_download_stat
when: coding == true
@@ -111,7 +231,7 @@
## Configure Modules ##
# This can only be run once, otherwise cmdline-tools creates latest-* folders.
- name: Workstation | Linux | Software | Android | Install Consistent Modules
- name: Workstation | Linux | Software | Android | Install | Consistent Modules
shell: "yes | {{ android_sdkmanager_temp }} --install '{{ item }}' --sdk_root={{ android_sdk_location }}"
loop:
# Current
@@ -122,31 +242,47 @@
when: coding == true and not android_sdkmanager_final_stat.stat.exists
# These are safe to run multiple times, and uses the new `latest` version.
- name: Workstation | Linux | Software | Android | Install Modules
- name: Workstation | Linux | Software | Android | Install | Required Modules
shell: "yes | {{ android_sdkmanager_final }} --install '{{ item }}' --sdk_root={{ android_sdk_location }}"
loop:
# 34
- build-tools;34.0.0
- platforms;android-34
- sources;android-34
# 35
- build-tools;35.0.0
- build-tools;35.0.1
- platforms;android-35
- sources;android-35
# Images
#- system-images;android-35;default;x86_64
#- system-images;android-35;aosp_atd;x86_64
- system-images;android-35;google_apis_playstore;x86_64
loop: "{{ android_downloads_required }}"
become_user: "{{ user }}"
when: coding == true
# Add more versions for testing across all the important platforms.
- name: Workstation | Linux | Software | Android | Install | Additional Modules
shell: "yes | {{ android_sdkmanager_final }} --install '{{ item }}' --sdk_root={{ android_sdk_location }}"
loop: "{{ android_downloads_additional }}"
become_user: "{{ user }}"
when: coding == true and sdks == true
# Remove extra downloads if system is not meant for full amount of testing.
- name: Workstation | Linux | Software | Android | Uninstall | Additional Modules
shell: "yes | {{ android_sdkmanager_final }} --uninstall '{{ item }}' --sdk_root={{ android_sdk_location }}"
loop: "{{ android_downloads_additional }}"
become_user: "{{ user }}"
when: coding != true or sdks != true
# Remove any versions which used to be part of this script and no longer used.
- name: Workstation | Linux | Software | Android | Uninstall | Unused Modules
shell: "yes | {{ android_sdkmanager_final }} --uninstall '{{ item }}' --sdk_root={{ android_sdk_location }}"
loop: "{{ android_downloads_unused }}"
become_user: "{{ user }}"
when: coding == true
# Report the currently installed packges.
- name: Workstation | Linux | Software | Android | Report Modules
shell: "{{ android_sdkmanager_final }} --list_installed --sdk_root={{ android_sdk_location }} > {{ android_report_file }}"
become_user: "{{ user }}"
when: coding == true
## Flutter and Licenses ##
- name: Workstation | Linux | Software | Android | Inform Flutter
shell: "{{ flutter }} config --android-sdk={{ android_sdk_location }}"
become_user: "{{ user }}"
when: coding == true
- name: Workstation | Linux | Software | Android | Licenses Agreements [1/2]
- name: Workstation | Linux | Software | Android | License Agreements [1/2]
shell: "yes | {{ android_sdkmanager_final }} --licenses --sdk_root={{ android_sdk_location }}"
become_user: "{{ user }}"
when: coding == true

View File

@@ -40,11 +40,13 @@
- { app: "org.mozilla.firefox", name: "firefox-flatpak", extra: "" }
- { app: "com.transmissionbt.Transmission", name: "transmission", extra: "" }
- { app: "org.gimp.GIMP", name: "gimp", extra: "" }
- { app: "org.telegram.desktop", name: "telegram", extra: "" }
- { app: "im.riot.Riot", name: "element", extra: "" }
- { app: "chat.simplex.simplex", name: "simplex", extra: "" }
flatpaks_coding:
- { app: "com.vscodium.codium", name: "codium-flatpak", extra: "" }
- { app: "com.google.AndroidStudio", name: "android-studio", extra: "" }
- { app: "io.dbeaver.DBeaverCommunity", name: "dbeaver", extra: "" }
- { app: "org.godotengine.Godot", name: "godot", extra: "" }
- { app: "com.visualstudio.code-oss", name: "code", extra: "" }
flatpaks_editing_video:
- { app: "org.shotcut.Shotcut", name: "shotcut", extra: "" }
@@ -67,14 +69,13 @@
- { app: "org.audacityteam.Audacity", name: "audacity", extra: "" } # Say "no thanks" to spyware.
- { app: "com.discordapp.Discord", name: "discord", extra: "" } # Stopped working, just spins and says Starting.
# 2022-11-20 No longer using any of these and they're taking up a lot of space. #
- { app: "im.riot.Riot", name: "element", extra: "" }
- { app: "org.telegram.desktop", name: "telegram", extra: "" }
- { app: "com.jetbrains.PyCharm-Community", name: "pycharm", extra: "" }
# End 2022-11-20 #
- { app: "io.lbry.lbry-app", name: "lbry", extra: "dbus-launch" } # No longer supported, noticed 2023-09-01.
- { app: "chat.delta.desktop", name: "deltachat", extra: "" } # No longer used, removed 2023-12-18.
- { app: "org.gnome.Geary", name: "geary", extra: "" } # No longer used, removed 2024-12-15
- { app: "org.rncbc.qsynth", name: "qsynth", extra: "" } # 2024-12-15, Not worth the setup, use LMMS or VMPK.
- { app: "org.godotengine.Godot", name: "godot", extra: "" } # 20250831 Stopped playing with this months / years ago.
# Generic #

View File

@@ -8,7 +8,7 @@
flutter_url: "https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.27.2-stable.tar.xz"
flutter_download_file: "{{ user_user.home }}/Downloads/flutter.tar.xz"
flutter_sdk_location: "{{ user_user.home }}/SDKs/Flutter"
flutter_report: "{{ user_user.home }}/Reports/flutter.txt"
flutter_report: "{{ user_user.home }}/Reports/{{ ansible_hostname }}.sdk.flutter.txt"
when: coding == true
- name: Workstation | Linux | Software | Flutter | Facts [2/4]
@@ -36,12 +36,18 @@
- name: Workstation | Linux | Software | Flutter | Check SDK Exists
stat:
path: "{{ flutter_sdk_location }}"
get_attributes: false
get_checksum: false
get_mime: false
register: flutter_sdk_stat
when: coding == true
- name: Workstation | Linux | Software | Flutter | Check Download Exists
stat:
path: "{{ flutter_download_file }}"
get_attributes: false
get_checksum: false
get_mime: false
register: flutter_download_stat
when: coding == true

View File

@@ -15,6 +15,9 @@
- name: Workstation | Linux | Software | Lutris | Check PPA
stat:
path: "{{ lutris_source_list }}"
get_attributes: false
get_checksum: false
get_mime: false
register: lutris_source_exists
when: ansible_pkg_mgr == "apt"

View File

@@ -39,8 +39,17 @@
- "{{ evolution }}"
- "{{ evolution }}*"
- gparted
- hugo
state: present
- name: Workstation | Linux | Software | Packages | GS Connect (KDE Connect, Android Tool)
package:
name:
- gnome-shell-extension-gsconnect
state: present
when: ansible_distribution in ("Debian")
ignore_errors: yes
# Remove Repo Software #
- name: Workstation | Linux | Software | Packages | Remove Applications

View File

@@ -22,6 +22,9 @@
- name: Workstation | Linux | Software | VS Codium | Check PPA
stat:
path: "{{ vscodium_source_list }}"
get_attributes: false
get_checksum: false
get_mime: false
register: vscodium_source_exists
when: ansible_pkg_mgr == "apt"

View File

@@ -217,7 +217,12 @@
dconf write /org/gnome/desktop/notifications/application/org-gnome-evolution/enable-sound-alerts false && inc_dconf &&
dconf write /org/gnome/desktop/notifications/application/org-gnome-evolution/enable false && inc_dconf &&
dconf write /org/gnome/settings-daemon/plugins/color/night-light-enabled true
# Red Mode (Night Light)
typeset -l redmode
redmode="{{ redmode }}"
if [[ $redmode == "true" ]]; then
dconf write /org/gnome/settings-daemon/plugins/color/night-light-enabled true
fi
dconf write /org/gnome/settings-daemon/plugins/color/night-light-schedule-automatic false
dconf write /org/gnome/settings-daemon/plugins/color/night-light-temperature "uint32 3170"
dconf write /org/gnome/settings-daemon/plugins/color/night-light-schedule-from 2.0