Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
technique:infrastructure:vm [2021/11/22 23:32] – ↷ Page déplacée et renommée de technique:infrastructure:machines_virtuelles:creation à technique:infrastructure:vm qduchemitechnique:infrastructure:vm [2022/09/23 10:04] (Version actuelle) – [Installer l'OS et partitionner] rdelaage
Ligne 1: Ligne 1:
 {{indexmenu_n>20}} {{indexmenu_n>20}}
 +# Créer une machine virtuelle Picasoft
  
-# Création d'une machine virtuelle+<bootnote critical>Toute l'opération se fait depuis l'interface d'administration de [[technique:infrastructure:install_proxmox|Proxmox]], sur `<machine>.picasoft.net:8006`, *e.g.* `caribou.picasoft.net:8006`. Il faut se connecter avec l'utilisateur `root` de la machine. Les identifiants sont dans le [[asso:tuto:vaultwarden|vaultwarden]].</bootnote>
  
-## Installation de la machine+## Création de la machine
  
 La première étape de s'assurer qu'on possède l'ISO du système d'exploitation que l'on souhaite installer. Le fichier ISO, s'il n'existe pas, est à déposer dans le dossier `/var/lib/vz/template/iso/` de l'hôte.  La première étape de s'assurer qu'on possède l'ISO du système d'exploitation que l'on souhaite installer. Le fichier ISO, s'il n'existe pas, est à déposer dans le dossier `/var/lib/vz/template/iso/` de l'hôte. 
Ligne 9: Ligne 10:
 <bootnote>Pour la dernière version de Debian, on pourra par exemple récupérer l'[URL de la dernière version stable](https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/), et la récupérer avec un `wget` dans ce dossier. Pour Alpine, on utilisera [Alpine Linux - Extended](https://alpinelinux.org/downloads/), la seule qui supporte une installation sans accès au réseau.</bootnote> <bootnote>Pour la dernière version de Debian, on pourra par exemple récupérer l'[URL de la dernière version stable](https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/), et la récupérer avec un `wget` dans ce dossier. Pour Alpine, on utilisera [Alpine Linux - Extended](https://alpinelinux.org/downloads/), la seule qui supporte une installation sans accès au réseau.</bootnote>
  
-Afin de créer une nouvelle machine virtuelle, il est nécessaire d'avoir accès à Proxmox. L'accès a l'interface graphique de Proxmox VE se fait selon le modèle : `https://hostmachine:8006`.  +<bootnote> 
-A partir ce de moment làune authentification est nécessaire pour accéder au tableau de bord de Proxmox et pour gérer graphiquement les machines virtuelles tournant sur l'infrastructure.+Sur Proxmox 7, on peut se rendre dans le stockage `local`, rubrique `ISO Images`, et cliquer sur `Download from URL`.
  
-Pour fixer les problèmes de mapping de clavier en AZERTY, aller dans "Datacenter" en haut à gauche, aller dans options et changer le mapping du clavier en Français.+{{ :technique:infrastructure:download_from_url_proxmox.jpg |}} 
 +</bootnote>
  
 On commence d'abord par lancer l'utilitaire de création d'une machine virtuelle : On commence d'abord par lancer l'utilitaire de création d'une machine virtuelle :
Ligne 18: Ligne 20:
 {{ :technique:capture_d_ecran_de_2016-12-02_18-34-17.png?900 |}} {{ :technique:capture_d_ecran_de_2016-12-02_18-34-17.png?900 |}}
  
-## Choix du nom+### Choix du nom
  
 {{ :technique:capture_d_ecran_de_2016-12-02_18-34-47.png?direct |}} {{ :technique:capture_d_ecran_de_2016-12-02_18-34-47.png?direct |}}
  
-## Choix de l'OS+### Choix de l'OS
  
 On choisit l'image pré-téléchargée ainsi que la bonne version du noyau : On choisit l'image pré-téléchargée ainsi que la bonne version du noyau :
Ligne 28: Ligne 30:
 {{ :technique:infrastructure:machines_virtuelles:install_vm_os.png?direct |}} {{ :technique:infrastructure:machines_virtuelles:install_vm_os.png?direct |}}
  
-## Choix du contrôleur SCSI+### Choix du contrôleur SCSI
  
 On choisit ensuite le contrôleur SCSI. Celui-ci doit impérativement être **VirtIO SCSI**. [SCSI](https://fr.wikipedia.org/wiki/Small_Computer_System_Interface), dans une machine physique, est un type de bus permettant de relier des périphériques à un ordinateur. Chaque type de bus a ses fonctionnalités et son protocole de communication. Ici, il s'agit d'un bus virtuel entre la machine hôte et la machine virtuelle. VirtIO SCSI a plusieurs avantages en matière de performance et de flexibilité. On choisit ensuite le contrôleur SCSI. Celui-ci doit impérativement être **VirtIO SCSI**. [SCSI](https://fr.wikipedia.org/wiki/Small_Computer_System_Interface), dans une machine physique, est un type de bus permettant de relier des périphériques à un ordinateur. Chaque type de bus a ses fonctionnalités et son protocole de communication. Ici, il s'agit d'un bus virtuel entre la machine hôte et la machine virtuelle. VirtIO SCSI a plusieurs avantages en matière de performance et de flexibilité.
Ligne 34: Ligne 36:
 {{ :technique:infrastructure:machines_virtuelles:install_vm_system.png?direct |}} {{ :technique:infrastructure:machines_virtuelles:install_vm_system.png?direct |}}
  
-## Choix du disque virtuel+### Choix du disque virtuel
  
 On choisit ensuite la taille du disque dur nécessaire. Le type de disque doit être **SCSI**, qui a l'avantage de supporter le [[technique:old:alice_bob:hotplug_vm|hotplug]], c'est-à-dire l'ajout de disques virtuels à chaud. Le format de l'image devra être QCOW2, qui a l'avantage de [[technique:old:proxmox_raw_to_qcow2|n'occuper que la place réellement occupée par les données]]. On choisit ensuite la taille du disque dur nécessaire. Le type de disque doit être **SCSI**, qui a l'avantage de supporter le [[technique:old:alice_bob:hotplug_vm|hotplug]], c'est-à-dire l'ajout de disques virtuels à chaud. Le format de l'image devra être QCOW2, qui a l'avantage de [[technique:old:proxmox_raw_to_qcow2|n'occuper que la place réellement occupée par les données]].
  
