Sur les serveurs dédiés de la gamme kimsufi ou Soyoustart, on peut choisir le système d’exploitation à installer suivant des templates proposés dans le manager.
Ex: chez Kimsufi
La liste est assez longue mais peut parfois ne pas suffire, comme par exemple le template de Proxmox VE 7 n’est pas présent.
Il existe deux possibilités pour pouvoir installer son propre système d’exploitation :
- via l’IPMI ou le KVM IP
- via le mode RESCUE
Installation avec IPMI
La doc d’installation fournie par OVH est largement suffisante et bien détaillée pour pouvoir se servir d’IPMI.
Elle est disponible à cette adresse: Installation d’un système d’exploitation à l’aide d’IPMI.
Installation sans IPMI ni KVM IP
Depuis novembre 2021, IPMI n’est plus proposé avec les serveurs et KVM IP est actuellement une option payante.
Activation du mode rescue
Si c’est la première fois que vous accédez à votre serveur, il sera déjà dans ce mode de démarrage, sinon il faut vous rendre dans le manager de l’hébergeur et définir le NetBoot en mode customer rescue system.
Attention !!!! Vérifier que vous avez sélectionné le bon serveur dans la liste déroulante (si vous en avez plusieurs), il serait dommage de formater un serveur en production.
Puis cliquer sur le bouton « NetBoot ».
Sélectionner le mode Rescue et cliquer sur « Suivant ».
Vous devrez confirmer que vous êtes sûr de bien vouloir réaliser cette action dans la fenêtre suivante.
Cliquer sur le bouton « Confirmer ».
Afin que le paramètre soit pris en compte, il faut redémarrer le serveur pour booter sur l’image iso du rescue64-pro.
Attendre la réception des informations de connexion en SSH sur le serveur.
Recueil d’informations
Attention cette étape là est importante, nous allons collecter des informations afin de pourvoir configurer notre serveur au mieux lorsque notre OS (dans mon cas proxmox VE 7) sera installé.
Se connecter en SSH avec les identifiants reçus plut tôt par mail avec l’utilisateur root.
Vérifier la prise en charge de la virtualisation:
root@rescue:~# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 86
Model name: Intel(R) Xeon(R) CPU D-1521 @ 2.40GHz
Stepping: 3
CPU MHz: 800.411
CPU max MHz: 2700.0000
CPU min MHz: 800.0000
BogoMIPS: 4800.10
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 6144K
NUMA node0 CPU(s): 0-7
La ligne qu’il faut bien regarder est celle qui fait référence à la Virtualization
, dans notre cas elle est bien définie sur VT-x
qui correspond à la technologie de virtualisation Intel.
Virtualisation imbriquée
Si on veut faire de la virtualisation imbriquée, il faut contrôler un autre paramètre.
root@rescue:~# cat /sys/module/kvm_intel/parameters/nested
Y
Il est possible que la virtualisation dans la virtualisation ne soit pas activée par défaut, la commande ci-dessus ne vous renverra par Y
mais N
.
Pour les processeurs intel, vous pouvez l’activer avec les commandes ci-dessous:
root@rescue:~# modprobe -r kvm_intel
root@rescue:~# modprobe kvm_intel nested=1
Si vous êtes sous AMD, remplacer kvm_intel par kvm_amd.
Vérifier les informations de stockage
root@rescue:~# lsscsi -s
[0:0:0:0] disk ATA HGST HUS726020AL T920 /dev/sda 2.00TB
[1:0:0:0] disk ATA HGST HUS726020AL T920 /dev/sdb 2.00TB
[2:0:0:0] disk ATA HGST HUS726020AL T920 /dev/sdc 2.00TB
[3:0:0:0] disk ATA HGST HUS726020AL T920 /dev/sdd 2.00TB
On peut voir ici que l’on a 4 disques de 2To identifiés par /dev/sda, /dev/sdb, /dev/sdc, /dev/sdd.
Informations réseaux
- Lister les interfaces réseaux
root@rescue:~# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
4: ifb0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 32
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
5: ifb1: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 32
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
6: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
7: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
8: teql0: <NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 100
link/void
9: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
10: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/gre 0.0.0.0 brd 0.0.0.0
11: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1476 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
12: erspan0@NONE: <BROADCAST,MULTICAST> mtu 1464 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
13: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
14: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/tunnel6 :: brd ::
Nous constatons que la machine dispose de deux interfaces réseau, eth0
et eth1
, la première étant connectée (state UP
), la seconde ne l’étant pas (state DOWN
).
Bien noter les adresses MAC associées à chaque interface. Elles seront utiles pour configurer nos interfaces après l’installation de Proxmox.
Nous allons récupérer les nouveaux noms prédictibles qui nous servirons dans le cas d’une installation d’une distribution Linux utilisant ce nommage :
root@rescue:~# udevadm info --path=/sys/class/net/eth0 | grep ID_NET_NAME_PATH
E: ID_NET_NAME_PATH=enp3s0f0
root@rescue:~# udevadm info --path=/sys/class/net/eth1 | grep ID_NET_NAME_PATH
E: ID_NET_NAME_PATH=enp3s0f1
Nos deux interfaces eth0
et eth1
correspondent donc aux interfaces enp3s0f0 et enp3s0f1 dans la nouvelle convention de nommage sur ma machine : Predictable Network Interface Names.
- Récupération de l’adresse IPv4
root@rescue:~# ip -4 addr show eth0
6: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
inet xxx.xxx.xxx.xxx/24 brd xxx.xxx.xxx.255 scope global eth0
valid_lft forever preferred_lft forever
- Récupération de la route IPv4
root@rescue:~# ip -4 route
default via xxx.xxx.xxx.xxx dev eth0
xxx.xxx.xxx.xxx/24 dev eth0 proto kernel scope link src xxx.xxx.xxx.xxx
- Récupération de l’adresse IPv6
root@rescue:~# ip -6 addr show eth0
6: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 2001:41d0:xxxx:xxxx::1/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::ec4:xxxx:xxxx:xxxx/64 scope link
valid_lft forever preferred_lft forever
- Récupérons la route IPv6
root@rescue:~# ip -6 addr show eth0
6: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 2001:41d0:xxxx:xxxx::1/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::ec4:xxxx:xxxx:xxxx/64 scope link
valid_lft forever preferred_lft forever
- Terminons par récupérer l’adresse du serveur DNS
root@rescue:~# cat /etc/resolv.conf
nameserver 213.186.33.99
Préparation de l’installation
Vérification de la non présence de partitions.
root@rescue:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdd 8:48 0 1.8T 0 disk
sdb 8:16 0 1.8T 0 disk
sdc 8:32 0 1.8T 0 disk
sda 8:0 0 1.8T 0 disk
Pas d’actions particulières à réaliser les disques sont vierges.
Installation
Reconnexion en créant un tunnel ssh sur le port 5900 (protocole vnc) de la machine distante vers la machine locale.
ssh -L5900:127.0.0.1:5900 root@xxx.xxx.xxx.xxx
Déposer l’iso en sftp ou télécharger l’image depuis le site de proxmox.
root@rescue:~# wget http://download.proxmox.com/iso/proxmox-ve_7.1-1.iso
Vérifier la présence de l’utilitaire QEMU.
root@rescue:~# which qemu-system-x86_64
/usr/bin/qemu-system-x86_64
Nous allons créer une machine virtuel avec QEMU qui utilisera les disques physiques du serveur et l’image ISO comme support d’installation.
De plus, nous allons créer un serveur vnc
pour pouvoir accéder à la machine virtuelle qui écoutera sur le port 5900 et uniquement sur l’interface de loopback
.
Qemu ne prenant en charge que 4 disques durs ide au maximum, nous déclarons le cd-rom en iscsi.
root@rescue:~# qemu-system-x86_64 -enable-kvm -vnc 127.0.0.1:0 -cpu host -smp 4 -net nic -net user -m 4096M -hda /dev/sda -hdb /dev/sdb -hdc /dev/sdc -hdd /dev/sdd --drive id=cdrom1,if=none,format=raw,readonly=on,file=proxmox-ve_7.1-1.iso -device virtio-scsi-pci,id=scsi0 -device scsi-cd,bus=scsi0.0,drive=cdrom1
Description des options :
-enable-kvm : utilise le support de kvm, la couche de virtualisation de Linux
-vnc 127.0.0.1:0 : créé un serveur vnc sur l'interface de loopback, port 5900
-cpu host : expose un cpu virtuel identique au cpu hôte
-smp 4 : expose quatre coeurs
-net nic : créé une interface rféseau virtuelle
-net user : crée un réseau virtuel NAT avec DHCP
-m 4096M : expose 4Gio de mémoire vive
-hda /dev/sda : utilise le disque physique /dev/sda comme 1er disque de la VM
-hdb /dev/sdb : utilise le disque physique /dev/sdb comme 2nd disque de la VM
-hdc /dev/sdc : utilise le disque physique /dev/sdc comme 3eme disque de la VM
-hdd /dev/sdd : utilise le disque physique /dev/sdd comme 4eme disque de la VM
--drive id=cdrom1,if=none,format=raw,readonly=on,file=proxmox-ve_7.1-1.iso -device virtio-scsi-pci,id=scsi0 -device scsi-cd,bus=scsi0.0,drive=cdrom1 : Montage de l'iso dans un lecteur de cdrom avec le pilote virtio
Se connecter en vnc sur l’addresse 127.0.0.1 sur le port 5900. On peut constater que l’on a bien le retour de l’interface d’installation du proxmox.
Accepter la licence d’utilisation en cliquant sur « I agree ».
Nous arrivons ensuite sur l’interface de gestion des disques durs.
Cliquer sur le bouton « Options » afin de configurer le type de RAID et le système de fichier qui va être utilisé.
Dans mon cas j’ai choisi btrfs en RAID 10 . Cliquer sur « OK » et ensuite « Next ».
Dans l’interface suivante il faut renseigner les informations de localisation et de zone de temps .
Cliquer ensuite sur « Next »
Attention à l’interface suivante, il faut définir le mot de passe associé au compte root.
Déclarez un mot de passe facile à saisir compatible clavier azerty/qwerty (émulé vnc).
Renseigner le mot de passe et l’adresse mail , puis cliquer sur « Next ».
Pour les paramètres réseau, nous renseignons le nom du serveur et l’adresse IP du DNS, le reste nous n’y touchons pas pour le moment.
Cliquer sur « Next ».
Une interface nous demande de confirmer l’installation de proxmox en affichant un récapitulatif des paramètres saisis précédemment.
Cliquer sur le bouton « Install » si tout est bon.
Proxmox redémarre automatiquement si la case a été cochée avant l’installation.
Proxmox a été correctement installé mais il faut encore modifier les paramètres réseau.
Post-installation
Se connecter sur la machine avec une des méthodes ci-dessous:
- Méthode VNC avec tunnel SSH précédemment créé
Attention au clavier de VNC !!!!
Se connecter en tant que root afin d’ajuster les paramètres réseau.
- Méthode rescue cd
Pour monter les disques btrfs en RAID10 en mode rescue, il suffit de monter un des disques membre du raid.
La commande est trompeuse. les 4 disques sont bien montés en raid 10.
root@rescue:~# mount /dev/sda3 /mnt
Éditer le fichier /etc/hosts
et modifier l’adresse 10.0.2.15 avec l’adresse Ipv4 récupérée précédemment.
Editez le fichier /etc/resolv.conf
et si nécessaire changez l’adresse IP 10.0.2.1
avec l’adresse IP de votre serveur DNS.
Editez le fichier /etc/network/interfaces
(dans le cas d’une Debian ou dérivée comme Proxmox), changez l’adresse IP 10.0.2.15
avec l’adresse IP réelle de votre machine, changez l’adresse IP 10.0.2.2
par l’adresse IP réelle de la gateway, puis changez le nom d’interface ens3
avec le nom réel de votre interface physique.
Dans mon cas ça n’a pas fonctionné, du coup je me suis inspiré d’un autre proxmox installé en IPMI pour le nommage des interfaces.
iface eno3 inet manual
iface eno4 inet manual
Pensez ensuite à ajouter l’adresse MAC associée à l’interface active pour être sûr de présenter la bonne adresse attendue par l’hébergeur avec l’option hwaddress
.
Pensez aussi à changer le nom de l’interface physique liée au bridge avec l’option bridge-ports
.
auto vmbr0
iface vmbr0 inet static
address xx.xx.xx.xx/24
gateway xx.xx.xx.xxx
bridge-ports eno3
bridge-stp off
bridge-fd 0
hwaddress xx:xx:xx:xx:xx:xx
Démontez le disque.
root@rescue:~# umount /mnt
Une fois ces ajustements effectués, vous pouvez arrêter la machine virtuelle en tapant la commande:
root@rescue:~# shutdown -h now
Démarrage Proxmox
Afin de démarrer sur le proxmox en mode normal, il faut se rendre dans le gestionnaire de l’hébergeur afin de modifier l’option de Netboot.
Cliquez sur le bouton « Suivant ».
Cliquer sur le bouton « Confirmer » pour approuver le démarrage sur le disque dur.
Afin que le paramètre soit pris en compte, il faut redémarrer le serveur pour démarrer Proxmox.
Normalement vous devriez pourvoir accéder en web à votre proxmox.
Si ce n’est pas le cas, il faudra investiguer et vérifier les paramètres réseaux dans les fichiers modifiés avant le redémarrage du serveur sur le disque dur.
Pour finir, si vous avez suivi ce tutoriel, vous voilà avec un hyperviseur proxmox 7 alors qu’actuellement ovh ne le propose pas dans ces templates.