Compare commits
16 Commits
d32b636a99
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
| 0920493634 | |||
| 03b8169401 | |||
| cfc2694737 | |||
| fca20b31bd | |||
| 1f4abd2d6c | |||
| a42d1d05df | |||
| 07d1adc926 | |||
| 71ca410123 | |||
| c46c78519b | |||
| 816a0d4f69 | |||
| f8a60b4287 | |||
| a7f395a62a | |||
| f02aec2cdb | |||
| a94959bcf9 | |||
| 5004250f85 | |||
| 4c4d4bbef7 |
85
setup.sh
85
setup.sh
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user