Outils pour utilisateurs

Outils du site


procedures:make_debian_template

Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
procedures:make_debian_template [2019/06/05 19:14]
nemo créée
procedures:make_debian_template [2019/09/09 19:49] (Version actuelle)
nemo
Ligne 3: Ligne 3:
 Grifon peut déployer des VMs Debian depuis à l'aide d'un script qui utilise un template Debian. Grifon peut déployer des VMs Debian depuis à l'aide d'un script qui utilise un template Debian.
  
-Cette procédure permet ​donc de générer un template de VM Debian utilisable par le script de déploiement.+Cette procédure permet de générer un template de VM Debian utilisable par le script de déploiement. ​
  
-(à continuer...)+<​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'​installationA 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.1559754840.txt.gz · Dernière modification: 2019/06/05 19:14 par nemo