added traefik config update (untested) + refactoring...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2024-01-30 03:49:06 +03:00
parent 15e6483e84
commit 1f49774770
8 changed files with 74 additions and 48 deletions

View File

@ -418,6 +418,8 @@ readVars(){
xread -n "Email: " EMAIL xread -n "Email: " EMAIL
xread -n "Domain: " DOMAIN xread -n "Domain: " DOMAIN
xread -n "Gate ID: " GATE_ID
readCTVars readCTVars
readBridgeVars readBridgeVars
@ -615,10 +617,37 @@ pctPushAssets(){
# #
# traefikPushConfig # traefikPushConfig
# #
TRAEFIK_CFG=traefik.yml # XXX generate config in a staging location...
TRAEFIK_CONFIG=traefik.yml
TRAEFIK_PATH=/etc/traefik.d/ TRAEFIK_PATH=/etc/traefik.d/
TRAEFIK_STAGING=traefik/
traefikPushConfig(){ traefikPushConfig(){
# XXX local filename="${CTHOSTNAME}.yml"
local source="${TRAEFIK_STAGING}/${filename}"
local target="${TRAEFIK_PATH}"/"${filename}"
# source file not found...
if ! [ -e "${TRAEFIK_CONFIG}" ] ; then
echo "${TRAEFIK_CONFIG}: not found." >&2
return
fi
# generat config...
mkdir -p "${TRAEFIK_STAGING}"
cat ${TRAEFIK_CONFIG} \
| expandPCTTemplate \
> "${source}"
# get things we need if they are not set...
xread "Gate CT id: " GATE_ID
# check if $filename exists...
if @ lxc-attach $GATE_ID -- test -e ${target} \
&& ! xreadYes "Overwrite existing \"${target}\"?" ; then
@ lxc-attach $GATE_ID -- mv "${target}" "${target}.bak"
fi
@ pct push $GATE_ID "${source}" "${target}"
} }
@ -823,18 +852,17 @@ pctSetNotes(){
local NOTES="$(\ local NOTES="$(\
echo -e "${2:-${DESCRIPTION}}" \ echo -e "${2:-${DESCRIPTION}}" \
| sed -e 's/^/#/')" | sed -e 's/^/#/')"
if [ "$DRY_RUN" ] ; then
return
fi
local CONF="$(cat "${CT_DIR}/${ID}.conf")" local CONF="$(cat "${CT_DIR}/${ID}.conf")"
local TEXT="\ local TEXT="\
"${NOTES}" "${NOTES}"
"${CONF}" "${CONF}"
" "
if [ "$DRY_RUN" ] ; then echo -e "${TEXT}" > "${CT_DIR}/${ID}.conf"
echo "--- ${CT_DIR}/${ID}.conf ---"
echo -e "${TEXT}"
echo "---"
else
echo -e "${TEXT}" > "${CT_DIR}/${ID}.conf"
fi
} }
@ -846,9 +874,9 @@ showNotes(){
[ -e "${BUILD_NOTES}" ] \ [ -e "${BUILD_NOTES}" ] \
&& mv "${BUILD_NOTES}"{,.bak} && mv "${BUILD_NOTES}"{,.bak}
[ -e "${BUILD_NOTES}".tpl ] \ [ -e "${BUILD_NOTES}".tpl ] \
&& cat "${BUILD_NOTES}".tpl \ && ( cat "${BUILD_NOTES}".tpl \
| expandPCTTemplate $@ \ | expandPCTTemplate $@ \
| tee "${BUILD_NOTES}" | tee "${BUILD_NOTES}" )
} }
# #

View File

@ -107,7 +107,9 @@ all: minimal $(APP_CTs)
.PHONY: clean .PHONY: clean
clean: clean:
-rm -rf */staging -rm -rf \
*/staging \
*/traefik

View File

@ -1,29 +1,29 @@
tcp: tcp:
routers: routers:
gitea: ${CTHOSTNAME}:
entryPoints: entryPoints:
- ssh - ssh
service: gitea service: ${CTHOSTNAME}
rule: "HostSNI(`*`)" rule: "HostSNI(`*`)"
services: services:
gitea: ${CTHOSTNAME}:
loadBalancer: loadBalancer:
servers: servers:
- address: gitea.srv:22 - address: ${CTHOSTNAME}.srv:22
http: http:
routers: routers:
gitea: ${CTHOSTNAME}:
entryPoints: entryPoints:
- https - https
service: gitea service: ${CTHOSTNAME}
rule: "Host(`${DOMAIN}`)" rule: "Host(`${DOMAIN}`)"
tls: tls:
certResolver: letsEncrypt certResolver: letsEncrypt
services: services:
gitea: ${CTHOSTNAME}:
loadBalancer: loadBalancer:
servers: servers:
- url: https://gitea.srv/ - url: https://${CTHOSTNAME}.srv/

View File

@ -1,15 +1,15 @@
http: http:
routers: routers:
nextcloud: ${CTHOSTNAME}:
entryPoints: entryPoints:
- https - https
service: nextcloud service: ${CTHOSTNAME}
rule: "Host(`${DOMAIN}`)" rule: "Host(`${DOMAIN}`)"
tls: tls:
certResolver: letsEncrypt certResolver: letsEncrypt
services: services:
nextcloud: ${CTHOSTNAME}:
loadBalancer: loadBalancer:
servers: servers:
- url: https://nextcloud.srv/ - url: https://${CTHOSTNAME}.srv/

View File

@ -37,6 +37,8 @@ REBOOT=${REBOOT:=1}
DFL_WAN_SSH_IP=${DFL_WAN_SSH_IP:=} DFL_WAN_SSH_IP=${DFL_WAN_SSH_IP:=}
xread "WAN ssh ip:" WAN_SSH_IP xread "WAN ssh ip:" WAN_SSH_IP
#xread "Gate CT id: " GATE_ID
readVars readVars
@ -89,6 +91,8 @@ pctSetNotes $ID
saveLastRunConfig saveLastRunConfig
traefikPushConfig
showNotes showNotes
echo "# Done." echo "# Done."

View File

@ -1,13 +1,13 @@
tcp: tcp:
routers: routers:
ssh: ${CTHOSTNAME}:
entryPoints: entryPoints:
- ssh2 - ssh2
service: ssh service: ${CTHOSTNAME}
rule: "HostSNI(`*`)" rule: "HostSNI(`*`)"
services: services:
ssh: ${CTHOSTNAME}:
loadBalancer: loadBalancer:
servers: servers:
- address: ssh.srv:22 - address: ${CTHOSTNAME}.srv:22

View File

@ -1,20 +0,0 @@
udp:
routers:
wireguard-admin:
entryPoints:
- wireguard2
service: wireguard-admin
wireguard-client:
entryPoints:
- wireguard
service: wireguard-client
services:
wireguard-admin:
loadBalancer:
servers:
- address: wireguard.srv:51820
wireguard-client:
loadBalancer:
servers:
- address: wireguard-client.srv:51820

12
wireguard/traefik.yml Normal file
View File

@ -0,0 +1,12 @@
udp:
routers:
${CTHOSTNAME}:
entryPoints:
- wireguard2
service: ${CTHOSTNAME}
services:
${CTHOSTNAME}:
loadBalancer:
servers:
- address: ${CTHOSTNAME}.srv:51820