Outils pour utilisateurs

Outils du site


procedures:make_debian_template

Différences

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


procedures:make_debian_template [2019/09/09 17:49] (Version actuelle) – créée - modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +====== Générer un template VM Debian ======
 +
 +Grifon peut déployer des VMs Debian depuis à l'aide d'un script qui utilise un template Debian.
 +
 +Cette procédure permet de générer un template de VM Debian utilisable par le script de déploiement. 
 +
 +<note>Il est possible que certains ajustements soient nécessaires.</note>
 +
 +Voici la procédure (réalisée avec une image Debian 10 netinst) :
 +
 +  * Créer une nouvelle VM nommée **vm-template-debian-<VERSION_DEBIAN>** sur un des hyperviseurs avec : 
 +    * Un ID **ID_NEW_VM_TEMPLATE** (en principe 700<ID_NEW_VM_TEMPLATE<799)
 +    * **512MiB** de RAM
 +    * **1** vCPU **kvm64**
 +    * Le SCSI controller **VirtIO SCSI**
 +    * Un HDD **VirtIO Block** de **32GiB** dans le storage **local_data** au format **QEMU image** (qcow2)
 +    * Une interface réseau du Model **VirtIO** (paravirtualized) sur le bridge **vmbr1** (VMs publiques)
 +    * Et ajouter le **dernier disque d'installation netinst** distribué par **Debian** dans la VM
 +  * Dans l'IPAM, ajouter une **IPv4** et un **range IPv6** dans les ranges de **VM "adhérents"** pour cette VM.
 +  * Faites les enregistrements **reverses DNS** associés sur gurvant (pour le range IPv6, prenez la première adresse du range qui sera définie sur la VM) pour les faire pointer sur la valeur : **vm-template-grifon-<VERSION_DEBIAN>.grifon.fr.**
 +  * Démarrer la VM
 +  * Lancer la console depuis la WebUI Proxmox
 +  * Sélectionner **Install**
 +  * Low memory : si un message **Low memory** apparaît ce n'est pas un problem, faite **Continue**
 +  * Select your location : sélectionnez **Europe** puis **France**
 +  * Configure the keyboard : sélectionner **French**
 +  * Configure the network : l'autoconfiguration va échouer (pas de DHCP), il faut configurer manuellement :
 +    * Configure the network **manually**
 +    * Saisir l'IPv4 de la VM (et le masque réseau associé) précédemment enregistrée dans l'IPAM
 +    * Saisir l'IPv4 de la gateway
 +    * Saisir les IPv4 des résolveurs DNS Grifon (actuellement 89.234.186.4 et 89.234.186.5)
 +    * Saisir le hostname **vm-grifon-debian-<VERSION_DEBIAN>**
 +    * **Supprimer** la valeur de //Domain name// afin qu'elle soit vide (de toute manière l'adhérent devrait changer le hostname et le domaine)
 +  * Set up users and passwords :
 +    * Saisir un mot de passe pour l'utilisateur root
 +    * Confirmer ce mot de passe en le saisissant à nouveau
 +    * Saisir le nom du nouvel utilisateur **default-user-grifon**
 +    * Mettre la même valeur pour //Username for your account//
 +    * Saisir le mot de passe de cet utilisateur
 +    * Confirmer cet mot de passe en le saisissant à nouveau
 +  * Partition disks :
 +    * Sélectionner comme méthode de partitionnement : **Guided - use entire disk and set up LVM**
 +    * Sélectionner le Virtual disk disponible (vda)
 +    * Choisir de mettre **All files in one partition**
 +    * Confirmer avec **<Yes>** l'écriture des changements sur le disque et la configuration de LVM
 +    * Valider //Amount of volume group to use for guided partitioning// en laissant la valeur par défaut (tout l'espace disque disponible)
 +    * Confirmer avec **<Yes>** l'écriture des changements sur le disque
 +  * Choisir **<No>** lorsque l'on vous demande si vous voulez //Scan another CD or DVD//
 +  * Configure apt :
 +    * Sélectionner **France**
 +    * Sélectionner **deb.debian.org**
 +    * Ne **pas** ajouter de //HTTP proxy information//
 +    * Sélectionner **<No>** à //Participate in the package usage survey//
 +  * Select and install software : à l'étape //Choose software to install// ne sélectionnez que **standard system utilities** et **SSH server** (avec la barre espace) et continuer
 +  * Install the GRUB boot loader : faites **<Yes>** et sélectionner le volume **/dev/vda**
 +  * Installation complete : faites **<Continue>**, la machine va redémarrer
 +  * <note warning>Vérifier bien que la machine n'a pas démarrée sur le disque d'installation. A cette étape vous pouvez retirer le disque d'installation de la VM.</note>
 +  * Toujours en mode console, identifiez-vous en tant qu'utilisateur root sur la VM
 +  * L'adresse IPv6 sera ajoutée par le script de déploiement de la VM
 +  * Modifier le fichier **/etc/sysctl.d/99-sysctl.conf** et ajouter les lignes suivantes :
 +<file># Disable Accept of Router Advertisements
 +net.ipv6.conf.all.accept_ra=0
 +net.ipv6.conf.default.accept_ra=0</file>
 +  * Vérifier le bon fonctionne d'un ping vers un nom de domaine (resolver), si cela ne fonctionne pas correctement, c'est probablement à cause d'une erreur de configuration réseau (IPv4 ou serveurs DNS configurés)
 +  * Installer **ntp** et activer le service : ''apt update && apt install ntp && systemctl enable ntp''
 +  * Installer **haveged** et active le service : ''apt install haveged && systemctl enable haveged''
 +  * Installer **resolvconf** et active le service : ''apt install resolvconf && systemctl enable resolvconf''
 +  * Modifier le fichier **/etc/ssh/sshd_config** afin de n'autoriser que les authentification par clé publique et autoriser l'authentification ssh root (par clé publique uniquement) ''PermitRootLogin prohibit-password'', ''PubKeyAuthentication yes'' et ''PasswordAuthentication no''
 +  * Créer le répertoire **/root/.ssh**
 +  * Créer le fichier **/root/.ssh/authorized_keys** et ajouter les clés publiques SSH root des hyperviseurs dedans (utiliser un paste et curl pour "transférer" les clés publiques)
 +  * Redémarrer le service SSH ''systemctl restart ssh''
 +  * Vérifier que l'utilisateur root des hyperviseurs arrivent bien à se connecter à la machine, commande à faire avec des options : ''ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no <IPv4_NEW_VM_TEMPLATE>''
 +  * Changer le mot de passe root et le mot de passe de l'utilisateur default-user-grifon par un mot de passe aléatoire
 +  * Redémarrer la VM afin de vérifier qu'elle fonctionne correctement (se connecter au compte root via SSH en passant par l'utilisateur root d'un des hyperviseurs)
 +  * Arrêter la VM
 +  * Transformer la VM en template (VM immuable)
 +  * Faites un test avec le script de déploiement de VM afin de vérifier que tout fonctionne correctement (ne pas hésiter à mettre un disque >32G, nombre de vCPU>1 et RAM>512M dans les paramètres du script de déploiement afin de tester le cas d'une VM où ces valeurs sont modifiées)
 +<note>Si besoin, modifier le script de déploiement afin que tout fonctionne.</note>
 +  * Supprimer la nouvelle VM qui vient d'être créée par le script de déploiement et de libérer l'IPv4 et le range IPv6 utilisés par cette VM dans l'IPAM 
 +
  
procedures/make_debian_template.txt · Dernière modification : 2019/09/09 17:49 de 127.0.0.1