mirror of
https://github.com/flynx/proxmox-utils.git
synced 2025-12-25 04:42:04 +00:00
Compare commits
20 Commits
2b8ccd7688
...
443e48e051
| Author | SHA1 | Date | |
|---|---|---|---|
| 443e48e051 | |||
| 6b01c188ec | |||
| 53ac9fc694 | |||
| 1a262600ee | |||
| 6f98c16505 | |||
| a640bbdb5a | |||
| d05450175d | |||
| 732273001f | |||
| c1300293a6 | |||
| f688ffeac6 | |||
| 508dd23f0f | |||
| 903fa194ae | |||
| f0629359d3 | |||
| 36a7df54bc | |||
| 2d13b741a9 | |||
| 9cf4f402e9 | |||
| b226cb9780 | |||
| 2d72bebc1a | |||
| 3a15653818 | |||
| 05c16f737f |
62
.pct-helpers
62
.pct-helpers
@ -179,6 +179,24 @@ xread(){
|
|||||||
&& echo "$2=${!2}"
|
&& echo "$2=${!2}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# xreadpass VAR
|
||||||
|
#
|
||||||
|
xreadpass(){
|
||||||
|
local PASS1
|
||||||
|
local PASS2
|
||||||
|
read -sep "password (Enter to skip): " PASS1
|
||||||
|
echo
|
||||||
|
if [ $PASS1 ] ; then
|
||||||
|
read -sep "retype password: " PASS2
|
||||||
|
echo
|
||||||
|
if [[ $PASS1 != $PASS2 ]] ; then
|
||||||
|
echo "ERR: passwords do not match."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
eval ''$1'='${PASS1}''
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# readVars
|
# readVars
|
||||||
@ -213,6 +231,11 @@ readVars(){
|
|||||||
xread "ID: " ID
|
xread "ID: " ID
|
||||||
xread "Hostname: " CTHOSTNAME
|
xread "Hostname: " CTHOSTNAME
|
||||||
|
|
||||||
|
# hardware...
|
||||||
|
xread "RAM (MB): " RAM
|
||||||
|
xread "SWAP (MB): " SWAP
|
||||||
|
xread "DRIVE (GB): " DRIVE
|
||||||
|
|
||||||
# bridge config...
|
# bridge config...
|
||||||
xread "WAN bridge: vmbr" WAN_BRIDGE
|
xread "WAN bridge: vmbr" WAN_BRIDGE
|
||||||
xread "LAN bridge: vmbr" LAN_BRIDGE
|
xread "LAN bridge: vmbr" LAN_BRIDGE
|
||||||
@ -235,17 +258,8 @@ readVars(){
|
|||||||
|
|
||||||
# root password...
|
# root password...
|
||||||
if [ -z $ROOTPASS ] ; then
|
if [ -z $ROOTPASS ] ; then
|
||||||
read -sep "root password (Enter to skip): " PASS1
|
xreadpass PASS \
|
||||||
echo
|
|| exit 1
|
||||||
if [ $PASS1 ] ; then
|
|
||||||
read -sep "retype root password: " PASS2
|
|
||||||
echo
|
|
||||||
if [[ $PASS1 != $PASS2 ]] ; then
|
|
||||||
echo "ERR: passwords do not match."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
PASS=$PASS1
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
PASS=$ROOTPASS
|
PASS=$ROOTPASS
|
||||||
fi
|
fi
|
||||||
@ -321,7 +335,7 @@ pctCreate(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# pctCreate ID ARGS [PASS]
|
# pctCreate<distro> ID ARGS [PASS]
|
||||||
#
|
#
|
||||||
pctCreateAlpine(){
|
pctCreateAlpine(){
|
||||||
local TEMPLATE
|
local TEMPLATE
|
||||||
@ -329,9 +343,33 @@ pctCreateAlpine(){
|
|||||||
|
|
||||||
pctCreate $1 "$TEMPLATE" "$2" "$3"
|
pctCreate $1 "$TEMPLATE" "$2" "$3"
|
||||||
|
|
||||||
|
sleep ${TIMEOUT:=5}
|
||||||
|
|
||||||
@ lxc-attach $1 apk update
|
@ lxc-attach $1 apk update
|
||||||
@ lxc-attach $1 apk upgrade
|
@ lxc-attach $1 apk upgrade
|
||||||
}
|
}
|
||||||
|
pctCreateDebian(){
|
||||||
|
local TEMPLATE
|
||||||
|
getLatestTemplate 'debian-12-standard' TEMPLATE
|
||||||
|
|
||||||
|
pctCreate $1 "$TEMPLATE" "$2" "$3"
|
||||||
|
|
||||||
|
sleep ${TIMEOUT:=5}
|
||||||
|
|
||||||
|
@ lxc-attach $1 apt update
|
||||||
|
@ lxc-attach $1 -- apt upgrade -y
|
||||||
|
}
|
||||||
|
pctCreateUbuntu(){
|
||||||
|
local TEMPLATE
|
||||||
|
getLatestTemplate ubuntu TEMPLATE
|
||||||
|
|
||||||
|
pctCreate $1 "$TEMPLATE" "$2" "$3"
|
||||||
|
|
||||||
|
sleep ${TIMEOUT:=5}
|
||||||
|
|
||||||
|
@ lxc-attach $1 apt update
|
||||||
|
@ lxc-attach $1 -- apt upgrade -y
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
10
Makefile
10
Makefile
@ -17,9 +17,17 @@ gate: ./gate-traefik
|
|||||||
ns:
|
ns:
|
||||||
$@/make.sh
|
$@/make.sh
|
||||||
|
|
||||||
|
.PHONY: ssh
|
||||||
|
ssh:
|
||||||
|
$@/make.sh
|
||||||
|
|
||||||
|
.PHONY: syncthing
|
||||||
|
syncthing:
|
||||||
|
$@/make.sh
|
||||||
|
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
all: config gate dns
|
all: config gate ns ssh syncthing
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -24,6 +24,10 @@ source ../.pct-helpers
|
|||||||
DFL_ID=${DFL_ID:=101}
|
DFL_ID=${DFL_ID:=101}
|
||||||
DFL_CTHOSTNAME=${GATE_HOSTNAME:=${DFL_CTHOSTNAME:=gate}}
|
DFL_CTHOSTNAME=${GATE_HOSTNAME:=${DFL_CTHOSTNAME:=gate}}
|
||||||
|
|
||||||
|
RAM=128
|
||||||
|
SWAP=$RAM
|
||||||
|
DRIVE=0.5
|
||||||
|
|
||||||
DFL_WAN_IP=${DFL_WAN_IP}
|
DFL_WAN_IP=${DFL_WAN_IP}
|
||||||
DFL_WAN_GATE=${DFL_WAN_GATE}
|
DFL_WAN_GATE=${DFL_WAN_GATE}
|
||||||
|
|
||||||
@ -41,13 +45,13 @@ readVars
|
|||||||
|
|
||||||
OPTS_STAGE_1="\
|
OPTS_STAGE_1="\
|
||||||
--hostname $CTHOSTNAME \
|
--hostname $CTHOSTNAME \
|
||||||
--memory 128 \
|
--memory $RAM \
|
||||||
--swap 128 \
|
--swap $SWAP \
|
||||||
--net0 name=wan,bridge=vmbr${WAN_BRIDGE},firewall=1${WAN_GATE:+,gw=${WAN_GATE}}${WAN_IP:+,ip=${WAN_IP}},type=veth \
|
--net0 name=wan,bridge=vmbr${WAN_BRIDGE},firewall=1${WAN_GATE:+,gw=${WAN_GATE}}${WAN_IP:+,ip=${WAN_IP}},type=veth \
|
||||||
--net1 name=admin,bridge=vmbr${ADMIN_BRIDGE},firewall=1${ADMIN_IP:+,ip=${ADMIN_IP}},type=veth \
|
--net1 name=admin,bridge=vmbr${ADMIN_BRIDGE},firewall=1${ADMIN_IP:+,ip=${ADMIN_IP}},type=veth \
|
||||||
--net2 name=lan,bridge=vmbr${LAN_BRIDGE},firewall=1${LAN_IP:+,ip=${LAN_IP}},type=veth \
|
--net2 name=lan,bridge=vmbr${LAN_BRIDGE},firewall=1${LAN_IP:+,ip=${LAN_IP}},type=veth \
|
||||||
--storage local-lvm \
|
--storage local-lvm \
|
||||||
--rootfs local-lvm:0.5 \
|
--rootfs local-lvm:$DRIVE \
|
||||||
--unprivileged 1 \
|
--unprivileged 1 \
|
||||||
${PCT_EXTRA} \
|
${PCT_EXTRA} \
|
||||||
"
|
"
|
||||||
|
|||||||
10
ns/make.sh
10
ns/make.sh
@ -24,6 +24,10 @@ source ../.pct-helpers
|
|||||||
DFL_ID=${DFL_ID:=100}
|
DFL_ID=${DFL_ID:=100}
|
||||||
DFL_CTHOSTNAME=${NS_HOSTNAME:=${DFL_CTHOSTNAME:=ns}}
|
DFL_CTHOSTNAME=${NS_HOSTNAME:=${DFL_CTHOSTNAME:=ns}}
|
||||||
|
|
||||||
|
RAM=128
|
||||||
|
SWAP=$RAM
|
||||||
|
DRIVE=0.5
|
||||||
|
|
||||||
WAN_IP=-
|
WAN_IP=-
|
||||||
WAN_GATE=-
|
WAN_GATE=-
|
||||||
DFL_ADMIN_IP=${DFL_ADMIN_IP:=10.0.0.1/24}
|
DFL_ADMIN_IP=${DFL_ADMIN_IP:=10.0.0.1/24}
|
||||||
@ -41,12 +45,12 @@ readVars
|
|||||||
|
|
||||||
OPTS_STAGE_1="\
|
OPTS_STAGE_1="\
|
||||||
--hostname $CTHOSTNAME \
|
--hostname $CTHOSTNAME \
|
||||||
--memory 128 \
|
--memory $RAM \
|
||||||
--swap 128 \
|
--swap $SWAP \
|
||||||
--net0 name=lan,bridge=vmbr0,firewall=1${LAN_GATE:+,gw=$LAN_GATE}${LAN_IP:+,ip=$LAN_IP},type=veth \
|
--net0 name=lan,bridge=vmbr0,firewall=1${LAN_GATE:+,gw=$LAN_GATE}${LAN_IP:+,ip=$LAN_IP},type=veth \
|
||||||
--net1 name=admin,bridge=vmbr1,firewall=1${ADMIN_IP:+,ip=$ADMIN_IP},type=veth \
|
--net1 name=admin,bridge=vmbr1,firewall=1${ADMIN_IP:+,ip=$ADMIN_IP},type=veth \
|
||||||
--storage local-lvm \
|
--storage local-lvm \
|
||||||
--rootfs local-lvm:0.5 \
|
--rootfs local-lvm:$DRIVE \
|
||||||
--unprivileged 1 \
|
--unprivileged 1 \
|
||||||
${PCT_EXTRA} \
|
${PCT_EXTRA} \
|
||||||
"
|
"
|
||||||
|
|||||||
87
ssh/make.sh
Executable file
87
ssh/make.sh
Executable file
@ -0,0 +1,87 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
|
cd $(dirname $0)
|
||||||
|
PATH=$PATH:$(dirname "$(pwd)")
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
|
source ../.pct-helpers
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
|
[ -e ../config.global ] \
|
||||||
|
&& source ../config.global
|
||||||
|
|
||||||
|
[ -e ./config ] \
|
||||||
|
&& source ./config
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
|
DFL_ID=${DFL_ID:=102}
|
||||||
|
DFL_CTHOSTNAME=${DFL_CTHOSTNAME:=ssh}
|
||||||
|
|
||||||
|
DFL_RAM=${DFL_RAM:=1024}
|
||||||
|
DFL_SWAP=${DFL_SWAP:=${DFL_RAM:=1024}}
|
||||||
|
DFL_DRIVE=${DFL_DRIVE:=16}
|
||||||
|
|
||||||
|
WAN_IP=-
|
||||||
|
WAN_GATE=-
|
||||||
|
ADMIN_IP=-
|
||||||
|
ADMIN_GATE=-
|
||||||
|
LAN_IP=-
|
||||||
|
LAN_GATE=-
|
||||||
|
|
||||||
|
REBOOT=${REBOOT:=1}
|
||||||
|
|
||||||
|
readVars
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
|
OPTS_STAGE_1="\
|
||||||
|
--hostname $CTHOSTNAME \
|
||||||
|
--memory $RAM \
|
||||||
|
--swap $SWAP \
|
||||||
|
--net0 name=lan,bridge=vmbr0,firewall=1,ip=dhcp,type=veth \
|
||||||
|
--net1 name=admin,bridge=vmbr1,firewall=1,ip=dhcp,type=veth \
|
||||||
|
--storage local-lvm \
|
||||||
|
--rootfs local-lvm:$DRIVE \
|
||||||
|
--unprivileged 1 \
|
||||||
|
${PCT_EXTRA} \
|
||||||
|
"
|
||||||
|
|
||||||
|
OPTS_STAGE_2="\
|
||||||
|
--startup order=90,up=10 \
|
||||||
|
--onboot 1 \
|
||||||
|
"
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
|
echo "# Creating CT..."
|
||||||
|
pctCreateDebian $ID "${OPTS_STAGE_1}" "$PASS"
|
||||||
|
|
||||||
|
echo "# Installing dependencies..."
|
||||||
|
@ lxc-attach $ID apt install vim htop iftop iotop tmux mc
|
||||||
|
|
||||||
|
echo "# Setup: user..."
|
||||||
|
xread "user name for ssh: " SSH_USER
|
||||||
|
[ -z $SSH_USER ] \
|
||||||
|
|| @ lxc-attach $ID -- adduser $SSH_USER
|
||||||
|
|
||||||
|
echo "# Post config..."
|
||||||
|
pctSet $ID "${OPTS_STAGE_2}" $REBOOT
|
||||||
|
|
||||||
|
echo "# Done."
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
# vim:set ts=4 sw=4 :
|
||||||
|
|
||||||
|
|
||||||
91
syncthing/make.sh
Executable file
91
syncthing/make.sh
Executable file
@ -0,0 +1,91 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
|
cd $(dirname $0)
|
||||||
|
PATH=$PATH:$(dirname "$(pwd)")
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
|
source ../.pct-helpers
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
|
[ -e ../config.global ] \
|
||||||
|
&& source ../config.global
|
||||||
|
|
||||||
|
[ -e ./config ] \
|
||||||
|
&& source ./config
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
|
DFL_ID=${DFL_ID:=301}
|
||||||
|
DFL_CTHOSTNAME=${DFL_CTHOSTNAME:=syncthing}
|
||||||
|
|
||||||
|
DFL_RAM=${DFL_RAM:=1024}
|
||||||
|
DFL_SWAP=${DFL_SWAP:=${DFL_RAM:=1024}}
|
||||||
|
DFL_DRIVE=${DFL_DRIVE:=8}
|
||||||
|
|
||||||
|
WAN_IP=-
|
||||||
|
WAN_GATE=-
|
||||||
|
ADMIN_IP=-
|
||||||
|
ADMIN_GATE=-
|
||||||
|
LAN_IP=-
|
||||||
|
LAN_GATE=-
|
||||||
|
|
||||||
|
REBOOT=${REBOOT:=1}
|
||||||
|
|
||||||
|
readVars
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
|
OPTS_STAGE_1="\
|
||||||
|
--hostname $CTHOSTNAME \
|
||||||
|
--memory $RAM \
|
||||||
|
--swap $SWAP \
|
||||||
|
--net0 name=lan,bridge=vmbr0,firewall=1,ip=dhcp,type=veth \
|
||||||
|
--net1 name=admin,bridge=vmbr1,firewall=1,ip=dhcp,type=veth \
|
||||||
|
--storage local-lvm \
|
||||||
|
--rootfs local-lvm:$DRIVE \
|
||||||
|
--unprivileged 1 \
|
||||||
|
${PCT_EXTRA} \
|
||||||
|
"
|
||||||
|
|
||||||
|
OPTS_STAGE_2="\
|
||||||
|
--startup order=90,up=10 \
|
||||||
|
--onboot 1 \
|
||||||
|
"
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
|
echo "# Creating CT..."
|
||||||
|
pctCreateAlpine $ID "${OPTS_STAGE_1}" "$PASS"
|
||||||
|
|
||||||
|
echo "# Installing dependencies..."
|
||||||
|
@ lxc-attach $ID apk add bash syncthing
|
||||||
|
|
||||||
|
echo "# Setup: syncthing..."
|
||||||
|
@ lxc-attach $ID rc-update add syncthing
|
||||||
|
@ lxc-attach $ID rc-service syncthing start
|
||||||
|
|
||||||
|
echo "# Setup: dashboard..."
|
||||||
|
sleep ${TIMEOUT:=5}
|
||||||
|
@ lxc-attach $ID -- \
|
||||||
|
sed \
|
||||||
|
-e 's/127\.0\.0\.1:8384/0.0.0.0:8384/g' \
|
||||||
|
-i /var/lib/syncthing/.config/syncthing/config.xml
|
||||||
|
|
||||||
|
echo "# Post config..."
|
||||||
|
pctSet $ID "${OPTS_STAGE_2}" $REBOOT
|
||||||
|
|
||||||
|
echo "# Done."
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
# vim:set ts=4 sw=4 :
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user