Skip to content

Commit

Permalink
add proxy/bastion for connection
Browse files Browse the repository at this point in the history
  • Loading branch information
lilyLuLiu committed Sep 27, 2024
1 parent 5a38b3a commit 92d46f2
Showing 1 changed file with 29 additions and 12 deletions.
41 changes: 29 additions & 12 deletions lib/common/remote.sh
Original file line number Diff line number Diff line change
Expand Up @@ -63,47 +63,64 @@ check_connection() {
# Define remote connection
uri () {
local remote="${TARGET_HOST_USERNAME}@${TARGET_HOST}"
if [[ ! -z "${TARGET_HOST_DOMAIN+x}" ]]; then
if [[ -n "${TARGET_HOST_DOMAIN}" ]]; then
remote="${TARGET_HOST_USERNAME}@${TARGET_HOST_DOMAIN}@${TARGET_HOST}"
fi
echo "${remote}"
}
# Define the host bastion
proxy () {
local proxy="${PROXY_USERNAME}@${PROXY_HOST}"
echo "${remote}"
}

# Generate SCP command
# $1 local path
# $2 remote path
scp_to_cmd () {
if [[ ! -z "${TARGET_HOST_KEY_PATH+x}" ]]; then
echo "scp -r $(connect_options) -i ${TARGET_HOST_KEY_PATH} ${1} $(uri):${2}"
cmd="scp -r $(connect_options) "
if [[ -n "${PROXY_HOST}" && -n "${PROXY_USERNAME}" ]]; then
cmd+="-J $(proxy)"
fi
if [[ -n "${TARGET_HOST_KEY_PATH}" ]]; then
echo "${cmd} -i ${TARGET_HOST_KEY_PATH} ${1} $(uri):${2}"
else
echo "sshpass -p ${TARGET_HOST_PASSWORD} scp -r $(connect_options) ${1} $(uri):${2}"
echo "sshpass -p ${TARGET_HOST_PASSWORD} ${cmd} ${1} $(uri):${2}"
fi
}

# Generate SCP command
# $1 remote path
# $2 local path
scp_from_cmd () {
if [[ ! -z "${TARGET_HOST_KEY_PATH+x}" ]]; then
echo "scp -r $(connect_options) -i ${TARGET_HOST_KEY_PATH} $(uri):${1} ${2}"
cmd="scp -r $(connect_options) "
if [[ -n "${PROXY_HOST}" && -n "${PROXY_USERNAME}" ]]; then
cmd+="-J $(proxy)"
fi
if [[ -n "${TARGET_HOST_KEY_PATH}" ]]; then
echo "${cmd} -i ${TARGET_HOST_KEY_PATH} $(uri):${1} ${2}"
else
echo "sshpass -p ${TARGET_HOST_PASSWORD} scp -r $(connect_options) $(uri):${1} ${2}"
echo "sshpass -p ${TARGET_HOST_PASSWORD} ${cmd} $(uri):${1} ${2}"
fi
}

# Generate SSH command
ssh_cmd () {
cmd=""
if [[ ! -z "${TARGET_HOST_KEY_PATH+x}" ]]; then
cmd="ssh $(connect_options) -i ${TARGET_HOST_KEY_PATH} $(uri) "
cmd="ssh $(connect_options) "
if [[ -n "${PROXY_HOST}" && -n "${PROXY_USERNAME}" ]]; then
cmd+="-J $(proxy)"
fi
if [[ -n "${TARGET_HOST_KEY_PATH}" ]]; then
cmd+="-i ${TARGET_HOST_KEY_PATH} $(uri) "
else
cmd="sshpass -p ${TARGET_HOST_PASSWORD} ssh $(connect_options) $(uri) "
cmd="sshpass -p ${TARGET_HOST_PASSWORD} ${cmd} $(uri)"
fi

# On AWS MacOS ssh session is not recognized as expected
if [[ ${OS} == 'darwin' ]]; then
cmd+="sudo su - ${TARGET_HOST_USERNAME} -c \"PATH=\$PATH:/usr/local/bin && $@\""
else
cmd+="$@"
fi
echo "${cmd}"
}
}

0 comments on commit 92d46f2

Please sign in to comment.