% Installation de proxmox [Install Proxmox VE on Debian 12 Bookworm - Proxmox VE](https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_12_Bookworm) # 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`) ```bash $ ip a 1: lo: 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: 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` ```bash $ 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` ```bash 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. ```bash $ sudo su - root@server:~# mkdir bin root@server:~# nano bin/restore_network ``` Y placer le code suivant: ```bash #!/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 ``` ```bash 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: ```bash hostname --ip-address ``` Exemple: ``` 127.0.1.1 188.165.235.71 ``` # Installation de proxmox ## Préparation du gestionnaire de paquets APT ```bash 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 ```bash sudo wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg ``` Vérification ```bash 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 ```bash sudo apt update && sudo apt full-upgrade ``` ### Installation de `proxmox` ```bash sudo apt install proxmox-default-kernel ``` Redémarrer ```bash sudo shutdown -r now ``` Installation des paquets complémentaires: ```bash 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: ```bash sudo apt remove linux-image-amd64 'linux-image-6.1*' sudo update-grub ``` Suppression du paquet `os-prober`: ```bash 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: ```conf GatewayPorts yes PermitTunnel yes ``` Redémarrer le service `ssh`: ```bash 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: ```bash ssh -L 8006: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: ```bash ssh -f -N -T -L 8006: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:8006](https://localhost:8006) 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 ```bash sudo echo "Ensure sudo password is entered" sudo su - <