Compare commits
	
		
			76 Commits
		
	
	
		
			ad6601f17e
			...
			prod
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 0d3931d738 | |||
| 7c93f25a5d | |||
| 8445b64d6b | |||
| 8dfb3fe2a6 | |||
| 5b749d2100 | |||
| 57ca267aa5 | |||
| 2ca308c287 | |||
| 40ee72b587 | |||
| 13bc98d7ef | |||
| d916637798 | |||
| 71d236d0ba | |||
| d81c424878 | |||
| 73e527640f | |||
| aa3075a9fc | |||
| 89cdf8157f | |||
| 4e0ff86295 | |||
| 305b8df6ff | |||
| 6a78933875 | |||
| 7095636915 | |||
| 80bba3b21b | |||
| d98bbb02a9 | |||
| 00c87328ab | |||
| b4cdea984e | |||
| 4651726268 | |||
| 3410cf4426 | |||
| d5393f60f3 | |||
| 5f882df33f | |||
| 0dfbd0bd68 | |||
| 0d5b095ad6 | |||
| 07e32decf8 | |||
| afc3b20785 | |||
| ed160da316 | |||
| 2f08b1414e | |||
| c279884da2 | |||
| df8b330893 | |||
| 08a7a22dde | |||
| 57243f65e3 | |||
| 35469851b3 | |||
| 2cf4a348c3 | |||
| 4a33adf073 | |||
| fb00d3e6bc | |||
| 267a260e90 | |||
| 03b9f7e1b2 | |||
| 57dc62a74a | |||
| f7c321bf23 | |||
| 130b243be3 | |||
| 400ef8400c | |||
| d35d9ccdd2 | |||
| a730919b43 | |||
| 4e9e714504 | |||
| c0ba27e782 | |||
| 6d2a822323 | |||
| a8e6e0b6c6 | |||
| 93b919f48b | |||
| 215e7dee69 | |||
| 70ac7bff94 | |||
| 54589ca033 | |||
| 2dd0303176 | |||
| 411f203024 | |||
| 9f22385040 | |||
| 103a79a7ee | |||
| 602376df5f | |||
| 95c87448c8 | |||
| df5421defe | |||
| 1e7e11ed91 | |||
| 07dc365410 | |||
| c248a3c048 | |||
| 16466fb0c8 | |||
| 86e3f40d36 | |||
| 8038e10364 | |||
| 295f29dece | |||
| 8181ee0848 | |||
| c87c4468b3 | |||
| e19902074a | |||
| c12b54d0dc | |||
| a5023b2ef7 | 
| @@ -27,9 +27,13 @@ | ||||
|     cron: cron | ||||
|     encfs: encfs | ||||
|     dig: dnsutils | ||||
|     neofetch: fastfetch | ||||
|   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 | ||||
| @@ -105,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 ***" && | ||||
| @@ -120,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 | ||||
|   | ||||
| @@ -8,7 +8,7 @@ | ||||
|     st_install_dir: /usr/local/src/st | ||||
|     global_bin: /usr/local/bin | ||||
|     x_desktops: /usr/share/xsessions | ||||
|     git_repo_http: http://{{ git_host }}/{{ git_user }}/{{ git_project }} | ||||
|     git_repo_http: https://{{ git_host }}/{{ git_user }}/{{ git_project }} | ||||
|     git_repo_ssh: ssh://git@{{ git_host }}:{{ git_ssh_port }}/{{ git_user }}/{{ git_project }} | ||||
|  | ||||
|  | ||||
|   | ||||
							
								
								
									
										57
									
								
								files/scripts/backup_system.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										57
									
								
								files/scripts/backup_system.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,57 @@ | ||||
