installation-proxmox.md 7.5 KB

% Installation de proxmox

Install Proxmox VE on Debian 12 Bookworm - Proxmox VE

Configuration

Proxmox requiert une configuration réseau avec IP statique

Récupération des adresses fournies par le DHCP

On récupère les informations données par le DHCP avec les commandes ip a (équivalente à ip addr show) et ip r (équivalente à ip route show)

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 4c:72:b9:20:ac:9e brd ff:ff:ff:ff:ff:ff
    altname eno1
    altname enp0s25
    inet 188.165.235.71/24 brd 188.165.235.255 scope global dynamic eth0
       valid_lft 63054sec preferred_lft 63054sec
    inet6 fe80::4e72:b9ff:fe20:ac9e/64 scope link 
       valid_lft forever preferred_lft forever

La sortie précédente nous indique:

  • l'IP: 188.165.235.71
  • le nom de l'interface: eth0
  • les alias (altname): eno1 et enp0s25
  • l'adresse de broadcast : 188.165.235.255
  • la longueur du masque de sous-réseau: /24
$ ip r
default via 188.165.235.254 dev eth0 
188.165.235.0/24 dev eth0 proto kernel scope link src 188.165.235.71 

La sortie précédente nous indique:

  • la passerelle (gateway) : 188.165.235.254
  • l'identifiant du sous-réseau: 188.165.235.0

DNS

Le DNS est donné par cat /etc/resolv.conf:

nameserver 213.186.33.99

Sauvegarde du fichier /etc/network/interfaces

sudo cp /etc/network/interfaces /etc/network/interfaces.restore

Création du fichier /etc/network/interfaces

iface eth0 inet static
    address 188.165.235.71
    alias eno1 enp0s25
    gateway 188.165.235.254
    network 188.165.235.0
    netmask 255.255.255.0
    broadcast 188.165.235.255
    dns-nameservers 213.186.33.99 208.67.222.123

Vérification du fichier /etc/network/interfaces

sudo ifup --no-act eth0

Restauration automatique du réseau

OVH

En cas de problème avec le fichier /etc/network/interfaces, on perdra la connexion réseau. Une possibilité est de redémarrer le serveur en mode Rescue, mais avec un temps d'attente qui peut être assez long.

Pour éviter tout problème, on va plutôt installer un script dans le crontab de root. Ce script redémarrera la machine au bout de 5 minutes en cas de problème réseau, avec les anciens paramètres.

$ sudo su - 
root@server:~# mkdir bin
root@server:~# nano bin/restore_network

Y placer le code suivant:

#!/bin/bash

# Vérifier si la machine peut accéder à Internet
check_network() {
    ping -c 1 8.8.8.8 >/dev/null 2>&1
    return $?
}

# Chemins des fichiers
INTERFACES_FILE="/etc/network/interfaces"
RESTORE_FILE="/etc/network/interfaces.restore"

# Fonction principale
main() {
    if check_network; then
        echo "Le réseau est fonctionnel. Aucune action nécessaire."
    else
        echo "Le réseau n'est pas fonctionnel. Restauration du fichier interfaces..."
        if [ -f "$RESTORE_FILE" ]; then
            cp "$RESTORE_FILE" "$INTERFACES_FILE"
            echo "Fichier restauré avec succès."
            
            echo "Redémarrage des interfaces réseau..."
            ifdown -a && ifup -a
            echo "Les interfaces réseau ont été redémarrées."
        else
            echo "Le fichier $RESTORE_FILE n'existe pas. Impossible de restaurer."
            exit 1
        fi
    fi
}

# Appel de la fonction principale
main
chmod +x bin/restore_network

Redémarrage des interfaces réseau

sudo ifdown eth0 ; sudo ifup eth0

Nom de la machine

Il faut ajouter une ligne au fichier /etc/hosts et qui correspond au nom de la machine.

188.165.235.71 ecaz.aezi.fr ecaz

On vérifie qu'au moins une adresse (hors boucle locale) est affichée par la commande suivante:

hostname --ip-address

Exemple:

127.0.1.1 188.165.235.71

Installation de proxmox

Préparation du gestionnaire de paquets APT

echo "deb [arch=amd64] http://download.proxmox.com/debian/pve bookworm pve-no-subscription" | sudo tee /etc/apt/sources.list.d/pve-install-repo.list

Ajout des clés de vérification

sudo wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg 

Vérification

sha512sum /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg > downloaded.txt ; echo "7da6fe34168adc6e479327ba517796d4702fa2f8b4f0a9833f5ea6e6b48f6507a6da403a274fe201595edc86a84463d50383d07f64bdde2e3658108db7d6dc87  /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg" > expected.txt ; diff downloaded.txt expected.txt && echo OK || echo KO ; rm downloaded.txt expected.txt

Devrait afficher OK

Mise à jour

sudo apt update && sudo apt full-upgrade

Installation de proxmox

sudo apt install proxmox-default-kernel

Redémarrer

sudo shutdown -r now

Installation des paquets complémentaires:

sudo apt install proxmox-ve postfix open-iscsi chrony

Configuration de postfix

  • Internet site
  • ecaz.aezi.fr

Post-installation de proxmox

Suppression du noyau Debian:

sudo apt remove linux-image-amd64 'linux-image-6.1*'
sudo update-grub

Suppression du paquet os-prober:

sudo apt remove os-prober

Autorisation des tunnels SSH

Pour permettre le tunnelling, on édite le fichier /etc/ssh/sshd_config et on positionne à yes les options suivantes:

GatewayPorts yes
PermitTunnel yes

Redémarrer le service ssh:

sudo systemctl restart ssh

Ouverture d'un tunnel pour accéder à l'interface proxmox

La commande la plus simple pour créer un tunnel redirigeant le port local 8006 vers le port distant du serveur proxmox n°8006 est:

ssh -L 8206:localhost:8006 ecaz

Cependant, ceci ouvre une session Shell.

Pour ouvrir le tunnel sans ouvrir une session dans le terminal on va plutôt utiliser:

ssh -f -N -T -L 8206:localhost:8006 ecaz

Finalisation de l'installation de proxmox

Connexion à l'interface

Après avoir ouver le tunnel, se connecter avec son navigateur à l'adresse suivante: https://localhost:8206

Accepter les risques de sécurité (tout passe par le tunnel SSH, donc les communications sont chiffrées entre votre poste de travail et le serveur)

:::warning

Si vous êtes sur un ordinateur public, n'acceptez pas les risques et utilisez un ordinateur personnel.

:::

Se connecter avec l'utilisateur root (GNU/Linux) du serveur. S'il n'a pas de mot de passe, il faut lui en créer un.

Suppression de la notification de non-souscription

sudo echo "Ensure sudo password is entered"
sudo su - <<EOF
cp /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.original
sed -Ezi.bak "s/(function\(orig_cmd\) \{)/\1\n\torig_cmd\(\);\n\treturn;/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service
EOF

Source: Remove Proxmox Subscription Notice (Tested to 8.2) | McLaren Data Systems