mirror of
https://github.com/flynx/proxmox-utils.git
synced 2025-10-28 18:50:08 +00:00
added traefik config update (untested) + refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
15e6483e84
commit
1f49774770
50
.pct-helpers
50
.pct-helpers
@ -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}" )
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
4
Makefile
4
Makefile
@ -107,7 +107,9 @@ all: minimal $(APP_CTs)
|
|||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
-rm -rf */staging
|
-rm -rf \
|
||||||
|
*/staging \
|
||||||
|
*/traefik
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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/
|
||||||
@ -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/
|
||||||
@ -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."
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
@ -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
12
wireguard/traefik.yml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
udp:
|
||||||
|
routers:
|
||||||
|
${CTHOSTNAME}:
|
||||||
|
entryPoints:
|
||||||
|
- wireguard2
|
||||||
|
service: ${CTHOSTNAME}
|
||||||
|
|
||||||
|
services:
|
||||||
|
${CTHOSTNAME}:
|
||||||
|
loadBalancer:
|
||||||
|
servers:
|
||||||
|
- address: ${CTHOSTNAME}.srv:51820
|
||||||
Loading…
x
Reference in New Issue
Block a user