-On choisira le type de stockage en fonction des besoins de la machine virtuelle : `local` pour le SSD, `vm_storage` pour le HDD. Ces noms sont choisis lors de la création des différents [[technique:infrastructure:install_proxmox|types de stockage Proxmox]].+On choisira le type de stockage en fonction des besoins de la machine virtuelle (SSD ou HDD)En cas de doute, demander à l'équipe ! ^_^
  
 {{ :technique:infrastructure:machines_virtuelles:install_vm_disk.png?direct |}} {{ :technique:infrastructure:machines_virtuelles:install_vm_disk.png?direct |}}
  
-## Choix du CPU+### Choix du CPU
  
 On choisit le nombre de cœurs alloué à la machine virtuelle, en fonction des besoins. Une configuration 1 processeur à 2 cœurs est équivalente à mettre 2 processeurs à 1 cœur. Pour information, la plupart de nos machines virtuelles utilisent 2 processus à 2 cœurs.  On choisit le nombre de cœurs alloué à la machine virtuelle, en fonction des besoins. Une configuration 1 processeur à 2 cœurs est équivalente à mettre 2 processeurs à 1 cœur. Pour information, la plupart de nos machines virtuelles utilisent 2 processus à 2 cœurs. 
Ligne 53: Ligne 55:
 </bootnote> </bootnote>
  
-## Choix de la RAM+### Choix de la RAM
  
 On choisit ensuite la mémoire vive allouée en fonction des besoins. Nos machines virtuelles ont en général entre 4 et 32Go de RAM. On choisit ensuite la mémoire vive allouée en fonction des besoins. Nos machines virtuelles ont en général entre 4 et 32Go de RAM.
