promenade/tools/g2/lib/ssh.sh

48 lines
1023 B
Bash

rsync_cmd() {
rsync -e "ssh -F ${SSH_CONFIG_DIR}/config" ${@}
}
ssh_cmd() {
if [[ "x${PROMENADE_DEBUG}" = "x1" ]]; then
EXTRA_ARGS=-v
else
EXTRA_ARGS=
fi
ssh -F ${SSH_CONFIG_DIR}/config ${EXTRA_ARGS} ${@}
}
ssh_config_declare() {
log Validating SSH config exists
if [ ! -s ${SSH_CONFIG_DIR}/config ]; then
log Creating SSH config
env -i \
SSH_CONFIG_DIR=${SSH_CONFIG_DIR} \
envsubst < ${TEMPLATE_DIR}/ssh-config.sub > ${SSH_CONFIG_DIR}/config
fi
}
ssh_keypair_declare() {
log Validating SSH keypair exists
if [ ! -s ${SSH_CONFIG_DIR}/id_rsa ]; then
log Generating SSH keypair
ssh-keygen -N '' -f ${SSH_CONFIG_DIR}/id_rsa &>> ${LOG_FILE}
fi
}
ssh_load_pubkey() {
cat ${SSH_CONFIG_DIR}/id_rsa.pub
}
ssh_setup_declare() {
mkdir -p ${SSH_CONFIG_DIR}
ssh_keypair_declare
ssh_config_declare
}
ssh_wait() {
NAME=${1}
while ! ssh_cmd ${NAME} /bin/true; do
sleep 0.5
done
}