Compare commits

..

16 Commits

Author SHA1 Message Date
0920493634 Create the config directory so that tee can create the files. 2025-10-25 15:46:52 -07:00
03b8169401 Try adding the output to the files in a different way. 2025-10-25 15:38:12 -07:00
cfc2694737 Add that the file contains test data. Add output of the function for testing. 2025-10-25 15:30:40 -07:00
fca20b31bd Change wording so that user does not expect files to exist right away. 2025-10-25 15:20:59 -07:00
1f4abd2d6c Create the filepaths for the config files. Output the files and their contents after creation. 2025-10-25 15:18:55 -07:00
a42d1d05df Fix the parameter switches. 2025-10-25 15:16:50 -07:00
07d1adc926 Create the proper contents in each test file. 2025-10-25 15:15:30 -07:00
71ca410123 Add ability to spawn basic configurations for testing. 2025-10-25 15:12:03 -07:00
c46c78519b Do not mention using the default branch if using local. 2025-10-25 14:58:03 -07:00
816a0d4f69 Do not check the kernelfor the OS when inside of Docker containers. 2025-10-25 14:43:14 -07:00
f8a60b4287 Change final backup check to use du again, not ls -l. 2025-10-24 15:26:40 -07:00
a7f395a62a Remove test output. 2025-10-24 15:18:44 -07:00
f02aec2cdb Fix case of DOCKER value. 2025-10-24 15:16:57 -07:00
a94959bcf9 Add more verbosity. Change "BACKUP" to "DOCKER". 2025-10-24 15:15:05 -07:00
5004250f85 Add aliases for reloading shell like in Termux environment. 2025-10-24 14:55:11 -07:00
4c4d4bbef7 Additional enhancements to pulling Production backups. 2025-10-24 14:53:36 -07:00
2 changed files with 102 additions and 11 deletions

View File

@@ -9,13 +9,18 @@ LOCAL=$DIR/local.yml
URL="https://git.hyperling.com/me/env-ansible" URL="https://git.hyperling.com/me/env-ansible"
BRANCH="main" BRANCH="main"
config_dir="/usr/local/etc/hyperling-scm"
general_config="$config_dir/general.ini"
workstation_config="$config_dir/workstation.ini"
server_config="$config_dir/server.ini"
## Functions ## ## Functions ##
# Accepts 1 parameter, it is used as the exit status. # Accepts 1 parameter, it is used as the exit status.
function usage { function usage {
cat <<- EOF cat <<- EOF
$PROG [-l] [-b branch_name] [-h] $PROG [-l] [-b branch_name] [-g] [-w] [-s] [-h]
Program to initialize synchronization with Hyperling's Ansible configuration. Program to initialize synchronization with Hyperling's Ansible configuration.
$URL $URL
@@ -23,7 +28,10 @@ function usage {
-l : Run the local playbook associated with this $PROG. -l : Run the local playbook associated with this $PROG.
This is helpful for development or just saving bandwidth. This is helpful for development or just saving bandwidth.
It also provides prettier colors than the plaintext from ansible-pull. ;) It also provides prettier colors than the plaintext from ansible-pull. ;)
-b branch_name: Download and run a specific branch. Default is $BRANCH. -b branch_name : Download and run a specific branch. Default is $BRANCH.
-g : Enable the General config with test contents.
-w : Enable the Workstation config with test contents.
-s : Enable the Server config with test contents.
-h : Display this help text -h : Display this help text
EOF EOF
@@ -32,10 +40,13 @@ function usage {
## Parameter Parsing ## ## Parameter Parsing ##
while getopts ":lb:h" arg; do while getopts ":lb:gwsh" arg; do
case $arg in case $arg in
l) local="Y" && echo "Running $LOCAL as the playbook." ;; l) local="Y" && echo "Running $LOCAL as the playbook." ;;
b) branch="$OPTARG" && echo "Using branch $branch instead of $BRANCH." ;; b) branch="$OPTARG" && echo "Using branch $branch instead of $BRANCH." ;;
g) create_general="Y" && echo "Requested '$general_config'." ;;
w) create_workstation="Y" && echo "Requested '$workstation_config'." ;;
s) create_server="Y" && echo "Requested '$server_config'." ;;
h) usage ;; h) usage ;;
*) echo "ERROR: Parameter $OPTARG was not recognized." && usage 1 ;; *) echo "ERROR: Parameter $OPTARG was not recognized." && usage 1 ;;
esac esac
@@ -47,15 +58,32 @@ if [[ ! -z $1 && $1 != "-"* ]]; then
usage 1 usage 1
fi fi
if [[ $branch == "" ]]; then if [[ -z "$local" && "$branch" == "" ]]; then
echo "Using default branch $BRANCH." echo "Using default branch $BRANCH."
branch="$BRANCH" branch="$BRANCH"
fi fi
if [[ -n "$create_general" && -f "$general_config" ]]; then
echo "WARNING: General configuration already exists, will not overwrite."
ls -lh "$general"
fi
if [[ -n "$create_workstation" && -f "$workstation_config" ]]; then
echo "WARNING: Workstation configuration already exists, will not overwrite."
ls -lh "$workstation_config"
fi
if [[ -n "$create_server" && -f "$server_config" ]]; then
echo "WARNING: Server configuration already exists, will not overwrite."
ls -lh "$server_config"
fi
## Main ## ## Main ##
os="$(cat /etc/os-release)" os="$(cat /etc/os-release)"
os="$os $(uname -a)" if [[ ! -f /.dockerenv ]]; then
# If we are not in a Docker container, also check what the kernel says.
os="$os $(uname -a)"
# Docker containers use the host kernel which gives an incorrect reading.
fi
echo "Making sure all necessary packages are installed..." echo "Making sure all necessary packages are installed..."
if [[ `which ansible > /dev/null; echo $?` != 0 ]]; then if [[ `which ansible > /dev/null; echo $?` != 0 ]]; then
@@ -101,6 +129,53 @@ echo "Installed!"
#ansible-galaxy collection install community.general #ansible-galaxy collection install community.general
#echo "Added!" #echo "Added!"
# Create basic layouts if configs do not exist and are requested.
if [[ -n "$create_general"
|| -n "$create_workstation"
|| -n "$create_server" ]]
then
sudo mkdir -pv "$config_dir"
fi
if [[ -n "$create_general" && ! -f "$general_config" ]]; then
function print_general_contents {
cat <<- EOF
; TEST DATA
enable=true
user=test
user_desc=Test
branch=$branch
; TEST DATA
EOF
}
print_general_contents | sudo tee "$general_config"
ls -lh "$general_config"
fi
if [[ -n "$create_workstation" && ! -f "$workstation_config" ]]; then
function print_workstation_contents {
cat <<- EOF
; TEST DATA
enable=true
coding=true
editing=false
gaming=false
; TEST DATA
EOF
}
print_workstation_contents | sudo tee "$workstation_config"
ls -lh "$workstation_config"
fi
if [[ -n "$create_server" && ! -f "$server_config" ]]; then
function print_server_contents {
cat <<- EOF
; TEST DATA
enable=true
; TEST DATA
EOF
}
print_server_contents | sudo tee "$server_config"
ls -lh "$server_config"
fi
echo "Provisioning Ansible..." echo "Provisioning Ansible..."
if [[ $local == "Y" ]]; then if [[ $local == "Y" ]]; then
sudo ansible-playbook $LOCAL sudo ansible-playbook $LOCAL