Ligne 59: Ligne 61:
 {{ :technique:infrastructure:machines_virtuelles:install_vm_ram.png?direct |}} {{ :technique:infrastructure:machines_virtuelles:install_vm_ram.png?direct |}}
  
-## Configuration du réseau+### Configuration du réseau
  
-Concernant le réseau, en fonction de la machine, il faut choisir le bridge 0 ou 1 :  +Choisir `vmbr0`, l'interface « bridge » de la machineC'est l'équivalent d'un switch virtuel sur lequel sont connectées toutes les machines virtuelles.
- +
-* Le bridge 0 (`vmbr0`) est à utiliser si la VM va recevoir une IP publique. Dans ce casles IP publiques sont routées directement à la VM +
-* Le bridge 1 (`vmbr1`) permet d'exposer une VM sur un réseau privé propre à l'hyperviseur, sur lequel on fera du NAT par la suite (non détaillé pour le moment). +
- +
-Ces interfaces ont été crées lors de [[technique:old:alice_bob:network|la configuration réseau des machines]].+
  
 On choisira le modèle `VirtIO`, qui évite d'émuler une carte réseau (c'est une carte paravirtualisée, qui "parle presque directement" à l'hôte depuis la machine virtuelle). On choisira le modèle `VirtIO`, qui évite d'émuler une carte réseau (c'est une carte paravirtualisée, qui "parle presque directement" à l'hôte depuis la machine virtuelle).
Ligne 74: Ligne 71:
 {{ :technique:infrastructure:machines_virtuelles:install_vm_network.png?direct |}} {{ :technique:infrastructure:machines_virtuelles:install_vm_network.png?direct |}}
  
-## Finalisation+### Finalisation
  
 On confirme les paramètres et on coche le démarrage de la machine virtuelle. On confirme les paramètres et on coche le démarrage de la machine virtuelle.
