Initial working sql proxy setup
This commit is contained in:
parent
2ae3bff9d7
commit
40630b86b9
8 changed files with 64 additions and 1 deletions
43
script/hostman.sh
Executable file
43
script/hostman.sh
Executable file
|
@ -0,0 +1,43 @@
|
|||
#!/usr/bin/env sh
|
||||
# Configurable Variables
|
||||
[ -z $DOCKER_SOCK_PATH ] && DOCKER_SOCK_PATH="/tmp/docker.sock"
|
||||
[ -z $NETWORK_NAME ] && NETWORK_NAME="proxy"
|
||||
[ -z $RESOLVE_DOCKERHOST ] && RESOLVE_DOCKERHOST=false
|
||||
[ -z $HOST_CONF_PATH ] && HOST_CONF_PATH="/tmp/hosts"
|
||||
[ -z $DOCKER_HOSTNAME_VAR ] && DOCKER_HOSTNAME_VAR="VIRTUAL_HOST"
|
||||
|
||||
query_docker () {
|
||||
echo $(curl --unix-socket $DOCKER_SOCK_PATH --silent -g http://v1.41/$1/json$2)
|
||||
}
|
||||
|
||||
get_host_list() {
|
||||
PROXY_HOST_CONF=""
|
||||
CONTAINER_LIST=$(query_docker "containers" "?filters={%22network%22:[%22${NETWORK_NAME}%22],%22status%22:[%22running%22]}" | jq -cr '.[].Id')
|
||||
|
||||
for id in $CONTAINER_LIST
|
||||
do
|
||||
# Query individual container to access relevant data
|
||||
CONTAINER_DATA=$(query_docker "containers/${id}")
|
||||
if $RESOLVE_LOCALHOST
|
||||
then
|
||||
HOST_IP=$(echo $CONTAINER_DATA | jq -cr '.NetworkSettings.Networks.proxy.IPAddress')
|
||||
else
|
||||
HOST_IP="127.0.0.1"
|
||||
fi
|
||||
# Filter Env for HOSTNAME, remove list parenthesis and split/only keep values
|
||||
HOST_NAMES=$(echo $CONTAINER_DATA | jq -cr ".Config.Env[] | select(contains(\"$DOCKER_HOSTNAME_VAR=\")) | split(\"=\")[1]")
|
||||
|
||||
for hostname in $HOST_NAMES
|
||||
do
|
||||
PROXY_HOST_CONF="$PROXY_HOST_CONF\n$HOST_IP $hostname # Added by hostman"
|
||||
done
|
||||
done
|
||||
echo $PROXY_HOST_CONF
|
||||
}
|
||||
|
||||
while true
|
||||
do
|
||||
FILTERED_HOSTS=$(grep -ve "# Added by hostman$" $HOST_CONF_PATH)
|
||||
echo -e "$FILTERED_HOSTS$(get_host_list)" > $HOST_CONF_PATH
|
||||
sleep 10
|
||||
done
|
8
script/sqlproxy.sh
Executable file
8
script/sqlproxy.sh
Executable file
|
@ -0,0 +1,8 @@
|
|||
#!/usr/bin/env sh
|
||||
# ensure permissions
|
||||
chown sqlproxy:sqlproxy /etc/ssh
|
||||
chown -R sqlproxy:sqlproxy /etc/ssh/.ssh
|
||||
chmod 0700 /etc/ssh/.ssh
|
||||
chmod 0600 /etc/ssh/.ssh/authorized_keys
|
||||
|
||||
source ./hostman.sh
|
Loading…
Add table
Add a link
Reference in a new issue