Outils pour utilisateurs

Outils du site


procedures:make_debian_template

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-<VERSIONDEBIAN> sur un des hyperviseurs avec : * Un ID IDNEWVMTEMPLATE (en principe 700<IDNEWVMTEMPLATE<799) * 512MiB de RAM * 1 vCPU kvm64 * Le SCSI controller VirtIO SCSI * Un HDD VirtIO Block de 32GiB dans le storage localdata 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-<VERSIONDEBIAN>.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-<VERSIONDEBIAN> * 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.acceptra=0 net.ipv6.conf.default.acceptra=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/sshdconfig 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/authorizedkeys** 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 <IPv4NEWVM_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