Ligne 81: Ligne 78:
  
 {{ :technique:infrastructure:machines_virtuelles:install_vm_console.png?direct |}} {{ :technique:infrastructure:machines_virtuelles:install_vm_console.png?direct |}}
 +## Installer l'OS et partitionner
 +
 +Une fois la machine virtuelle créée dans Proxmox, on peut procéder à son installation. On ne détaille pas la procédure d'installation, qui peut dépendre de l'OS.
 +
 +<bootnote warning>Le mot de passe `root` est à renseigner dans le [[asso:tuto:vaultwarden|vaultwarden]].</bootnote>
 +
 +Si possible dans l'installateur, on activera le serveur SSH et on désactivera l'environnement de bureau et le serveur d'impression.
 +
 +Il est préférable de partitionner le disque dur qui a été choisi lors de la création de la machine virtuelle avec LVM, afin de faciliter le rajout de stockage ultérieur et la souplesse du partitionnement.
 +
 +Lors de l'installation, si un outil de partitionnement est intégré, on l'utilisera et on choisira :
 +
 +* Une partition `/dev/sda1`, de type `ext2` et d'environ 200M, avec l'indicateur de boot, montée sur `/boot`, pour contenir les fichiers nécessaires au démarrage.
 +* Une partition `/dev/sda2`, qui occupe le reste de l'espace disponible, de type LVM
 +
 +On utilisera ensuite l'outil de partitionnement LVM de l'installateur Debian (ou équivalent pour d'autres installateurs) pour créer un VG (Volume Group) à partir du PV (Physical Volume) `/dev/sda2`. Sur le VG créé (nom `vg00` par exemple), on créera les Logical Volumes (LV) en fonction des besoins. Pour une machine visant à héberger des services, on aura par exemple :
 +
 +* `root`, `ext4`, monté sur `/`, qui contient le système d'exploitation et ses logiciels
 +* `docker`, `ext4`, monté sur `/var/lib/docker`, qui contient tout ce qui concerne Docker
 +* `swap`, pour le SWAP.
 +
 +La taille de ces LV est en fonction des besoins : on préférera laisser un peu d'espace libre dans le VG au cas où. L'intérêt de ce partitionnement est d'éviter que l'explosion des données Docker paralyse le système, par exemple.
 +
 +<bootnote warning>Si l'installateur n'a pas d'outil de partitionnement intégré, on le fera à la main avec les commandes de la distribution concernée, une fois l'installation terminée, et on créera ensuite les systèmes de fichier. On oubliera pas de renseigner à la main les points de montage des systèmes de fichiers dans `/etc/fstab`.</bootnote>
 +
 +<bootnote>Si on crée une VM pour un besoin spécifique (par exemple une VM destinée à recevoir des backups), on pourra se contenter d'un LV pour `/`, d'un LV pour les backups et d'un LV pour le SWAP.</bootnote>
 +
 +On peut ensuite redémarrer la machine et obtenir un shell via l'interface web Proxmox pour continuer la configuration :
 +
 +{{ :technique:infrastructure:console_proxmox.png |}}
 +
 +## Configuration réseau
 +
 +<bootnote>
 +Sur Debian 11, tout se fait dans l'installateur graphique!
 +</bootnote>
 +
 +<bootnote warning>
 +Si jamais la configuration réseau semble être écrasée par une configuration IPv6, il est nécessaire de supprimer le paquet `rdnssd` qui fait du DNS discovery pour l'IPv6. Il casse la configuration IPv6 statique, on peut donc le supprimer.
 +```
 +apt-get purge rdnssd
 +```
 +</bootnote>
 +
 +On modifie le fichier `/etc/resolv.conf` pour ajouter les serveurs DNS de Tetaneutral (ou ceux de [FDN](https://www.fdn.fr/actions/dns/)) :
 +
 +```
 +search picasoft.net
 +nameserver 91.224.148.10
 +nameserver 91.224.149.254
 +```
 +
 +<bootnote learn>Inspiré du [wiki de Debian](https://wiki.debian.org/NetworkConfiguration).</bootnote>
 +On édite le fichier `/etc/network/interfaces` pour configurer l'IP de la machine et l'IP de sa passerelle. Ces adresses dépendent du FAI et sont à voir avec eux (Tetaneutral ou Rhizome actuellement).
 +
 +```
 +auto eth0
 +iface eth0 inet static
 +    address <IP>
 +    gateway <IP>
 +```
 +
 +Si le FAI propose une connectivité IPv6, on ajoutera simplement :
 +
 +```
 +iface eth0 inet6 static
 +    address <IPv6>
 +    gateway <IPv6>
 +```
 +
 +Pour rappel, dans cette configuration, `eth0` de la VM est relié à une interface bridge de l'hôte, qui transmet les requêtes à la machine virtuelle. 
 +Il suffit de redémarrer l'interface :
 +
 +```bash
 +ifdown eth0
 +ifup eth0
 +```
 +
 +et tout devrait fonctionner ! :-D
 +
 +À ce stade, on doit être en mesure de contacter la machine depuis l'extérieur, via un `ping` par exemple.
 +
 +## Configuration SSH
 +
 +S'assurer que le serveur SSH est installé (sur Debian, c'est le paquet `openssh`).
 +
 +À ce stade, la connexion via l'utilisateur `root` - dont le mot de passe a été configuré à l'installation - est possible. 
 +
 +<bootnote critical>C'est **très** dangereux : `root` a tous les droits sur la machine, et l'authentification par mot de passe peut être _bruteforcée_ (essayer de nombreux mots de passe). On ne laisse jamais ce genre de configuration, à part pour le setup.</bootnote>
 +
 +<bootnote question>Et il faut faire quoi du coup ?</bootnote>
 +
 +## Rendre la machine picasoftienne
 +
 +Direction [[technique:infrastructure:setup_machine|cette page]] pour finir la configuration ! :-)
 +
  • technique/infrastructure/vm.1637620324.txt.gz
  • de qduchemi