Delete wrapper scripts
This commit is contained in:
parent
98dce030f8
commit
a4ec82068e
12 changed files with 0 additions and 260 deletions
172
execute
172
execute
|
@ -1,172 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -e;
|
|
||||||
|
|
||||||
# Interesting chars:
|
|
||||||
# 🛰 - Satellite - looks very cool indeed in Firefox
|
|
||||||
|
|
||||||
lantern_path="../lantern-build-engine";
|
|
||||||
if [[ -z "${do_parallel}" ]]; then
|
|
||||||
do_parallel="true";
|
|
||||||
fi
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
# Make sure the current directory is the location of this script to simplify matters
|
|
||||||
cd "$(dirname "$(readlink -f "$0")")";
|
|
||||||
|
|
||||||
# Check out the lantern git submodule if needed
|
|
||||||
if [ ! -f "${lantern_path}/lantern.sh" ]; then git submodule update --init "${lantern_path}"; fi
|
|
||||||
|
|
||||||
#shellcheck disable=SC1090
|
|
||||||
source "${lantern_path}/lantern.sh";
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
if [[ -z "${2}" ]]; then
|
|
||||||
echo "Usage:";
|
|
||||||
echo " ./execute {{path/to/jobfile}} {{path/to/hostsfile_a}} {{path/to/hostsfile_n}}";
|
|
||||||
exit 1;
|
|
||||||
fi
|
|
||||||
|
|
||||||
job_filepath="$1";
|
|
||||||
if [[ ! -f "${job_filepath}" ]]; then
|
|
||||||
job_filepath="jobs/${job_filepath}/${job_filepath}.job";
|
|
||||||
fi
|
|
||||||
|
|
||||||
shift;
|
|
||||||
|
|
||||||
hosts="";
|
|
||||||
while [[ ! -z "${1}" ]]; do
|
|
||||||
hosts_filename="${1}";
|
|
||||||
if [[ ! -f "${hosts_filename}" ]]; then
|
|
||||||
hosts_filename="hosts/${hosts_filename}.txt";
|
|
||||||
fi
|
|
||||||
|
|
||||||
hosts="$(echo "${hosts}" && cat "${hosts_filename}")";
|
|
||||||
shift;
|
|
||||||
done
|
|
||||||
|
|
||||||
ssh_configfile="./ssh-config";
|
|
||||||
|
|
||||||
if [[ ! -x "${job_filepath}" ]]; then
|
|
||||||
echo -e "${FRED}Error: ${job_filepath} doesn't exist, or is not executable.${RS}" >&2;
|
|
||||||
exit 1;
|
|
||||||
fi
|
|
||||||
|
|
||||||
log_msg() {
|
|
||||||
echo -e "[ $(date -u +"%Y-%m-%dT%H:%M:%SZ") ] $*" >&2;
|
|
||||||
}
|
|
||||||
|
|
||||||
# $1 Command to execute
|
|
||||||
RUN_ONCE() {
|
|
||||||
command="${1}";
|
|
||||||
hash="$(echo "${command}" | sha256sum | cut -d- -f1)";
|
|
||||||
|
|
||||||
if [[ -z "${EXECUTE_HOSTNAME}" ]]; then
|
|
||||||
task_end 1 "Oops! The hostname to execute on wasn't found. This is probably a bug.";
|
|
||||||
fi
|
|
||||||
|
|
||||||
log_msg "️🛡️ ${HC}[ ${EXECUTE_HOSTNAME} ]${RS} ${FBLE}RUN_ONCE${RS} ${command}";
|
|
||||||
|
|
||||||
if [[ "${INTERACTIVE}" == "true" ]]; then
|
|
||||||
echo "Enabling interactive mode";
|
|
||||||
SSH_FLAGS="-t ";
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "
|
|
||||||
if [[ ! -d /etc/remote-exec ]]; then sudo mkdir /etc/remote-exec; fi
|
|
||||||
if [[ ! -f /etc/remote-exec/${hash} ]]; then
|
|
||||||
echo \"[ \${HOSTNAME} ] [ \$(date -u +\"%Y-%m-%dT%H:%M:%SZ\") ] Executing once\"
|
|
||||||
${command}
|
|
||||||
sudo touch /etc/remote-exec/${hash};
|
|
||||||
fi
|
|
||||||
" | ssh ${SSH_FLAGS} -F "${ssh_configfile}" "${EXECUTE_HOSTNAME}" bash;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
# $1 Command to execute
|
|
||||||
RUN() {
|
|
||||||
command="${1}";
|
|
||||||
|
|
||||||
if [[ -z "${EXECUTE_HOSTNAME}" ]]; then
|
|
||||||
task_end 1 "Oops! The hostname to execute on wasn't found. This is probably a bug.";
|
|
||||||
fi
|
|
||||||
|
|
||||||
log_msg "🚏 ${HC}[ ${EXECUTE_HOSTNAME} ]${RS} ${FBLE}RUN${RS} ${command}";
|
|
||||||
|
|
||||||
if [[ "${INTERACTIVE}" == "true" ]]; then
|
|
||||||
echo "Enabling interactive mode";
|
|
||||||
SSH_FLAGS="-t ";
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "${command}" | ssh ${SSH_FLAGS} -F "${ssh_configfile}" "${EXECUTE_HOSTNAME}" bash;
|
|
||||||
}
|
|
||||||
|
|
||||||
# $1 Filepath to script to copy & execute
|
|
||||||
SCRIPT() {
|
|
||||||
script_filepath="${1}";
|
|
||||||
|
|
||||||
remote_filepath="/tmp/$(basename ${script_filepath})";
|
|
||||||
|
|
||||||
if [[ -z "${EXECUTE_HOSTNAME}" ]]; then
|
|
||||||
task_end 1 "Oops! The hostname to execute on wasn't found. This is probably a bug.";
|
|
||||||
fi
|
|
||||||
|
|
||||||
log_msg "🚂 ${HC}[ ${EXECUTE_HOSTNAME} ]${RS} ${FMAG}SCRIPT${RS} ${command}";
|
|
||||||
|
|
||||||
scp -F "${ssh_configfile}" "${script_filepath}" "${EXECUTE_HOSTNAME}:${remote_filepath}";
|
|
||||||
echo -e "${remote_filepath}\nrm ${remote_filepath}" | ssh -F "${ssh_configfile}" "${EXECUTE_HOSTNAME}" bash;
|
|
||||||
echo ""
|
|
||||||
}
|
|
||||||
|
|
||||||
# $1 The filepath to copy
|
|
||||||
# $2 The location to copy it to on the remote host
|
|
||||||
COPY() {
|
|
||||||
filepath_local="${1}";
|
|
||||||
filepath_remote="${2}";
|
|
||||||
|
|
||||||
log_msg "🚚 ${HC}[ ${EXECUTE_HOSTNAME} ]${RS} ${FMAG}COPY${RS} ${filepath_local} → ${filepath_remote}";
|
|
||||||
|
|
||||||
if [[ ! -f "${filepath_local}" ]]; then
|
|
||||||
task_end 1 "[ ${HC}COPY${RS} ] Error: Couldn't find ${filepath_local} on disk (CWD is ${PWD}).";
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z "${EXECUTE_HOSTNAME}" ]]; then
|
|
||||||
task_end 1 "[ ${HC}COPY${RS} ] Oops! The hostname to copy to wasn't found. This is probably a bug.";
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
scp -F "${ssh_configfile}" "${filepath_local}" "${EXECUTE_HOSTNAME}:${filepath_remote}";
|
|
||||||
}
|
|
||||||
|
|
||||||
# $1 job filepath
|
|
||||||
# $2 hostname
|
|
||||||
__do_execute() {
|
|
||||||
job_filepath="${1}";
|
|
||||||
hostname="${2}";
|
|
||||||
log_msg "${FBLE}${HC}⌛${RS} Starting on ${HC}${hostname}${RS}";
|
|
||||||
|
|
||||||
export EXECUTE_HOSTNAME="${hostname}";
|
|
||||||
export JOBFILE_DIR; JOBFILE_DIR="$(dirname "${job_filepath}")";
|
|
||||||
|
|
||||||
#shellcheck disable=SC1090
|
|
||||||
source "${job_filepath}";
|
|
||||||
|
|
||||||
log_msg "${FGRN}${HC}✔${RS} Finished on ${HC}${hostname}${RS}";
|
|
||||||
}
|
|
||||||
|
|
||||||
task_begin "Executing ${job_filepath}";
|
|
||||||
|
|
||||||
while read -r hostname; do
|
|
||||||
if [[ -z "${hostname}" ]]; then
|
|
||||||
continue;
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${do_parallel}" == "true" ]]; then
|
|
||||||
__do_execute "${job_filepath}" "${hostname}" &
|
|
||||||
else
|
|
||||||
__do_execute "${job_filepath}" "${hostname}";
|
|
||||||
fi
|
|
||||||
done < <(echo "${hosts}");
|
|
||||||
|
|
||||||
wait
|
|
|
@ -1,2 +0,0 @@
|
||||||
cluster-balusha
|
|
||||||
cluster-silverleaf
|
|
|
@ -1,2 +0,0 @@
|
||||||
cluster-sycadil
|
|
||||||
cluster-spatterling
|
|
|
@ -1 +0,0 @@
|
||||||
cluster-wopplefox
|
|
|
@ -1,2 +0,0 @@
|
||||||
cluster-sycadil
|
|
||||||
cluster-spatterling
|
|
|
@ -1,2 +0,0 @@
|
||||||
cluster-balusha
|
|
||||||
cluster-silverleaf
|
|
|
@ -1 +0,0 @@
|
||||||
cluster-balusha
|
|
|
@ -1,4 +0,0 @@
|
||||||
cluster-sycadil
|
|
||||||
cluster-spatterling
|
|
||||||
cluster-balusha
|
|
||||||
cluster-silverleaf
|
|
|
@ -1,5 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
# Make sure the current directory is the location of this script to simplify matters
|
|
||||||
cd "$(dirname "$(readlink -f "$0")")";
|
|
||||||
|
|
||||||
find hosts -type f -iname '*.txt' | xargs -n1 basename --suffix=.txt | sort
|
|
|
@ -1,5 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
# Make sure the current directory is the location of this script to simplify matters
|
|
||||||
cd "$(dirname "$(readlink -f "$0")")";
|
|
||||||
|
|
||||||
ls ./jobs/
|
|
18
new-job
18
new-job
|
@ -1,18 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
# Make sure the current directory is the location of this script to simplify matters
|
|
||||||
cd "$(dirname "$(readlink -f "$0")")";
|
|
||||||
|
|
||||||
job_name="$1";
|
|
||||||
|
|
||||||
if [[ -z "${job_name}" ]]; then
|
|
||||||
echo "Usage:";
|
|
||||||
echo " ./new-job {job_name}";
|
|
||||||
exit;
|
|
||||||
fi
|
|
||||||
|
|
||||||
job_filename="./jobs/${job_name}/${job_name}.job";
|
|
||||||
|
|
||||||
mkdir -p "$(dirname "${job_filename}")";
|
|
||||||
|
|
||||||
echo -e "#!/usr/bin/env bash\n" >"${job_filename}";
|
|
||||||
chmod +x "${job_filename}";
|
|
46
ssh-config
46
ssh-config
|
@ -1,46 +0,0 @@
|
||||||
ServerAliveInterval 120
|
|
||||||
|
|
||||||
Host *
|
|
||||||
ControlMaster auto
|
|
||||||
ControlPath /tmp/%r@%h:%p
|
|
||||||
|
|
||||||
|
|
||||||
Host cluster-wopplefox
|
|
||||||
Hostname 172.16.230.100
|
|
||||||
Port 22
|
|
||||||
|
|
||||||
User root
|
|
||||||
IdentityFile ~/.ssh/id_ed25519
|
|
||||||
ForwardAgent yes
|
|
||||||
Host cluster-sycadil
|
|
||||||
Hostname 172.16.230.102
|
|
||||||
Port 22
|
|
||||||
|
|
||||||
User dietpi
|
|
||||||
IdentityFile ~/.ssh/id_ed25519
|
|
||||||
ForwardAgent yes
|
|
||||||
Host cluster-spatterling
|
|
||||||
Hostname 172.16.230.101
|
|
||||||
Port 22
|
|
||||||
|
|
||||||
User dietpi
|
|
||||||
IdentityFile ~/.ssh/id_ed25519
|
|
||||||
ForwardAgent yes
|
|
||||||
Host cluster-balusha
|
|
||||||
Hostname 172.16.230.103
|
|
||||||
Port 22
|
|
||||||
|
|
||||||
User dietpi
|
|
||||||
IdentityFile ~/.ssh/id_ed25519
|
|
||||||
ForwardAgent yes
|
|
||||||
Host cluster-silverleaf
|
|
||||||
# braskin
|
|
||||||
# toko
|
|
||||||
# *silverleaf*
|
|
||||||
# elligon: router
|
|
||||||
Hostname 172.16.230.104
|
|
||||||
Port 22
|
|
||||||
|
|
||||||
User dietpi
|
|
||||||
IdentityFile ~/.ssh/id_ed25519
|
|
||||||
ForwardAgent yes
|
|
Loading…
Reference in a new issue