| #!/usr/bin/env bash | ||||
|  | ||||
| ## Variables ## | ||||
|  | ||||
| if [[ -z "$HOSTNAME" ]]; then | ||||
| 	echo "*** Pulling Hostname From Command ***" | ||||
| 	export HOSTNAME="`hostname`" | ||||
| fi | ||||
| if [[ -z "$HOSTNAME" ]]; then | ||||
| 	echo "*** Pulling Hostname From /etc/ File ***" | ||||
| 	export HOSTNAME="`cat /etc/hostname`" | ||||
| fi | ||||
|  | ||||
| EXTRA="$1" | ||||
| TAG="System" | ||||
| DATE="`date "+%Y%m%d-%H%M%S"`" | ||||
| BACKUP_DIR="/srv/backup" | ||||
| BASENAME="Backup" | ||||
| BACKUP="$BACKUP_DIR/$BASENAME.$DATE.$HOSTNAME.$TAG.zip" | ||||
|  | ||||
| ## Initialization ## | ||||
|  | ||||
| echo "*** Creating Backup Directory ***" | ||||
| sudo mkdir -pv "$BACKUP_DIR" | ||||
| sudo mkdir -pv "$BACKUP_DIR/TRASH" | ||||
| sudo chmod -Rv 775 "$BACKUP_DIR" | ||||
| sudo chown -Rv root:root "$BACKUP_DIR" | ||||
|  | ||||
| ## Cleanup ## | ||||
|  | ||||
| echo "*** Removing Old Backups ***" | ||||
| cd "$BACKUP_DIR" | ||||
| sudo mv -v "$BASENAME"*"$TAG"* TRASH/ | ||||
| sudo rm -v TRASH/* | ||||
|  | ||||
| ## Main | ||||
|  | ||||
| echo "*** Creating backup at '$BACKUP' ***" | ||||
| sudo zip -rv "$BACKUP" \ | ||||
| 	/etc /var/{log,mail,spool} /srv /boot \ | ||||
| 	/usr/local/etc $EXTRA \ | ||||
| 	-x "/srv/backup/*" | ||||
| 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! ***" | ||||
| 	exit 1 | ||||
| fi | ||||
|  | ||||
| exit 0 | ||||
| @@ -132,7 +132,7 @@ | ||||
|     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_block: "{{ lookup('ini', 'swap_block file={{gen_file}} default=false') }}" | ||||
|     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') }}" | ||||
| @@ -215,7 +215,7 @@ | ||||
|     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 }}" | ||||
|     editing:     "{{ lookup('ini', 'editing file={{wrk_file}} default=false') }}" | ||||
|     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 }}" | ||||
|   | ||||
| @@ -283,6 +283,19 @@ | ||||
|       alias edit-config-wrk="sudo $EDITOR {{ wrk_file }}" | ||||
|       alias edit-config-mnr="sudo $EDITOR {{ mnr_file }}" | ||||
|       alias edit-config-srv="sudo $EDITOR {{ srv_file }}" | ||||
|     function_clean_trashed: | | ||||
|       function clean-trashed { | ||||
|         dir="$1" | ||||
|         if [[ -z $dir ]]; then | ||||
|           dir="./" | ||||
|         fi | ||||
|         cd $dir | ||||
|         dir="`pwd`" | ||||
|         echo "Removing '.trashed*' files in '$dir'." | ||||
|         find "$dir" -name ".trashed*" -exec du -h {} \; -delete | sort -h | ||||
|       } | ||||
|       alias trashed-cleanup="clean-trashed" | ||||
|       alias trashed-clean="clean-trashed" | ||||
|     function_check_trash: | | ||||
|       function check-trash() { | ||||
|         unset OPTIND | ||||
| @@ -378,6 +391,9 @@ | ||||
|         fi | ||||
|         echo "Checking but not cleaning /var/mail..." | ||||
|         du -ha /var/mail | sort -h | ||||
|         if [[ $clean == "Y" ]]; then | ||||
|           clean-trashed "~/" | ||||
|         fi | ||||
|         return 0 | ||||
|       } | ||||
|       alias check_trash="check-trash" | ||||
| @@ -386,18 +402,20 @@ | ||||
|     alias_trash_clean: alias trash-clean='trash-check --clean' | ||||
|     alias_clean_dir: | | ||||
|       function clean-dir() { | ||||
|         sudo du -hs | ||||
|         clean_dir="`date '+%Y%m%d_%H%M%S'`_CLEANED" | ||||
|         trash_dir="$HOME/TRASH/$clean_dir" | ||||
|         curr_dir="`pwd`" | ||||
|         mkdir -pv "$trash_dir" | ||||
|         echo "$curr_dir is being cleaned at `date`." | tee "$trash_dir"/INFO.txt | ||||
|         mv -v ..?* .[!.]* * "$trash_dir"/ | tee -a "$trash_dir"/INFO.txt | ||||
|         sudo du -hs | ||||
|       } | ||||
|     function_clean: | | ||||
|       function clean() { | ||||
|         sudo du -hs | ||||
|         clean-dir | ||||
|         sudo du -hs | ||||
|         clean-trash | ||||
|         clean-code | ||||
|         clean-backups | ||||
|       } | ||||
|     function_flatpak_usage: | | ||||
|       function flatpak-usage() { | ||||
| @@ -409,6 +427,10 @@ | ||||
|           fi | ||||
|         done | sort -n | ||||
|       } | ||||
|       alias flatpak-info="flatpak-usage" | ||||
|       alias flatpak-space="flatpak-usage" | ||||
|       alias flatpak-size="flatpak-usage" | ||||
|       alias flatpak-sizes="flatpak-usage" | ||||
|     function_flatpak_purge: | | ||||
|       function flatpak-purge() { | ||||
|         flatpak remove --all --delete-data && | ||||
| @@ -542,6 +564,16 @@ | ||||
|           echo -e "\n*** `basename $project` ***" | ||||
|           cd $project | ||||
|           if [[ -d .git ]]; then | ||||
|             git ls-remote --exit-code --heads origin dev | ||||
|             dev_exists="$?" | ||||
|             if [[ "$dev_exists" == 0 ]]; then | ||||
|               git switch dev | ||||
|             elif [[ "$dev_exists" == 2 ]]; then | ||||
|               git switch main | ||||
|             else | ||||
|               echo "ERROR: Unknown status for dev_exists, '$dev_exists'." | ||||
|               continue | ||||
|             fi | ||||
|             git pull | ||||
|             git push | ||||
|           else | ||||
| @@ -573,6 +605,11 @@ | ||||
|           env-obtainium-hyperling dev | ||||
|           nodejs-website dev | ||||
|           ebook-health-protocol dev | ||||
|           ebook-freedom-flyer dev | ||||
|           ebook-technology-alternatives dev | ||||
|           ebook-narcissism-healing dev | ||||
|           ebook-forest-howto dev | ||||
|           ebook-template main | ||||
|           flutter-expense-tracker dev | ||||
|           flutter-social-traveler-app dev | ||||
|           nodejs-social-traveler-server dev | ||||
| @@ -585,6 +622,7 @@ | ||||
|           android-45-minute-rule dev | ||||
|           android-tictactoe dev | ||||
|           hugo-jackanope dev | ||||
|           hugo-website dev | ||||
|       EOF | ||||
|       } | ||||
|       function code-reseed { | ||||
| @@ -677,6 +715,9 @@ | ||||
|         done | ||||
|         cd | ||||
|  | ||||
|         echo -e "******* PDFs *******" | ||||
|         find ~/Code/ebook-* -name "*.pdf" -exec du -h {} \; -delete | sort -h | ||||
|  | ||||
|         echo -e "\n*** Done! ***" | ||||
|       } | ||||
|       alias code-clean="clean-code" | ||||
| @@ -737,10 +778,181 @@ | ||||
|     alias_ls: | | ||||
|       alias l='ls' | ||||
|       alias ll='ls -alh' | ||||
|       alias lh='ls -ash' | ||||
|     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 today { | ||||
|         date "+%Y%m%d" | ||||
|       } | ||||
|     function_backup: | | ||||
|       function backup { | ||||
|         /usr/local/bin/backup_system.sh | ||||
|       } | ||||
|       alias backup-system="backup" | ||||
|       alias system-backup="backup" | ||||
|       alias check-backups="ll /srv/backup" | ||||
|       function clean-backup { | ||||
|         sh -c "rm -rfv /srv/backup/*" | ||||
|       } | ||||
|       alias clean-backups="clean-backup" | ||||
|     function_log: | | ||||
|       function log { | ||||
|         echo -e "$1" | ||||
|       } | ||||
|       function blog { | ||||
|         echo -e "\n\n$1\n\n" | ||||
|       } | ||||
|     function_debian_upgrade: | | ||||
|       function debian-upgrade { | ||||
|         typeset -l OLD NEW | ||||
|         OLD="$1" | ||||
|         NEW="$2" | ||||
|         blog "*** 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 | ||||
|  | ||||
|         blog "*** Running 'backup' before starting upgrade. ***" | ||||
|         sleep 1 | ||||
|  | ||||
|         backup | ||||
|  | ||||
|         blog "*** 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 | ||||
|           blog "*** Aborting upgrade, change rejected. ***" | ||||
|           return 1 | ||||
|         fi | ||||
|         unset confirm_change | ||||
|  | ||||
|         blog "*** 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" {} \; | ||||
|         find /etc/apt/sources.list.d/ -name "*.sources" \ | ||||
|           -exec sudo sed -i "s/$OLD/$NEW/g" {} \; | ||||
|  | ||||
|         sudo grep $OLD /etc/apt/sources.list /etc/apt/sources.list.d/*.{list,sources} | ||||
|         sudo grep $NEW /etc/apt/sources.list /etc/apt/sources.list.d/*.{list,sources} | ||||
|  | ||||
|         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 | ||||
|           blog "*** Aborting upgrade, confirmation rejected. ***" | ||||
|           return 1 | ||||
|         fi | ||||
|         unset confirm_correct | ||||
|  | ||||
|         blog "*** Starting the upgrade. ***" | ||||
|         sleep 1 | ||||
|  | ||||
|         sudo apt update | ||||
|         sudo apt upgrade --without-new-pkgs | ||||
|  | ||||
|         blog -e "*** Upgrades complete, now add new packages. ***" | ||||
|         sleep 1 | ||||
|         sudo apt full-upgrade | ||||
|  | ||||
|         blog "*** New packages complete, clean apt files. ***" | ||||
|         sleep 1 | ||||
|         sudo apt autoremove --purge | ||||
|         sudo apt clean | ||||
|  | ||||
|         blog "*** All done! '$OLD' is now '$NEW'. Please reboot. ***" | ||||
|         sleep 1 | ||||
|         unset OLD NEW | ||||
|       } | ||||
|       alias upgrade-debian="debian-upgrade" | ||||
|     function_ebook_convert: | | ||||
|       # Regenerate all eBook projects at once. | ||||
|       function ebook-convert { | ||||
|         find ~/Code/ebook-* -name "*.pdf" -print -delete | ||||
|         find ~/Code/ebook-* -name convert.sh -print -exec bash "{}" \; | ||||
|       } | ||||
|       alias ebooks="ebook-convert" | ||||
|       alias convert="ebook-convert" | ||||
|     alias_sudo: | | ||||
|       # Allows for alias expansions when using sudo, such as doing "sudo ll". | ||||
|       alias sudo="sudo " | ||||
|     function_load_branch: | | ||||
|       # Change a branch to point at another. | ||||
|       function load-branch { | ||||
|         rcvr="$1" # branch which we want to modify | ||||
|         base="$2" # branch with the changes we want | ||||
|  | ||||
|         if [[ "$rcvr" == "main" ]]; then | ||||
|           echo "*** ERROR: Are you nuts, fool!? Not main! Do it manually! ***" | ||||
|           exit 1 | ||||
|         fi | ||||
|  | ||||
|         if [[ -z "$base" ]]; then | ||||
|           if [[ "$rcvr" == "prod" ]]; then | ||||
|             base="stage" | ||||
|           elif [[ "$rcvr" == "stage" ]]; then | ||||
|             base="dev" | ||||
|           else | ||||
|             echo "* Unsure which branch to use for '$rcvr'. Please specify." | ||||
|             exit 1 | ||||
|           fi | ||||
|           echo "* Base was not specified, using '$base' for '$rcvr'." | ||||
|         else | ||||
|           echo "* Requested pointing '$rcvr' branch to '$base'." | ||||
|         fi | ||||
|  | ||||
|         echo -e "\n* Ensuring we are on base branch '$base'." && | ||||
|         git switch "$base" && | ||||
|         echo -e "\n* Changing pointer for '$rcvr' to '$base'." && | ||||
|         git branch -f "$rcvr" "$base" && | ||||
|         #echo -e "\n* Switching to branch '$rcvr'." && | ||||
|         #git switch "$rcvr" && | ||||
|         echo -e "\n* Forcing push on branch '$rcvr'." && | ||||
|         git push --force --set-upstream origin "$rcvr" && | ||||
|         echo -e "\n* Done! Displaying list of remote branches." && | ||||
|         git ls-remote --heads | sort | ||||
|  | ||||
|         if [[ "$base" != "dev" ]]; then | ||||
|           echo -e "\n* Checking if a dev branch exists." | ||||
|           git ls-remote --exit-code --heads origin dev | ||||
|           dev_exists="$?" | ||||
|           if [[ "$dev_exists" == 0 ]]; then | ||||
|             echo -e "\n* Switching back to dev." | ||||
|             git switch dev | ||||
|           elif [[ "$dev_exists" == 2 ]]; then | ||||
|             echo -e "\n* Switching back to main." | ||||
|             git switch main | ||||
|           else | ||||
|             echo "*** ERROR: Unknown status for dev_exists, '$dev_exists'. ***" | ||||
|           fi | ||||
|         fi | ||||
|  | ||||
|         echo -e "\n* Verifying which branch we're on." | ||||
|         git branch | ||||
|       } | ||||
|       alias load-prod="load-branch prod" | ||||
|       alias load-stage="load-branch stage" | ||||
|       alias rollback-prod="load-branch prod main" | ||||
|       alias rollback-stage="load-branch stage prod" | ||||
|       alias rollback-dev="load-branch dev stage" | ||||
|       alias reset-prod="load-branch prod main" | ||||
|       alias reset-stage="load-branch stage main" | ||||
|       alias reset-dev="load-branch dev main" | ||||
|  | ||||
| - name: General | Account Management | Users | Files | Common Variable | ||||
|   set_fact: | ||||
| @@ -778,6 +990,7 @@ | ||||
|       {{ metasploit_aliases }} | ||||
|       {{ show_config_aliases }} | ||||
|       {{ edit_config_aliases }} | ||||
|       {{ function_clean_trashed }} | ||||
|       {{ function_check_trash }} | ||||
|       {{ function_clean }} | ||||
|       {{ function_flatpak_usage }} | ||||
| @@ -808,6 +1021,14 @@ | ||||
|       {{ alias_ls }} | ||||
|       {{ alias_progs }} | ||||
|       {{ alias_nethogs }} | ||||
|       {{ alias_ansible_facts }} | ||||
|       {{ function_now }} | ||||
|       {{ function_backup }} | ||||
|       {{ function_log }} | ||||
|       {{ function_debian_upgrade }} | ||||
|       {{ function_ebook_convert }} | ||||
|       {{ alias_sudo }} | ||||
|       {{ function_load_branch }} | ||||
|  | ||||
| - name: General | Account Management | Users | Files | .bashrc | ||||
|   blockinfile: | ||||
|   | ||||
| @@ -1,12 +1,18 @@ | ||||
| --- | ||||
| # Jobs relating to the ansible user. | ||||
|  | ||||
| # $RANDOM is anywhere from 0 to 32767 in BASH. This would be up to ~9 hours. | ||||
| # $RANDOM /  10 can be up to about 3200 seconds, or ~55 minutes. | ||||
| # $RANDOM /  20 can be up to about 1600 seconds, or ~27 minutes. | ||||
| # $RANDOM /  50 can be up to about  650 seconds, or ~11 minutes. | ||||
| # $RANDOM / 100 can be up to about  320 seconds, or  ~5 minutes. | ||||
| # This prevents multiple systems from hitting it at the exact same time. | ||||
| - name: General | Cron | Ansible | Create Subscriber Job | ||||
|   cron: | ||||
|     user: ansible | ||||
|     name: "Ansible Sync" | ||||
|     minute: "*/30" | ||||
|     job: "sudo {{ ansible_pull_exec.stdout }} -o -U {{ git_repo_http }} --checkout {{ branch }}" | ||||
|     job: "bash -c 'sleep $(( $RANDOM / 20 )); sudo {{ ansible_pull_exec.stdout }} -v -o -U {{ git_repo_http }} --checkout {{ branch }}'" | ||||
|     state: present | ||||
|     disabled: "{{ 'yes' if no_telem else 'no' }}" | ||||
|  | ||||
| @@ -14,7 +20,7 @@ | ||||
|   cron: | ||||
|     user: ansible | ||||
|     name: "Ansible Weekly Forced Sync" | ||||
|     special_time: weekly | ||||
|     job: "{{ user_root.home }}/bin/scm.sh" | ||||
|     special_time: daily | ||||
|     job: "bash -c 'sleep $(( $RANDOM /  1 )); sudo {{ ansible_pull_exec.stdout }} -v    -U {{ git_repo_http }} --checkout {{ branch }}'" | ||||
|     state: present | ||||
|     disabled: "{{ 'yes' if no_telem else 'no' }}" | ||||
|   | ||||
| @@ -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 ## | ||||
| @@ -105,3 +115,15 @@ | ||||
|     pattern: "{{ ntp_server }}" | ||||
|     state: started | ||||
|     enabled: yes | ||||
|   when: ansible_virtualization_type != 'docker' | ||||
|   register: ntp_status | ||||
|   until: ntp_status.state == "started" | ||||
|   retries: 3 | ||||
|   delay: 3 | ||||
|  | ||||
| ## Timezone ## | ||||
|  | ||||
| # TBD/TODO: | ||||
| # Add a field to general.yml config file which gets applied via timedatectl and /etc/localtime. | ||||
| # Example of what to do to file: | ||||
| #    /etc/localtime -> ../usr/share/zoneinfo/America/Phoenix | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -34,19 +34,20 @@ | ||||
| - name: Workstation | Linux | Flatpak Distro | Flatpak | Arrays | ||||
|   set_fact: | ||||
|     flatpaks_generic: | ||||
|       - { app: "org.libreoffice.LibreOffice", name: "office", extra: "" } | ||||
|       - { app: "io.gitlab.librewolf-community", name: "librewolf", extra: "" } | ||||
|       - { app: "org.signal.Signal", name: "signal", extra: "" } | ||||
|       - { app: "org.mozilla.firefox", name: "firefox-flatpak", extra: "" } | ||||
|       - { app: "com.transmissionbt.Transmission", name: "transmission", extra: "" } | ||||
|       - { app: "org.gimp.GIMP", name: "gimp", extra: "" } | ||||
|       - { app: "io.gitlab.librewolf-community", name: "librewolf", extra: "" } | ||||
|       - { app: "chat.simplex.simplex", name: "simplex", extra: "" } | ||||
|       - { app: "org.signal.Signal", name: "signal", extra: "" } | ||||
|       - { app: "im.riot.Riot", name: "element", extra: "" } | ||||
|       - { app: "org.telegram.desktop", name: "telegram", extra: "" } | ||||
|       - { app: "org.gimp.GIMP", name: "gimp", extra: "" } | ||||
|       - { app: "org.libreoffice.LibreOffice", name: "office", extra: "" } | ||||
|       - { app: "com.transmissionbt.Transmission", name: "transmission", 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: "" } | ||||
|       - { app: "com.visualstudio.code-oss", name: "code-flatpak", extra: "" } | ||||
|     flatpaks_editing_video: | ||||
|       - { app: "org.shotcut.Shotcut", name: "shotcut", extra: "" } | ||||
|       - { app: "com.obsproject.Studio", name: "obs", extra: "" } | ||||
| @@ -68,13 +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: "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 # | ||||
|  | ||||
|   | ||||
| @@ -13,7 +13,6 @@ | ||||
|                       , 'io.gitlab.librewolf-community.desktop', 'librewolf.desktop' | ||||
|                       , 'org.mozilla.firefox.desktop', 'firefox.desktop' | ||||
|                       , 'org.signal.Signal.desktop', 'signal-desktop.desktop' | ||||
|                       , 'im.riot.Riot.desktop' | ||||
|                       , 'org.telegram.desktop.desktop' | ||||
|                       , 'com.discordapp.Discord.desktop' | ||||
|                       , 'com.vscodium.codium.desktop' | ||||
| @@ -39,6 +38,9 @@ | ||||
| #, 'com.visualstudio.code-oss.desktop', 'code-oss.desktop' | ||||
| # 2025-03-21 Not really using Android Studio now that Flutter is working. | ||||
| #, 'com.google.AndroidStudio.desktop' | ||||
| # 2025-08-31 Not used a whole lot, installed again just to explore. | ||||
| #, 'im.riot.Riot.desktop' | ||||
| #, 'chat.simplex.simplex.desktop' | ||||
|  | ||||
| - name: Workstation | Account Management | GNOME | Facts (NixOS) | ||||
|   set_fact: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user