View File

@@ -805,21 +805,30 @@
} }
alias clean-backups="clean-backup" alias clean-backups="clean-backup"
function_pull_prod_backups: | function_pull_prod_backups: |
export BACKUP="Backup" export DOCKER="Docker"
export SYSTEM="System" export SYSTEM="System"
function pull_prod_backup { function pull_prod_backup {
if [[ -z "$1" || ("$1" != "$BACKUP" && "$1" != "$SYSTEM") ]]; then if [[ -z "$1" || ("$1" != "$DOCKER" && "$1" != "$SYSTEM") ]]; then
echo "ERROR: Parameter 1 not correct, expecting '$BACKUP' or '$SYSTEM'." echo "ERROR: Parameter 1 not correct, expecting '$DOCKER' or '$SYSTEM'."
return 1 return 1
fi fi
backup_type="$1" backup_type="$1"
echo "Looking for '*${backup_type}*.zip'"
ls -lh *${backup_type}*.zip 2>/dev/null
status="$?"
if [[ "$status" == "0" ]]; then
echo "File already downloaded, skipping."
return 0
else
echo "File still needed, downloading to local tmp/."
fi
mkdir -pv tmp mkdir -pv tmp
scp -P {{ prod_port }} \ scp -P {{ prod_port }} \
{{ prod_user }}@{{ prod_host }}:"$BACKUP_DIR/*${backup_type}*.zip" \ {{ prod_user }}@{{ prod_host }}:"$BACKUP_DIR/*${backup_type}*.zip" \
tmp/ tmp/
if [[ "$?" == "0" ]]; then if [[ "$?" == "0" ]]; then
echo "Succeeded!" echo "Succeeded!"
mv -v "tmp/*${backup_type}*.zip" ./ mv -v tmp/*.zip ./
rmdir -v tmp rmdir -v tmp
else else
echo "Failed!" echo "Failed!"
@@ -830,9 +839,9 @@
dir="ProductionBackups-Pulled`today`" dir="ProductionBackups-Pulled`today`"
mkdir -pv "$dir" mkdir -pv "$dir"
cd "$dir" cd "$dir"
pull_prod_backup "$BACKUP" pull_prod_backup "$DOCKER"
pull_prod_backup "$SYSTEM" pull_prod_backup "$SYSTEM"
du -h *.zip du -h *.zip | sort -h
status="$?" status="$?"
cd .. cd ..
if [[ "$status" != 0 ]]; then if [[ "$status" != 0 ]]; then
@@ -998,6 +1007,12 @@
alias reset-prod="load-branch prod main" alias reset-prod="load-branch prod main"
alias reset-stage="load-branch stage main" alias reset-stage="load-branch stage main"
alias reset-dev="load-branch dev main" alias reset-dev="load-branch dev main"
alias_reload_bash: |
alias reload-bash="source ~/.bashrc"
alias bash-reload="reload-bash"
alias shell-reload="reload-bash"
alias reload-shell="reload-bash"
alias reload="reload-bash"
- name: General | Account Management | Users | Files | Common Variable - name: General | Account Management | Users | Files | Common Variable
set_fact: set_fact:
@@ -1075,6 +1090,7 @@
{{ function_ebook_convert }} {{ function_ebook_convert }}
{{ alias_sudo }} {{ alias_sudo }}
{{ function_load_branch }} {{ function_load_branch }}
{{ alias_reload_bash }}
- name: General | Account Management | Users | Files | .bashrc - name: General | Account Management | Users | Files | .bashrc
blockinfile: blockinfile: