Ajoute un mode local Proxmox sans installation hôte
This commit is contained in:
@@ -9,11 +9,14 @@ Usage:
|
||||
--proxmox-user root@pam \
|
||||
--proxmox-password 'motdepasse'
|
||||
|
||||
./scripts/install-proxmox-lxc.sh --local
|
||||
|
||||
Options principales:
|
||||
--proxmox-host IP ou nom DNS du serveur Proxmox
|
||||
--proxmox-user Utilisateur SSH Proxmox (defaut: root@pam)
|
||||
--proxmox-password Mot de passe SSH Proxmox
|
||||
--ssh-port Port SSH Proxmox (defaut: 22)
|
||||
--local Execute directement sur l'hote Proxmox local
|
||||
--ctid CTID Proxmox. Si vide, le prochain ID libre est utilise
|
||||
--hostname Nom du LXC (defaut: chesscubing-web)
|
||||
--lxc-ip IP du LXC ou 'dhcp' (defaut: dhcp)
|
||||
@@ -51,6 +54,7 @@ PROXMOX_HOST=""
|
||||
PROXMOX_USER="root@pam"
|
||||
PROXMOX_PASSWORD="${PROXMOX_PASSWORD:-}"
|
||||
PROXMOX_PORT="22"
|
||||
LOCAL_MODE="0"
|
||||
|
||||
CTID=""
|
||||
LXC_HOSTNAME="chesscubing-web"
|
||||
@@ -85,6 +89,10 @@ while [[ $# -gt 0 ]]; do
|
||||
PROXMOX_PORT="${2:-}"
|
||||
shift 2
|
||||
;;
|
||||
--local)
|
||||
LOCAL_MODE="1"
|
||||
shift
|
||||
;;
|
||||
--ctid)
|
||||
CTID="${2:-}"
|
||||
shift 2
|
||||
@@ -151,41 +159,19 @@ while [[ $# -gt 0 ]]; do
|
||||
esac
|
||||
done
|
||||
|
||||
[[ -n "$PROXMOX_HOST" ]] || die "Merci de fournir --proxmox-host."
|
||||
[[ -n "$PROXMOX_USER" ]] || die "Merci de fournir --proxmox-user."
|
||||
|
||||
if [[ -z "$PROXMOX_PASSWORD" ]]; then
|
||||
read -rsp "Mot de passe SSH pour ${PROXMOX_USER}@${PROXMOX_HOST}: " PROXMOX_PASSWORD
|
||||
echo
|
||||
if [[ "$LOCAL_MODE" != "1" && -z "$PROXMOX_HOST" ]]; then
|
||||
if command -v pct >/dev/null 2>&1 && command -v pveam >/dev/null 2>&1; then
|
||||
LOCAL_MODE="1"
|
||||
fi
|
||||
fi
|
||||
|
||||
need_cmd ssh
|
||||
need_cmd sshpass
|
||||
payload_script="$(mktemp)"
|
||||
cleanup() {
|
||||
rm -f "$payload_script"
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
printf 'Creation du LXC "%s" sur %s...\n' "$LXC_HOSTNAME" "$PROXMOX_HOST"
|
||||
|
||||
sshpass -p "$PROXMOX_PASSWORD" \
|
||||
ssh \
|
||||
-p "$PROXMOX_PORT" \
|
||||
-o StrictHostKeyChecking=accept-new \
|
||||
-o PreferredAuthentications=password \
|
||||
-o PubkeyAuthentication=no \
|
||||
"$PROXMOX_USER@$PROXMOX_HOST" \
|
||||
bash -s -- \
|
||||
"$CTID" \
|
||||
"$LXC_HOSTNAME" \
|
||||
"$LXC_IP" \
|
||||
"$LXC_GATEWAY" \
|
||||
"$LXC_BRIDGE" \
|
||||
"$LXC_CORES" \
|
||||
"$LXC_MEMORY" \
|
||||
"$LXC_SWAP" \
|
||||
"$LXC_DISK_GB" \
|
||||
"$TEMPLATE_STORAGE" \
|
||||
"$ROOTFS_STORAGE" \
|
||||
"$REPO_URL" \
|
||||
"$REPO_BRANCH" \
|
||||
"$LXC_PASSWORD" <<'REMOTE'
|
||||
cat >"$payload_script" <<'REMOTE'
|
||||
set -euo pipefail
|
||||
|
||||
ctid="$1"
|
||||
@@ -435,3 +421,59 @@ Pour mettre a jour l'application plus tard:
|
||||
./scripts/update-proxmox-lxc.sh --proxmox-host <ip-proxmox> --proxmox-user <user> --proxmox-password '<motdepasse>' --ctid $ctid
|
||||
EOF
|
||||
REMOTE
|
||||
|
||||
if [[ "$LOCAL_MODE" == "1" ]]; then
|
||||
printf 'Creation du LXC "%s" en local sur cet hote Proxmox...\n' "$LXC_HOSTNAME"
|
||||
bash "$payload_script" \
|
||||
"$CTID" \
|
||||
"$LXC_HOSTNAME" \
|
||||
"$LXC_IP" \
|
||||
"$LXC_GATEWAY" \
|
||||
"$LXC_BRIDGE" \
|
||||
"$LXC_CORES" \
|
||||
"$LXC_MEMORY" \
|
||||
"$LXC_SWAP" \
|
||||
"$LXC_DISK_GB" \
|
||||
"$TEMPLATE_STORAGE" \
|
||||
"$ROOTFS_STORAGE" \
|
||||
"$REPO_URL" \
|
||||
"$REPO_BRANCH" \
|
||||
"$LXC_PASSWORD"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
[[ -n "$PROXMOX_HOST" ]] || die "Merci de fournir --proxmox-host."
|
||||
[[ -n "$PROXMOX_USER" ]] || die "Merci de fournir --proxmox-user."
|
||||
|
||||
if [[ -z "$PROXMOX_PASSWORD" ]]; then
|
||||
read -rsp "Mot de passe SSH pour ${PROXMOX_USER}@${PROXMOX_HOST}: " PROXMOX_PASSWORD
|
||||
echo
|
||||
fi
|
||||
|
||||
need_cmd ssh
|
||||
need_cmd sshpass
|
||||
|
||||
printf 'Creation du LXC "%s" sur %s...\n' "$LXC_HOSTNAME" "$PROXMOX_HOST"
|
||||
|
||||
sshpass -p "$PROXMOX_PASSWORD" \
|
||||
ssh \
|
||||
-p "$PROXMOX_PORT" \
|
||||
-o StrictHostKeyChecking=accept-new \
|
||||
-o PreferredAuthentications=password \
|
||||
-o PubkeyAuthentication=no \
|
||||
"$PROXMOX_USER@$PROXMOX_HOST" \
|
||||
bash -s -- \
|
||||
"$CTID" \
|
||||
"$LXC_HOSTNAME" \
|
||||
"$LXC_IP" \
|
||||
"$LXC_GATEWAY" \
|
||||
"$LXC_BRIDGE" \
|
||||
"$LXC_CORES" \
|
||||
"$LXC_MEMORY" \
|
||||
"$LXC_SWAP" \
|
||||
"$LXC_DISK_GB" \
|
||||
"$TEMPLATE_STORAGE" \
|
||||
"$ROOTFS_STORAGE" \
|
||||
"$REPO_URL" \
|
||||
"$REPO_BRANCH" \
|
||||
"$LXC_PASSWORD" < "$payload_script"
|
||||
|
||||
@@ -10,11 +10,14 @@ Usage:
|
||||
--proxmox-password 'motdepasse' \
|
||||
--ctid 120
|
||||
|
||||
./scripts/update-proxmox-lxc.sh --local --ctid 120
|
||||
|
||||
Options principales:
|
||||
--proxmox-host IP ou nom DNS du serveur Proxmox
|
||||
--proxmox-user Utilisateur SSH Proxmox (defaut: root@pam)
|
||||
--proxmox-password Mot de passe SSH Proxmox
|
||||
--ssh-port Port SSH Proxmox (defaut: 22)
|
||||
--local Execute directement sur l'hote Proxmox local
|
||||
--ctid CTID du LXC a mettre a jour
|
||||
--hostname Nom du LXC si le CTID n'est pas fourni (defaut: chesscubing-web)
|
||||
--branch Branche Git a deployer (defaut: main)
|
||||
@@ -35,6 +38,7 @@ PROXMOX_HOST=""
|
||||
PROXMOX_USER="root@pam"
|
||||
PROXMOX_PASSWORD="${PROXMOX_PASSWORD:-}"
|
||||
PROXMOX_PORT="22"
|
||||
LOCAL_MODE="0"
|
||||
|
||||
CTID=""
|
||||
LXC_HOSTNAME="chesscubing-web"
|
||||
@@ -58,6 +62,10 @@ while [[ $# -gt 0 ]]; do
|
||||
PROXMOX_PORT="${2:-}"
|
||||
shift 2
|
||||
;;
|
||||
--local)
|
||||
LOCAL_MODE="1"
|
||||
shift
|
||||
;;
|
||||
--ctid)
|
||||
CTID="${2:-}"
|
||||
shift 2
|
||||
@@ -80,30 +88,19 @@ while [[ $# -gt 0 ]]; do
|
||||
esac
|
||||
done
|
||||
|
||||
[[ -n "$PROXMOX_HOST" ]] || die "Merci de fournir --proxmox-host."
|
||||
[[ -n "$PROXMOX_USER" ]] || die "Merci de fournir --proxmox-user."
|
||||
|
||||
if [[ -z "$PROXMOX_PASSWORD" ]]; then
|
||||
read -rsp "Mot de passe SSH pour ${PROXMOX_USER}@${PROXMOX_HOST}: " PROXMOX_PASSWORD
|
||||
echo
|
||||
if [[ "$LOCAL_MODE" != "1" && -z "$PROXMOX_HOST" ]]; then
|
||||
if command -v pct >/dev/null 2>&1 && command -v pveam >/dev/null 2>&1; then
|
||||
LOCAL_MODE="1"
|
||||
fi
|
||||
fi
|
||||
|
||||
need_cmd ssh
|
||||
need_cmd sshpass
|
||||
payload_script="$(mktemp)"
|
||||
cleanup() {
|
||||
rm -f "$payload_script"
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
printf 'Mise a jour du LXC ChessCubing sur %s...\n' "$PROXMOX_HOST"
|
||||
|
||||
sshpass -p "$PROXMOX_PASSWORD" \
|
||||
ssh \
|
||||
-p "$PROXMOX_PORT" \
|
||||
-o StrictHostKeyChecking=accept-new \
|
||||
-o PreferredAuthentications=password \
|
||||
-o PubkeyAuthentication=no \
|
||||
"$PROXMOX_USER@$PROXMOX_HOST" \
|
||||
bash -s -- \
|
||||
"$CTID" \
|
||||
"$LXC_HOSTNAME" \
|
||||
"$REPO_BRANCH" <<'REMOTE'
|
||||
cat >"$payload_script" <<'REMOTE'
|
||||
set -euo pipefail
|
||||
|
||||
ctid="$1"
|
||||
@@ -168,3 +165,37 @@ Mise a jour terminee.
|
||||
- URL probable: http://${container_ip:-<ip_du_lxc>}
|
||||
EOF
|
||||
REMOTE
|
||||
|
||||
if [[ "$LOCAL_MODE" == "1" ]]; then
|
||||
printf 'Mise a jour du LXC ChessCubing en local sur cet hote Proxmox...\n'
|
||||
bash "$payload_script" \
|
||||
"$CTID" \
|
||||
"$LXC_HOSTNAME" \
|
||||
"$REPO_BRANCH"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
[[ -n "$PROXMOX_HOST" ]] || die "Merci de fournir --proxmox-host."
|
||||
[[ -n "$PROXMOX_USER" ]] || die "Merci de fournir --proxmox-user."
|
||||
|
||||
if [[ -z "$PROXMOX_PASSWORD" ]]; then
|
||||
read -rsp "Mot de passe SSH pour ${PROXMOX_USER}@${PROXMOX_HOST}: " PROXMOX_PASSWORD
|
||||
echo
|
||||
fi
|
||||
|
||||
need_cmd ssh
|
||||
need_cmd sshpass
|
||||
|
||||
printf 'Mise a jour du LXC ChessCubing sur %s...\n' "$PROXMOX_HOST"
|
||||
|
||||
sshpass -p "$PROXMOX_PASSWORD" \
|
||||
ssh \
|
||||
-p "$PROXMOX_PORT" \
|
||||
-o StrictHostKeyChecking=accept-new \
|
||||
-o PreferredAuthentications=password \
|
||||
-o PubkeyAuthentication=no \
|
||||
"$PROXMOX_USER@$PROXMOX_HOST" \
|
||||
bash -s -- \
|
||||
"$CTID" \
|
||||
"$LXC_HOSTNAME" \
|
||||
"$REPO_BRANCH" < "$payload_script"
|
||||
|
||||
Reference in New Issue
Block a user