\\ [[cours_nethserver_101|{{ images_cahier-201-06-000.png?650 }}]] \\ ====== Description générale ====== ===== Introduction ===== Ce document présente l'installation de l'environnement de virtualisation **Proxmox VE**. L'environnement de virtualisation Proxmox VE, basé sur la distribution Debian, est livré sur un CD-ROM d'installation qui comprend un système Debian complet, un noyau Linux spécialement modifié et tous les paquets //PVE// nécessaires. L'installateur vous pose seulement quelques questions, partitionne le(s) disques locaux, installe tous les paquetages requis et configure le système comprenant une configuration réseau de base. Vous pouvez obtenir un système entièrement fonctionnel en quelques minutes. Alternativement, //PVE// peut être installé sur un système Debian existant. Cette option n'est seulement recommandée qu'aux utilisateurs avancés, car des connaissances détaillées sont nécessaires. ==== VirtualBox ==== {{Images_icone-201-003_Note.png?25}} Habituellement, l'installation de //PVE// s'effectue sur une machine qui lui est complètement dédiée. Vu que nous voulons seulement nous familiariser avec le comportement de cet environnement, nous allons commencer par l'installer sur une machine virtuelle sous //VirtualBox//. Une fois maîtrisées, nous allons répéter les mêmes procédures sur une machine physique dédiée à //PVE//.\\ {{Images_Cahier-101-03-003.png?22}} Vous pourrez vérifier les modifications à l'environnement //PVE// sur la machine virtuelle avant de les implémenter sur la machine physique. ==== Mise en garde ==== L'installation de machines virtuelles dans //PVE// roulant sous //VirtualBox// est excessivement lente, car il existe deux niveaux de virtualisation: un pour //VirtualBox// et un autre pour //PVE//. Une installation //NethServer// sur un serveur virtuel //PVE// roulant sous //VirtualBox// prend plus d'une heure tandis que sur un serveur //PVE// physique, elle ne prend qu'environ vingt minutes. {{Images_Cahier-101-03-004.png?25}} Nous recommandons cet environnement uniquement __pour la vérification des changements de configuration__ de //PVE//. ==== Proxmox Virtual Environment ==== Virtualisation LIBRE //(licence GNU Affero General Public License, version 3)// basée sur l'hyperviseur Linux KVM offrant aussi une solution de //Conteneurs// avec LXC. //PVE// fourni par //Proxmox Server Solutions GmbH// est une solution de virtualisation de type "bare metal". L'installateur //(basé sur Debian)// configure: - le système d'exploitation //(Debian Stretch 64 bits)//, - le partitionnement de disques durs avec LVM2, - le support de LXC //(conteneurs)// et le module KVM //(virtualisation complète)//, - les outils de sauvegarde et de restauration, - l'interface Web d'administration et de supervision, etc... Les fonctions de grappe permettent la migration à chaud des machines virtuelles, d'un serveur physique à un autre serveur. //(À condition d'utiliser un stockage partagé SAN ou Ceph sinon, la migration entraîne une courte interruption lors du redémarrage sur un autre nœud de la grappe)//. {{Images_Cahier-101-03-006.png?25}} L'installation du système depuis le CD formate le disque dur et entraîne la suppression complète des données qui pourraient y être présentes. Cependant, étant donné que //PVE// repose sur une distribution Debian, il est tout à fait possible de l'installer à partir de paquetages sur une machine existante, sans pour autant perdre ses données. ==== Caractéristiques ==== //PVE// propose deux types de virtualisation. - Virtualisation matérielle //(ou complète)// - KVM: permettant la virtualisation de tout système d'exploitation sur des processeurs d'architectures x86_64 disposant des technologies Intel VT ou AMD-V. - Virtualisation par conteneurs - LXC: permettant la création d'instances isolées de système d'exploitation //(Linux uniquement)// appelées Serveurs Privés Virtuels //(VPS)//, Environnements Virtuels //(VE)// ou Conteneurs. Cette solution est plus performante //(consomme moins de ressources)// qu'une virtualisation matérielle du fait du peu de temps système requis. ==== Système requis ==== {{Images_Cahier-101-03-004.png?25}} Pour des services en mode production, il est fortement recommandé d'utiliser des serveurs modernes.\\ {{Images_Cahier-101-03-006.png?25}} Comme toute technologie de virtualisation, un problème touchant une machine physique affectera toutes les machines virtuelles installées sur celle-ci. Ce risque est cependant atténué par l'utilisation de la haute disponibilité //(HA)// offerte depuis la version 2.0. En effet, //PVE// supporte les grappes et signifie que des installations multiples de //PVE// peuvent être centralisées et contrôlées par l'intermédiaire de la fonction //Cluster//, incluse dans l'interface d'administration du logiciel. //PVE// peut utiliser le stockage local //(DAS)//, SAN, NAS et également le stockage distribué //(Ceph RBD)//, voir le //chapitre 8, Proxmox VE Storage// du guide [[https://pve.proxmox.com/pve-docs/pve-admin-guide.pdf|https://pve.proxmox.com/pve-docs/pve-admin-guide.pdf]]. Depuis la version 1.5, il est désormais possible d'utiliser des disques iSCSI pour stocker les machines virtuelles permettant ainsi d'assouplir le fonctionnement en grappe. D'autres types de stockage sont utilisables tel NFS. {{ Images_Cahier-201-06-002.png?650 }} ==== Système minimum requis ==== - CPU 64 bits //(Intel EM64T ou AMD64)//. - Carte-mère et BIOS compatible Intel VT/AMD-V //(pour le support de la virtualisation par KVM)//. - 1 GO de RAM. - Disque dur. - Une carte réseau. === Système recommandé === - CPU 64 bits //(Intel EM64T ou AMD64)//, multi-cœur recommandé. - Carte-mère et BIOS compatible Intel VT/AMD-V //(pour le support de la virtualisation par KVM)//. - Mémoire: 2 Go minimum pour les services OS et //PVE// et le plus de mémoire possible pour les invités. Pour Ceph ou ZFS, de la mémoire supplémentaire est requise, soit environ 1 Go de mémoire pour chaque To utilisé. - RAID matériel avec cache d'écriture protégé par batterie //("BBU")// ou protection par flash ou non-RAID pour ZFS. Ni ZFS ni Ceph ne sont compatibles avec un contrôleur RAID matériel. Partagé et distribué, le stockage est également possible. - Disques durs rapides; de meilleurs résultats sont obtenus avec des disques à 15 000 RPM en RAID 10. - Au moins 2 cartes réseau en fonction de la technologie de stockage utilisée, vous pourriez en avoir besoin de plus. - Système d'alimentation sans coupure. ==== Documentation ==== === PDF & HTML === Anglais seulement: [[https://pve.proxmox.com/pve-docs/|https://pve.proxmox.com/pve-docs/]]. === Vidéo === Français: [[https://www.proxmox.com/en/training/video-tutorials/category/french|https://www.proxmox.com/en/training/video-tutorials/category/french]].\\ Anglais: [[https://www.proxmox.com/en/training/video-tutorials/category/english|https://www.proxmox.com/en/training/video-tutorials/category/english]].\\ Youtube: [[https://www.youtube.com/watch?v=Sjy0jll0Rx4|https://www.youtube.com/watch?v=Sjy0jll0Rx4]]. ==== Aide en ligne ==== //PVE// lui-même est entièrement LIBRE donc, il encourage toujours ses utilisateurs à discuter et à partager leurs connaissances en utilisant le Forum communautaire Proxmox VE à l'adresse [[https://forum.proxmox.com/|https://forum.proxmox.com/]]. Le forum est entièrement "pondéré" par l'équipe de support Proxmox et possède une vaste base d'utilisateurs tout autour du globe. Inutile de dire qu'un tel forum est un bon endroit pour obtenir des informations. La principale source de la documentation se trouve à l'adresse [[https://www.proxmox.com/en/downloads|https://www.proxmox.com/en/downloads]]. Cette source combine documentation et téléchargements. ===== Cours NethServer-101 ===== Le //Cours NethServer-101//, se voulant une base solide pour la création d'un site de **Commerce en ligne**, comprend plusieurs cahiers: - [[nethserver_101_cahier_01_linux|Cahier-01]]: -> Les bases de Linux. - [[nethserver_101_cahier_02_installations_configurations_logiciels_prerequis|Cahier-02]]: -> Installation et configuration des logiciels prérequis sur le poste de travail. - [[nethserver_101_cahier_03_creation_un_serveur_virtuel|Cahier-03]]: -> Création d'un Serveur NethServer virtuel. - [[nethserver_101_cahier_04_local_certificat_let_encrypt|Cahier-04]]: -> Serveur NethServer LOCAL & Let's Encrypt. - [[nethserver_101_cahier_05_vdsl_fqdn_internet_et_nethserver|Cahier-05]]: -> FAI, modem VDSL, domaine FQDN(( **FQDN**: Dans le //DNS//, un Fully Qualified Domain Name //(FQDN, ou nom de domaine complètement qualifié)// est un nom de domaine qui révèle la position absolue d'un nœud dans l'arborescence //DNS// en indiquant tous les domaines de niveau supérieur jusqu'à la racine. On parle également de domaine absolu, par opposition aux domaines relatifs. Par convention, le //FQDN// est ponctué par un point final.\\ //Référence:// [[https://fr.wikipedia.org/wiki/Fully_qualified_domain_name|https://fr.wikipedia.org/wiki/Fully_qualified_domain_name]]. \\ \\ )) et Serveur NethServer physique. - [[nethserver_101_cahier_06_nethserver_wordPress|Cahier-06]]: -> Installation de WordPress. - [[nethserver_101_cahier_07_nethserver_wordPress_wordfence|Cahier-07]]: -> Installation de l'extension de sécurité Wordfence. - [[nethserver_101_cahier_08_woocommerce_paypal_stripe|Cahier-08]]: -> WooCommerce, comptes chez Stripe et PayPal pour les paiements en ligne. - [[nethserver_101_cahier_09_duplicator_migration|Cahier-09]]: -> Sauvegarde/restauration ou migration d'un site avec l'extension Duplicator. - [[nethserver_101_cahier_10_mandataire_inverse|Cahier-10]]: -> Serveur mandataire inversé. - [[nethserver_101_cahier_11_nethserver_backuppc|Cahier-11]]: -> Sauvegarde/restauration avec BackupPC. ==== Cours NethServer-201 ==== Le //Cours NethServer-201// décrit l'installation et la configuration d'applications sur un serveur NethServer. - [[nethserver_201_cahier_01_nethserver_et_dolibarr|Cahier-201-01]]: -> Dolibarr. - [[nethserver_201_cahier_02_odoo_12|Cahier-201-02]]: -> Odoo-12. - [[nethserver_201_cahier_03_mediawiki|Cahier-201-03]]: -> MediaWiki. - [[nethserver_201_cahier_04_dokuwiki|Cahier-201-04]]: -> DokuWiki. - [[nethserver_201_cahier_05_moodle|Cahier-201-05]]: -> Moodle. - [[nethserver_201_cahier_06_proxmox|Cahier-201-06]]: -> Proxmox. - [[nethserver_201_cahier_07_flectra|Cahier-201-07]]: -> Flectra. ==== Logiciels ==== Tous les logiciels nécessaires sont du domaine public ou LIBRE sous licence //GPL//; ils ne coûtent pas un sou. Le seul achat nécessaire est l'obtention d'un nom de domaine au prix initial de $15 CAD et son renouvellement annuel d'environ $30 CAD. ==== But final ==== Après avoir suivi le //Cours NethServer-101//, vous posséderez un site de //Commerce en ligne// fiable et hautement sécuritaire. De plus, vous pourrez utiliser un clone de votre site, sur un //Serveur NethServer// virtuel roulant sur votre poste de travail, pour tester de nouvelles extensions et applications sans compromettre la sécurité ou l'intégrité de votre site en ligne. {{ NS-101_001_Diagramme.png?500 }} ===== Particularités de ce document ===== ==== Notes au lecteur ==== * Les captures d'écrans ne sont que des références.\\ ** Les informations écrites ont préséance sur celles retrouvées dans les captures d'écrans. Veillez vous référer aux différents tableaux lorsque ceux-ci sont présents.\\ *** Une capture d'écran avec une accentuation en magenta indique qu'il faut remplacer cette distinction par vos propres paramètres ou implique un choix laissé à votre appréciation. ==== Conventions ==== {{Images_icone-201-001_doigt.png?22}} Manipulation, truc ou ruse pour se tirer d'embarras.\\ {{Images_icone-201-002_Lumiere.png?25}} Une recommandation ou astuce.\\ {{Images_icone-201-003_Note.png?25}} Une note.\\ {{Images_icone-201-004_Triangle.png?25}} Une étape, note ou procédure à surveiller.\\ {{Images_icone-201-005_Non-termine.png?25}} Paragraphe non complété ou non vérifié.\\ {{Images_icone-201-006_Securite.png?25}} Danger pour la sécurité du système. Toutes les commandes à la console ou à travers //PuTTY// sont précédées d'une invite qui est toujours présente. [root@dorgee ~]# ping 10.10.10.75 -c1 PING 10.10.10.75 (10.10.10.75) 56(84) bytes of data. 64 bytes from 10.10.10.75: icmp_seq=1 ttl=64 time=1.63 ms --- 10.10.10.75 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1.639/1.639/1.639/0.000 ms [root@dorgee ~]# Commande à exécuter si ce n'est déjà fait. Commande indiquée à titre d'information seulement. \\ ====== Téléchargement de l'ISO ====== ===== Page de téléchargement ===== On se rend à la page de téléchargement de la version Proxmox VE 6.0: [[https://www.proxmox.com/en/downloads/item/proxmox-ve-6-0-iso-installer]]. La page affiche aussi la somme de contrôle du fichier qui nous servira à vérifier l'intégrité de l'ISO téléchargé. ===== Téléchargement ===== Nous allons télécharger la version Proxmox VE 6.0 ISO Installer //(version 6.0-1.iso)// et sauvegarder l'ISO sur notre poste de travail. **Download**. |{{ Images_Cahier-201-06-004.png?600 }}| **Enregistrer le fichier -> OK**. |{{ Images_Cahier-201-06-005.png?400 }}| ==== Vérification de la somme de contrôle ==== {{Images_Cahier-101-03-004.png?25}} Il est toujours préférable de vérifier la somme de contrôle d'un fichier avant de l’utiliser. === Calcul de la somme de contrôle === Nous utilisons le calculateur de //7-Zip// pour la somme de contrôle //SHA-256//. Clac //(clic droit)// sur le fichier **iso -> CRC SHA -> SHA-256**. //(Peut prendre quelques secondes.)// |{{ Images_Cahier-201-06-006.png?400 }}| \\ La somme de contrôle //SHA-256// calculée est affichée. |{{ Images_Cahier-201-06-007.png?400 }}| Ci-contre, la somme de contrôle //SHA-256// affichée sur la page de téléchargement. Les sommes de contrôle coïncident, le fichier peut être utilisé en toute sécurité. |{{ Images_Cahier-201-06-008.png?700 }}| {{Images_icone-201-003_Note.png?25}} On brûle l'ISO sur un CD/DVD qu'on insérera dans le lecteur de notre machine physique dédiée avant son amorçage. \\ \\ ====== Création d'une machine virtuelle sous VirtualBox ====== ===== Description ===== {{Images_Cahier-101-03-003.png?22}} Avec une installation //VirtualBox//, vous pourrez vérifier les modifications à l'environnement //PVE// sur la machine virtuelle avant de les implémenter sur la machine physique. {{ Images_Cahier-201-06-009.png?650 }} ===== Marche à suivre ===== - Vérification du BIOS. - Création et configuration de la machine virtuelle qui roulera //PVE//. ===== BIOS ===== Depuis 2006, les processeurs Intel et AMD supportent ce qui est appelé la “virtualisation matérielle”. La virtualisation matérielle signifie que ces processeurs peuvent aider //VirtualBox// à intercepter des opérations potentiellement dangereuses que pourrait essayer d'exécuter l'invité et facilite la présentation du matériel à une machine virtuelle. Ces fonctionnalités diffèrent entre les CPU d'Intel et ceux d'AMD. Intel a appelé sa techno VT-x; AMD a nommé la leur AMD-V. Le support d’Intel et d’AMD est très différent dans le détail, mais pas si différent dans le principe. Les processeurs modernes incluent des fonctionnalités de virtualisation matérielle qui aident à accélérer la virtualisation. Intel VT-x n'est pas toujours activé par défaut. Si tel est le cas, un message est affiché: "L'accélération matérielle VT-x/AMD-V n'est pas disponible sur votre système" ou "Cet hôte prend en charge Intel VT-x mais Intel, VT-x est désactivé". Le matériel Intel VT-x peut être désactivé via le BIOS ou le micrologiciel UEFI. Il est régulièrement désactivé sur les nouveaux ordinateurs. AMD-V est toujours activé si vous utilisez un processeur AMD qui le prend en charge, il n'y a donc aucun BIOS ou UEFI que vous devez modifier. ==== Activation ==== [[http://www.informatiweb.net/tutoriels/informatique/9-bios/89--activer-la-virtualisation-intel-vt-x-amd-v.html|http://www.informatiweb.net/tutoriels/informatique/9-bios/89--activer-la-virtualisation-intel-vt-x-amd-v.html]].\\ [[http://www.pumbaa.ch/blog/tutoriaux/?d=2016/03/09/16/30/00-activer-vt-xamd-v-pour-installer-un-os-64-bits-dans-une-vm|http://www.pumbaa.ch/blog/tutoriaux/?d=2016/03/09/16/30/00-activer-vt-xamd-v-pour-installer-un-os-64-bits-dans-une-vm]].\\ [[https://www.qnap.com/fr-fr/qa/con_show.php?op=showone&cid=258|https://www.qnap.com/fr-fr/qa/con_show.php?op=showone&cid=258]].\\ [[http://f4b1.com/comment-activer-la-virtualisation-vt-x-amd-v-dans-le-bios|http://f4b1.com/comment-activer-la-virtualisation-vt-x-amd-v-dans-le-bios]]. \\ \\ ===== Paramètres de la machine virtuelle PVE ===== Pour l'installation de //VirtualBox//, voir: [[nethserver_101_cahier_02_installations_configurations_logiciels_prerequis|Cahier-02: Installations & configurations des logiciels prérequis]] du "Cours NethServer-101". Dans //VirtualBox//, nous allons créer une machine virtuelle **ProxmoxVE_16Go**. - Mémoire: 4096 Mo. Si nous avons seulement 4 Go de mémoire totale pour la station de travail et que nous allouons plus de 1998 Mo, //VirtualBox// affichera un //Avertissement//. - Disque: 16 Go. \\ \\ ===== Création de la machine virtuelle PVE ===== **Machine -> Nouvelle ...** {{Images_Cahier-201-06-010.png?150}} • //Nom:// **ProxmoxVE_16Go**. \\ • //Type:// **Linux**. \\ • //Version:// **Debian (64-bit)**. \\ • //Taille de la mémoire:// **4096**. \\ • **Créer un disque virtuel maintenant**. \\ • **Créer**. |{{ Images_Cahier-201-06-011.png?400 }}| • //Taille du fichier:// **16,00 Go**.\\ • //type de fichier de disque dur:// \\ ⦿ **VDI (Image Disque VirtualBox)**.\\ • //Stockage sur disque physique:// \\ ⦿ **Dynamiquement alloué**.\\ • **Créer**. |{{ Images_Cahier-201-06-012.png?400 }}| • On est retourné à l’écran principal de //VirtualBox// et on voit notre nouvelle machine virtuelle. • On sélectionne la machine virtuelle et on clique **Configuration**. |{{ Images_Cahier-201-06-013.png?400 }}| \\ ===== Configuration ===== **Général ->** onglet **Avancé -> //Presse-papier partagé:// Bidirectionnel -> //Glisser-Déposer:// Bidirectionnel** //(non obligatoire)//. |{{ Images_Cahier-201-06-014.png?400 }}| Onglet **Description ->** on entre une description assez détaillée et __surtout le mot de passe__, car une fois qu’on aura plusieurs //MV//, il sera facile d’oublier… |{{ Images_Cahier-201-06-015.png?400 }}| - **Système ->** onglet **Processeur ->** on peut choisir le nombre de processeurs à allouer à cette machine virtuelle.\\ - Cocher toutes les **//Fonctions avancées//**. |{{ Images_Cahier-201-06-016.png?400 }}| - **Affichage ->** onglet **Écran -> //Mémoire Vidéo://** on ajuste à **32 MB** ou jusqu'au max //128 MB//.\\ - **//Contrôleur graphique://** **VboxVGA**. |{{ Images_Cahier-201-06-017.png?400 }}| \\ **Stockage -> Vide ->** cliquer l’**icône** du CD/DVD **-> Choisissez un fichier de disque optique virtuel...** |{{ Images_Cahier-201-06-018.png?400 }}| \\ On se rend au répertoire où on a téléchargé l’ISO de Proxmox, on sélectionne le **fichier ISO -> Ouvrir**. |{{ Images_Cahier-201-06-019.png?400 }}| - Le fichier ISO de //PVE// est maintenant attaché au CD/DVD de la machine virtuelle. Lorsque la //MV// amorcera, elle lancera l’installation de //PVE//. - **Son ->** on décoche //**Activer le son**//. Un serveur n’a pas besoin de carte de son. |{{ Images_Cahier-201-06-020.png?400 }}| |{{ Images_Cahier-201-06-021.png?400 }}| ==== Carte 1 (eth0) ==== - **Réseau ->** onglet **Carte 1**. - **//Mode d’accès réseau://** **-> Accès par pont**. Cliquer **Avancé** pour afficher plus de choix. - **//Type d'interface://** **->** choisir la carte reliée au connecteur //RJ-45//. - **//Mode Promiscuité://**(( **Mode Promiscuité**: En informatique, se réfère à une configuration de la carte réseau, qui permet à celle-ci d'accepter tous les paquets qu'elle reçoit, même si ceux-ci ne lui sont pas adressés. Chaque paquet réseau envoyé inclut l'adresse //(adresse MAC)// de la carte réseau destinataire. Quand une carte réseau voit passer un paquet, elle vérifie si elle est la destinataire du paquet; si elle ne l'est pas, elle ne tient pas compte du paquet; mais en //Mode Promiscuité//, elle traite le paquet dans tous les cas, permettant ainsi à l'ordinateur de pouvoir lire tous les paquets.\\ //Référence://[[https://fr.wikipedia.org/wiki/Promiscuous_mode|https://fr.wikipedia.org/wiki/Promiscuous_mode]].\\ \\ )) **-> Autoriser les VMs**. |{{ Images_Cahier-201-06-022.png?400 }}| ==== Carte 2 (eth1) ==== - **Réseau ->** onglet **Carte 2**. - On coche **Activer la carte réseau**. - **//Mode d’accès réseau://** **-> Accès par pont**. Cliquer **Avancé** pour afficher plus de choix. - **//Type d'interface://** **->** choisir la carte reliée au connecteur //RJ-45//. - **//Mode Promiscuité://** **-> Autoriser les VMs**. |{{ Images_Cahier-201-06-023.png?400 }}| ==== Interface utilisateur ==== ☑ **Afficher en plein écran/mode intégré**. ☑ **Afficher en haut de l'écran**. On coche ☑ la case en bas à gauche afin d'afficher les icônes au bas de l'écran //VirtualBox//. {{Images_Cahier-101-03-006.png?25}} On déroule tous les menus et on coche toutes les options offertes **-> OK**. |{{ Images_Cahier-201-06-024.png?400 }}| |{{ Images_Cahier-201-06-025.png?400 }}| **La machine ProxmoxVE_16Go sous //VirtualBox// est prête à recevoir l'installation de //PVE//.** \\ ====== Installation & configuration ====== La machine virtuelle est configurée, elle possède deux cartes réseau et le CD/DVD est attaché au lecteur optique. On peut amorcer cette //MV// pour lancer l'installation de //PVE//. ===== Installation ===== - On amorce la machine virtuelle Proxmox VE.\\ - **//Install Proxmox VE//** **-> [Entrée]**. |{{ Images_Cahier-201-06-026.png?400 }}| \\ Si vous recevez l'erreur ci-dessous, voir [[nethserver_201_cahier_06_proxmox#Virtualisation matérielle KVM]]. |{{ Images_Cahier-201-06-027.png?400 }}| \\ __Si on accepte les termes de la licence__, on clique **I agree**. |{{ Images_Cahier-201-06-028.png?400 }}| \\ \\ **Next**. |{{ Images_Cahier-201-06-029.png?400 }}| On entre le pays **->** on choisit un fuseau horaire //(Montréal n'est pas là, mais dans l'écran de gestion, il apparaîtra dans les choix)// **-> Next**. |{{ Images_Cahier-201-06-030.png?400 }}| - On entre un mot de passe pour __root__ //(au moins 7 caractères)// et on le confirme.\\ - On entre l'adresse courriel qui recevra les messages de //PVE//.\\ - **Next**. |{{ Images_Cahier-201-06-031.png?400 }}| \\ \\ - Les différents paramètres sont affichés, on peut les modifier.\\ - **Next**. |{{ Images_Cahier-201-06-032.png?400 }}| On vérifie les paramètres affichés, puis pour lancer l'installation, on clique **Install**. |{{ Images_Cahier-201-06-033.png?400 }}| \\ Le système //PVE// débute son installation. |{{ Images_Cahier-201-06-034.png?400 }}| L'installation rend le système amorçable. |{{ Images_Cahier-201-06-035.png?400 }}| Victoire! L'installation est terminée. |{{ Images_Cahier-201-06-036.png?400 }}| //Menu VirtualBox// **-> Périphérique -> Lecteurs optiques -> Éjecter le disque du lecteur virtuel**. |{{ Images_Cahier-201-06-037.png?400 }}| \\ \\ On force l'éjection **-> Éjection forcée**. |{{ Images_Cahier-201-06-038.png?400 }}| \\ On réamorce le système en cliquant **Reboot**. |{{ Images_Cahier-201-06-039.png?400 }}| \\ ===== Adresse du gestionnaire PVE ===== Après le réamorçage, l'écran de connexion s'affiche. {{Images_Cahier-101-03-006.png?25}} On voit l'adresse pour accéder au //gestionnaire //PVE////. __**https://192.168.1.44:8006/**__ |{{ Images_Cahier-201-06-040.png?700 }}| \\ ===== Instantané VirtualBox ===== Ici, on arrête la machine virtuelle et on prend un //Instantané VirtualBox// afin d'avoir une sauvegarde de l'installation originale: **Proxmox-6.0.1**_**Sauvegarde**_**originale**_**AAAA-MM-JJ**_**nnhnn**. On redémarre la machine virtuelle. |{{ Images_Cahier-201-06-041.png?400 }}| |{{ Images_Cahier-201-06-042.png?400 }}| \\ ===== Connexion à la console de la MV ===== Pour vérifier le bon fonctionnement de la //MV//, on se logue à la console du serveur //PVE//. **//Nom d'usager://** **->** __**root**__. **//Mot de passe://** **->** le mot de passe entré lors de l'installation. |{{ Images_Cahier-201-06-043.png?700 }}| \\ ===== Connexion PuTTY ===== On lance //PuTTY// et on crée une nouvelle session pour se connecter en //SSH// au système //PVE//. On entre les informations demandées, port __22__ **-> Save -> Open**. |{{ Images_Cahier-201-06-044.png?400 }}| **Oui** pour accepter la clé //RSA2//. |{{ Images_Cahier-201-06-045.png?400 }}| On utilise l'usager __root__ et on entre le mot de passe donné lors de l'installation. login as: root root@192.168.1.44's password: mot-de-passe-de-root Linux pve 5.0.15-1-pve #1 SMP PVE 5.0.15-1 (Wed, 03 Jul 2019 11:01:11 +0200) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. root@pve:~# ==== Groupe de volumes ==== Le programme d'installation crée un //Groupe de Volumes// //(VG)// appelé **pve** et des //Volumes Logiques// //(LV)// supplémentaires appelés: **data**, **root** et **swap**. root@pve:~# vgs VG #PV #LV #SN Attr VSize VFree pve 1 3 0 wz--n- <15.50g <1.88g root@pve:~# === Volume physique === root@pve:~# pvs PV VG Fmt Attr PSize PFree /dev/sda3 pve lvm2 a-- <15.50g <1.88g root@pve:~# === Volumes logiques === root@pve:~# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert data pve twi-a-tz-- <6.00g 0.00 1.57 root pve -wi-ao---- 3.75g swap pve -wi-ao---- <1.88g root@pve:~# === Volume data === Ce volume logique utilise //LVM-thin//, et est utilisé pour stocker les images des machines virtuelles. //LVM-thin// est préférable pour cette tâche, car il offre un support efficace pour les Instantanés des //MV// //PVE//. **//LVM-thin//** Certains systèmes de fichiers dont //Qemu qcow2 (Quick emulator - Quick Copy On Write)// supportent //LVM-thin//. Avec //LVM-thin// activé, seuls les blocs que le système invité utilisera réellement seront écrits sur le disque de stockage. === Volume root === Le volume logique root est formaté en //ext4//, et contient le système d'exploitation. root@pve:~# cat /etc/fstab # /dev/pve/root / ext4 errors=remount-ro 0 1 /dev/pve/swap none swap sw 0 0 proc /proc proc defaults 0 0 root@pve:~# ==== Vérification de la connexion Internet ==== root@pve:~# ping -c3 google.com PING google.com (172.217.1.14) 56(84) bytes of data. 64 bytes from yyz10s14-in-f14.1e100.net (172.217.1.14): icmp_seq=1 ttl=57 time=12.9 ms 64 bytes from yyz10s14-in-f14.1e100.net (172.217.1.14): icmp_seq=2 ttl=57 time=12.5 ms 64 bytes from yyz10s14-in-f14.1e100.net (172.217.1.14): icmp_seq=3 ttl=57 time=11.8 ms --- google.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 5ms rtt min/avg/max/mdev = 11.821/12.402/12.905/0.464 ms root@pve:~# ==== Performance de l'hôte ==== root@pve:~# pveperf CPU BOGOMIPS: 13973.88 REGEX/SECOND: 1487730 HD SIZE: 3.63 GB (/dev/mapper/pve-root) BUFFERED READS: 88.55 MB/sec AVERAGE SEEK TIME: 8.69 ms FSYNCS/SECOND: 240.33 DNS EXT: 40.20 ms DNS INT: 2.03 ms (micronator.org) root@pve:~# ==== Souscription ==== root@pve:~# pvesubscription get message: There is no subscription key serverid: 3D7751FEBFC5CB91DA22881F61A887C5 status: NotFound url: https://www.proxmox.com/proxmox-ve/pricing root@pve:~# \\ ===== Configuration ===== Pour connaître l'adresse du gestionnaire //PVE//, voir le paragraphe [[nethserver_201_cahier_06_proxmox#Connexion à la console de la MV]].\\ {{Images_Cahier-101-03-003.png?22}} Il faut absolument autoriser les témoins et JavaScript dans le navigateur sinon, l'écran de connexion ne sera pas présenté. ==== Adresse du gestionnaire PVE ==== {{Images_Cahier-101-03-004.png?25}} Par la console du serveur, on peut toujours retrouver l'adresse //IP// du gestionnaire //PVE// en affichant le fichier ''/etc/network/interfaces''. root@pve:~# cat /etc/network/interfaces auto lo iface lo inet loopback iface enp0s3 inet manual auto vmbr0 iface vmbr0 inet static address 192.168.1.44 netmask 255.255.255.0 gateway 192.168.1.1 bridge_ports enp0s3 bridge_stp off bridge_fd 0 root@pve:~# - On pointe un navigateur vers: **https://192.168.1.44:8006/**\\ - **Avancé**. |{{ Images_Cahier-201-06-046.png?400 }}| \\ C'est une nouvelle installation, il faut **Ajouter une exception...** |{{ Images_Cahier-201-06-047.png?400 }}| {{Images_Cahier-101-03-004.png?25}} Si vous ne pouvez accéder à l'adresse du gestionnaire, voir le paragraphe [[nethserver_201_cahier_06_proxmox#Adresse IP]]. \\ \\ \\ **Confirmer l'exception de sécurité**. |{{ Images_Cahier-201-06-048.png?400 }}| - **//Language://** **-> French** //(l'écran va se rafraîchir)//.\\ - **//Utilisateur://** **-> __root__**.\\ - **//Mot de passe://** **->** celui donné lors de l'installation.\\ - **Login**. |{{ Images_Cahier-201-06-049.png?400 }}| |{{ Images_Cahier-201-06-050.png?400 }}| On nous suggère de visiter le site [[http://www.proxmox.com/|www.proxmox.com]] pour plus d'informations sur les options de contrat de service. |{{ Images_Cahier-201-06-051.png?400 }}| - [[https://www.proxmox.com/en/proxmox-ve/pricing|https://www.proxmox.com/en/proxmox-ve/pricing]]\\ - Sur le site de Proxmox, les différents plans de souscription sont affichés. |{{ Images_Cahier-201-06-053.png?400 }}| \\ \\ - On retourne à l'écran du gestionnaire.\\ - **OK**. |{{ Images_Cahier-201-06-052.png?400 }}| \\ ==== Fuseau horaire ==== Maintenant, nous pouvons ajuster le fuseau horaire à //America/Montreal//. **Vue Stockage -> Datacenter -> pve -> Système -> Temps -> Éditer**. |{{ Images_Cahier-201-06-054.png?400 }}| \\ Choisir **America/Montreal -> OK**. |{{ Images_Cahier-201-06-055.png?400 }}| Au retour, on voit que la //**Zone de temps**// est bien //America/Montreal//. |{{ Images_Cahier-201-06-056.png?400 }}| \\ ===== Mise à jour ===== Cette mise à jour s'appliquera au système complet. **Vue Stockage -> Datacenter -> pve -> Mise à jour -> Rafraîchir**. |{{ Images_Cahier-201-06-057.png?400 }}| \\ **OK**. |{{ Images_Cahier-201-06-058.png?400 }}| Après la recherche de mises à jour dans les référentiels, on ferme la fenêtre. |{{ Images_Cahier-201-06-059.png?400 }}| Certains fichiers n'ont pu être téléchargés.\\ {{Images_icone-201-003_Note.png?25}} L'erreur de téléchargement vient du fait que nous n'avons aucun plan de souscription à Proxmox. Le chargement du cache s'effectue. |{{ Images_Cahier-201-06-060.png?400 }}| **Appliquer les mises à jour**. |{{ Images_Cahier-201-06-061.png?800 }}| \\ Pour continuer, entrer **Y -> [Entrée]**. |{{ Images_Cahier-201-06-062.png?400 }}| - On peut ignorer les suggestions.\\ - Pour quitter, on entre "**q**" sans guillemets. |{{ Images_Cahier-201-06-063.png?400 }}| On prend le choix par défaut **//UTF-8//** **-> OK**. |{{ Images_Cahier-201-06-064.png?400 }}| On prend le choix par défaut **//English (US)//** **-> OK**. |{{ Images_Cahier-201-06-065.png?400 }}| La mise à jour est terminée. On peut fermer cette fenêtre. |{{ Images_Cahier-201-06-066.png?700 }}| À l'écran du gestionnaire **-> Rafraîchir**. |{{ Images_Cahier-201-06-067.png?400 }}| **OK**. |{{ Images_Cahier-201-06-068.png?400 }}| On peut fermer l'écran surgissant. |{{ Images_Cahier-201-06-069.png?400 }}| - Un rechargement du cache s'effectue. - Il n'y a plus de mises à jour disponibles |{{ Images_Cahier-201-06-070.png?400 }}| |{{ Images_Cahier-201-06-071.png?400 }}| \\ ===== Souscription ===== //Référence:// [[https://it.izero.fr/proxmox-quelques-infos-en-vrac/|https://it.izero.fr/proxmox-quelques-infos-en-vrac/]]. Pour supprimer l'écran surgissant //No valid subscription//. |{{ Images_Cahier-201-06-072.png?700 }}| À la console du serveur. root@pve:~# sed -i.bak 's/NotFound/Active/g' \ /usr/share/perl5/PVE/API2/Subscription.pm && \ systemctl restart pveproxy.service root@pve:~# Fichier ''/usr/share/perl5/PVE/API2/Subscription.pm'' original. ... my $info = PVE::INotify::read_file('subscription'); if (!$info) { return { status => "NotFound", message => "There is no subscription key", serverid => $server_id, url => $url, } } ... Fichier ''/usr/share/perl5/PVE/API2/Subscription.pm'' modifié. La valeur **//NotFound//** a été remplacé par **//Active//**. ... my $info = PVE::INotify::read_file('subscription'); if (!$info) { return { status => "Active", message => "There is no subscription key", serverid => $server_id, url => $url, } } ... On vérifie. root@pve:~# cat /usr/share/perl5/PVE/API2/Subscription.pm | grep -C 1 "Active" return $info if $info->{status} ne 'Active'; -- my $no_subscription_info = { status => "Active", message => "There is no subscription key", -- if (!$param->{force} && $info->{status} eq 'Active') { my $age = time() - $info->{checktime}; root@pve:~# On redémarre les services. root@pve:~# service pvestatd restart root@pve:~# root@pve:~# service pvedaemon restart root@pve:~# ===== Instantané VirtualBox ===== {{Images_Cahier-101-03-004.png?25}} À ce stade-ci, on peut prendre un //Instantané// de la machine virtuelle afin de pouvoir y revenir en cas d'une future erreur de manipulation. \\ \\ ===== Configuration du poste de travail ===== ==== Fichier hosts ==== Le //FQDN// de notre //Serveur PVE// est //**pve.micronator-dev.org**//. Vu que nous n'avons pas de serveur //DNS// sur notre réseau, il nous faut une façon quelconque pour pouvoir spécifier le nom de notre domaine afin que le navigateur puisse identifier son adresse //IP// sans devoir interroger un serveur //DNS//. C'est ici que le fichier ''hosts'' du poste de travail entre en jeu. La communication dans l'Internet se fait toujours par adresses //IP// et non pas avec les noms de domaines qui sont utilisés par les humains qui ont plus de facilité à retenir un nom qu'un numéro. Lorsque vous voulez vous rendre chez //google.com//, le navigateur ne connaît pas l'adresse //IP// de //google.com//. Il commence par regarder dans le fichier ''hosts'' du poste de travail si ce fichier contient une référence à //google.com//. Si oui, il utilise l'adresse //IP// contenu dans le fichier ''hosts''. Si le fichier ''hosts'' du poste de travail n'a pas de référence pour le nom du domaine recherché, le navigateur va demander à son serveur //DNS// s'il connaît ''google.com''. Si son serveur //DNS// ne connaît pas le domaine en question, il demande à son tour à son serveur //DNS// supérieur s'il connaît le domaine. Si le //DNS// supérieur n'a pas de référence pour le domaine, à son tour, il demande à son serveur //DNS// supérieur et ainsi de suite jusqu'au //DNS// tout en haut de l'échelle hiérarchique //.com// qui lui, avec ses confrères //.org//, //.net//, etc..., connaissent tous les noms de tous les domaines de l'Internet. Une fois l'adresse //IP// trouvée, elle redescend l'échelle hiérarchique jusqu'à votre navigateur qui utilisera alors l'adresse //IP// reçue pour communiquer avec //google.com//. Le point à remarquer est que le navigateur cherche en premier lieu dans le fichier ''host'' du poste de travail. Pour tromper le navigateur, il suffit alors d'y entrer une référence pour notre domaine //pve.micronator-dev.org//. Pour un système Windows, le chemin du fichier ''hosts'' est: ''C:\Windows\System32\drivers\etc\hosts''. Pour un système Linux, le chemin est: ''/etc/hosts''. Pour un système Windows, le fichier //hosts// est en __Lecture seule__. En ayant les droits d'administrateur Windows, on enlève le droit de //Lecture seule// sur le fichier //hosts// du poste de travail et on l'édite avec //Notepad++//. Dans l'explorateur de fichiers, on claque sur le fichier **hosts -> Propriété**s. |{{ Images_Cahier-201-06-073.png?400 }}| \\ Décocher **Lecture seule -> OK**. |{{ Images_Cahier-201-06-074.png?400 }}| \\ **Continuer**. |{{ Images_Cahier-201-06-075.png?400 }}| \\ Clac sur **hosts -> Éditer avec //Notepad++//**. |{{ Images_Cahier-201-06-076.png?400 }}| - On entre notre domaine avec ses **CNAME** et son **adresse IP**.\\ - On sauvegarde le fichier. |{{ Images_Cahier-201-06-077.png?400 }}| **Oui**. |{{ Images_Cahier-201-06-078.png?400 }}| **Oui**. |{{ Images_Cahier-201-06-079.png?400 }}| {{Images_Cahier-101-03-006.png?25}} On est alors retourné à l'écran d'édition et on sauvegarde encore une fois, car la première sauvegarde n'a pas eu lieu, elle a été transformée en demande de changement de mode. {{Images_Cahier-101-03-008.png?25}} On ferme //Notepad++// et, pour la sécurité du poste de travail, __on remet le fichier ''hosts''__ en Lecture seule. À l'avenir, lorsqu'on demandera à notre navigateur de se rendre à **https://www.pve.micronator-dev.org:8006**, il cherchera dans le fichier ''hosts'' une correspondance avec //www.pve.micronator-dev.org// et trouvera //**www.pve.micronator-dev.org**//, il prendra alors l'adresse //192.168.1.44// qui y est associée et se connectera à la page de l'interface Web de notre serveur //PVE//. ==== Cartes réseau ==== === Particularités de la carte RJ-45 === {{Images_icone-201-003_Note.png?25}} L'adresse //MAC// de cette carte est différente de l'adresse //MAC// de la Carte-1, Carte-2, eth0 ou eth1.\\ {{Images_Cahier-101-03-006.png?25}} La carte réseau //RJ-45// doit être activée et reliée à un dispositif quelconque pour que le poste de travail puisse l'i­dentifier. Pour nous, cette carte est branchée à un port de l'aguilleur. Si le connecteur //RJ-45// n'est pas branché à un dispositif quelconque et qu'on examine cette carte dans l'utilitaire //Centre Réseau et partage// de Windows, on verra qu'il indique **//Câble réseau non connecté//** même si elle est pourtant reliée, à travers la Carte-1, au réseau LOCAL et à travers la Carte-2, au réseau Externe du serveur invité Proxmox. De plus, si //VirtualBox// ne trouve pas cette carte, le serveur invité pourrait refuser de démarrer. |{{ Images_Cahier-201-06-080.png?400 }}| {{Images_icone-201-003_Note.png?25}} Nous activerons la deuxième carte réseau au paragraphe [[nethserver_201_cahier_06_proxmox#Deuxième carte réseau]]. |{{ Images_Cahier-201-06-080-A.png?400 }}| Plus haut, nous avons débuté une arnaque en faisant croire au navigateur Web du poste de travail que c'est son serveur //DNS// qui lui donnera l'adresse l'//IP// de notre //Serveur Proxmox// LOCAL alors qu'en réalité c'est le fichier ''C:\Windows\System32\drivers\etc\hosts'' du poste de travail qui répondra à sa requête.\\ {{Images_Cahier-101-03-003.png?22}} Le but principal de notre configuration "non standard" de la carte réseau du poste de travail est de continuer l'arnaque précédente en lui faisant croire qu'il possède deux cartes réseau //RJ-45//. === Première adresse IP === **1)** Nous commençons par donner l'adresse //192.168.1.81// à la carte //RJ-45// du poste de travail. Clac //(clic droit)// sur l'**icône réseau** dans la zone de notification **-> Ouvrir le Centre Réseau et partage**. |{{ Images_Cahier-201-06-081.png?500 }}| \\ Modifier les paramètres de la carte. |{{ Images_Cahier-201-06-082.png?400 }}| \\ Clac sur la **carte Éthernet -> Propriétés**. |{{ Images_Cahier-201-06-083.png?400 }}| Onglet **Gestion de réseau -> Protocole Internet version 4 (TCP/IPv4) -> Propriétés**. |{{ Images_Cahier-201-06-084.png?400 }}| **2)** **//Utiliser l'adresse IP suivante://** On entre les informations telles que ci contre. {{Images_icone-201-003_Note.png?25}} Utiliser une passerelle par défaut sur un autre segment //IP// que l'adresse principale __n'est pas tout à fait standard__. **3)** **//Serveur DNS//** Pour le serveur //DNS préféré//, nous utiliserons l'adresse //IP// **10.10.10.75** du serveur invité //Proxmox// sur son réseau LOCAL afin de pouvoir utiliser le nom //FQDN// du //Serveur Proxmox// virtuel même si celui-ci ne possède pas de véritable nom de domaine. En effet, plus tard, lorsque le navigateur Web lancera une requête //DNS// pour l'adresse //IP// de l'URL **https://www.proxmox.micronator-dev.org**: Windows cherchera d'abord dans son fichier ''hosts'' s'il existe une correspondance pour cette URL. Il trouvera l'adresse //IP// du //Serveur Proxmox// entrée précédemment et il la transmettra au navigateur Web. |{{ Images_Cahier-201-06-085.png?400 }}| Si l'URL en question n'existe pas dans le fichier ''hosts'' du poste de travail, la requête sera transmise au serveur DNS préféré - //10.10.10.75// - le //Serveur Proxmox// virtuel. Si notre serveur virtuel ne connaît pas cette //URL//, il transmet la requête à son propre serveur //DNS// qui lui, la transmet à son propre serveur //DNS//, etc... jusqu'à ce que l'adresse //IP// soit enfin trouvée et retournée au navigateur Web. Lorsque le serveur invité sera éteint, la carte //RJ-45// ne trouvant pas le serveur //DNS préféré//, demandera alors au serveur //DNS auxiliaire (192.168.1.1)// de remplir les requêtes //DNS//. **->** Cliquer **Avancé...** \\ \\ === Deuxième adresse IP === **4)** Nous donnons une deuxième adresse - **10.10.10.81** à la carte //RJ-45// du poste de travail. - Onglet **Paramètres IP**.\\ - **//Adresses IP//** **-> Ajouter...** |{{ Images_Cahier-201-06-086.png?400 }}| - On entre l'**adresse** et le **masque**.\\ - **Ajouter**. |{{ Images_Cahier-201-06-087.png?400 }}| La nouvelle adresse a été ajoutée à la carte //RJ-45// du poste de travail. |{{ Images_Cahier-201-06-088.png?400 }}| \\ === Deuxième passerelle par défaut === \\ **//Passerelles par défaut://** **-> Ajouter...** |{{ Images_Cahier-201-06-089.png?400 }}| - **//Passerelle://** **-> 192.168.1.1**\\ - Ajouter. |{{ Images_Cahier-201-06-090.png?400 }}| - La deuxième passerelle à été ajoutée.\\ - **OK**. |{{ Images_Cahier-201-06-091.png?400 }}| **OK**. |{{ Images_Cahier-201-06-092.png?400 }}| **OK**. |{{ Images_Cahier-201-06-093.png?400 }}| **Détails...** |{{ Images_Cahier-201-06-094.png?400 }}| Nos deux adresses //IP// et nos deux passerelles son présentes. - **Fermer** toutes les fenêtre. |{{ Images_Cahier-201-06-095.png?400 }}| \\ ====== Certificat TLS/SSL Let's Encrypt ====== ===== Référence ===== Voir le chapitre [[nethserver_101_cahier_04_local_certificat_let_encrypt#let_s_encrypt|Certificat TLS/SSL Let's Encrypt]] dans le **Cahier-04:** //NethServer LOCAL & Certificat Let's Encrypt// du "Cours NehServer-101". ==== Ajout des nouveaux CNAME chez Cloudflare.com ==== === pve === |{{ Images_Cahier-201-06-096.png?800 }}| \\ === www.pve === |{{ Images_Cahier-201-06-097.png?800 }}| \\ - On vérifie. - On se déconnecte de //Cloudflare//. |{{ Images_Cahier-201-06-098.png?800 }}| \\ ===== Installation du script acme.sh ===== ==== Utilitaire curl ==== Installation de ''curl'' pour le téléchargement du fichier du script. root@pve:~# apt-get install -y curl Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libcurl4 The following NEW packages will be installed: curl libcurl4 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 596 kB of archives. After this operation, 1,123 kB of additional disk space will be used. Get:1 http://ftp.ca.debian.org/debian buster/main amd64 libcurl4 amd64 7.64.0-4 [332 kB] Get:2 http://ftp.ca.debian.org/debian buster/main amd64 curl amd64 7.64.0-4 [264 kB] Fetched 596 kB in 1s (1,150 kB/s) Selecting previously unselected package libcurl4:amd64. (Reading database ... 43994 files and directories currently installed.) Preparing to unpack .../libcurl4_7.64.0-4_amd64.deb ... Unpacking libcurl4:amd64 (7.64.0-4) ... Selecting previously unselected package curl. Preparing to unpack .../curl_7.64.0-4_amd64.deb ... Unpacking curl (7.64.0-4) ... Setting up libcurl4:amd64 (7.64.0-4) ... Setting up curl (7.64.0-4) ... Processing triggers for man-db (2.8.5-2) ... Processing triggers for libc-bin (2.28-10) ... root@pve:~# ==== Téléchargement du fichier du script ==== root@pve:~# curl https://get.acme.sh | sh % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 705 0 705 0 0 2974 0 --:--:-- --:--:-- --:--:-- 2974 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 186k 100 186k 0 0 578k 0 --:--:-- --:--:-- --:--:-- 576k [Mon 09 Sep 2019 07:02:49 PM EDT] Installing from online archive. [Mon 09 Sep 2019 07:02:49 PM EDT] Downloading https://github.com/Neilpang/acme.sh/archive/master.tar.gz [Mon 09 Sep 2019 07:02:49 PM EDT] Extracting master.tar.gz [Mon 09 Sep 2019 07:02:49 PM EDT] Installing to /root/.acme.sh [Mon 09 Sep 2019 07:02:49 PM EDT] Installed to /root/.acme.sh/acme.sh [Mon 09 Sep 2019 07:02:49 PM EDT] Installing alias to '/root/.bashrc' [Mon 09 Sep 2019 07:02:49 PM EDT] OK, Close and reopen your terminal to start using acme.sh [Mon 09 Sep 2019 07:02:49 PM EDT] Installing cron job 41 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null [Mon 09 Sep 2019 07:02:49 PM EDT] Good, bash is found, so change the shebang to use bash as preferred. [Mon 09 Sep 2019 07:02:50 PM EDT] OK [Mon 09 Sep 2019 07:02:50 PM EDT] Install success! root@pve:~# On vérifie. root@pve:~# ls -als total 36 4 drwx------ 5 root root 4096 Sep 10 09:15 . 4 drwxr-xr-x 18 root root 4096 Sep 9 12:53 .. 4 drwx------ 7 root root 4096 Sep 7 07:02 .acme.sh 4 -rw-r--r-- 1 root root 601 Sep 10 09:15 .bashrc 4 -rw-r--r-- 1 root root 25 Sep 9 12:53 .forward 4 drwx------ 3 root root 4096 Sep 10 09:14 .gnupg 4 -rw-r--r-- 1 root root 148 Aug 17 2015 .profile 4 -rw------- 1 root root 1024 Sep 9 13:11 .rnd 4 drwxr-xr-x 2 root root 4096 Sep 9 13:11 .ssh root@pve:~# ===== Variables d'environnement ===== On doit définir certaines variables d’environnement correspondant à nos informations d’identification et à notre validateur //DNS// c.-à-d. //Cloudflare//.\\ {{Images_Cahier-101-03-003.png?22}} C’est ici que vous devrez effectuer des ajustements nécessaires si vous utilisez un autre serveur de noms que //Cloudflare// - pour plus de détails, voir ce lien pour la documentation du script ''acme.sh'': [[https://github.com/Neilpang/acme.sh/wiki/dnsapi|https://github.com/Neilpang/acme.sh/wiki/dnsapi]].\\ {{Images_Cahier-101-03-006.png?25}} L'exemple ci-dessous est celui d'une installation utilisant le serveur de noms //Cloudflare//. On exporte, dans l'environnement présentement en mémoire, notre **clé API Globale** de //Cloudflare//. [root@tchana ~]# export CF_Key="VotreCléGlobaleDeCloudflare" [root@tchana ~]# On exporte notre adresse courriel utilisée pour notre enregistrement chez //Cloudflare//. [root@tchana ~]# export CF_Email="VotreAdresseCourrielDEnregistrementChezCloudflare" [root@tchana ~]# On vérifie les exportations. [root@tchana ~]# env | grep -i CF_ CF_Email= VotreAdresseCourrielDEnregistrementChezCloudflare CF_Key= VotreCléGlobaleDeCloudflare [root@tchana ~]# {{Images_Cahier-101-03-006.png?25}} {{Images_Cahier-101-03-003.png?22}} Si vous réamorcez le //Serveur PVE// __avant la demande d'un certificat__, vous perdez ces exportations. Il vous faudra alors les refaire. ===== Demande d'un certificat de test ===== [root@tchana ~]# /root/.acme.sh/acme.sh \ --issue \ --dns dns_cf \ -d pve.micronator-dev.org \ -d www.pve.micronator-dev.org \ --accountemail "michelandre@micronator.org" \ --keypath /etc/pve/local/pveproxy-ssl.key \ --fullchainpath /etc/pve/local/pveproxy-ssl.pem \ --reloadcmd "systemctl restart pveproxy" \ --log /root/.acme.sh/acme.sh.log \ --test \ --force [Tue 10 Sep 2019 09:16:49 AM AST] Using stage ACME_DIRECTORY: https://acme-staging-v02.api.letsencrypt.org/directory [Tue 10 Sep 2019 09:16:50 AM AST] Create account key ok. [Tue 10 Sep 2019 09:16:50 AM AST] Registering account [Tue 10 Sep 2019 09:16:51 AM AST] Registered ... [Tue 10 Sep 2019 09:16:51 AM AST] The domain key is here: /root/.acme.sh/pve.micronator-dev.org/pve.micronator-dev.org.key [Tue 10 Sep 2019 09:16:51 AM AST] Multi domain='DNS:pve.micronator-dev.org,DNS:www.pve.micronator-dev.org' ... [Tue 10 Sep 2019 09:17:17 AM AST] Domain pve.micronator-dev.org '_acme-challenge.pve.micronator-dev.org' success. [Tue 10 Sep 2019 09:17:17 AM AST] Checking www.pve.micronator-dev.org for _acme-challenge.www.pve.micronator-dev.org [Tue 10 Sep 2019 09:17:17 AM AST] Domain www.pve.micronator-dev.org '_acme-challenge.www.pve.micronator-dev.org' success. [Tue 10 Sep 2019 09:17:17 AM AST] All success, let's return ... [Tue 10 Sep 2019 09:17:17 AM AST] Verifying: pve.micronator-dev.org [Tue 10 Sep 2019 09:17:19 AM AST] Success [Tue 10 Sep 2019 09:17:20 AM AST] Verifying: www.pve.micronator-dev.org [Tue 10 Sep 2019 09:17:22 AM AST] Success ... -----BEGIN CERTIFICATE----- MIIFYDCCBEigAwIBAgITAPqGqLkQqAECZQhj5EuyG3VRATANBgkqhkiG9w0BAQsF ... TBVT2PIBfGL9VvjcRbffwwq52ZFtVG9n/KJ3471tNFW9+jrf -----END CERTIFICATE----- [Tue 10 Sep 2019 09:17:29 AM AST] Your cert is in /root/.acme.sh/pve.micronator-dev.org/pve.micronator-dev.org.cer [Tue 10 Sep 2019 09:17:29 AM AST] Your cert key is in /root/.acme.sh/pve.micronator-dev.org/pve.micronator-dev.org.key [Tue 10 Sep 2019 09:17:29 AM AST] The intermediate CA cert is in /root/.acme.sh/pve.micronator-dev.org/ca.cer [Tue 10 Sep 2019 09:17:29 AM AST] And the full chain certs is there: /root/.acme.sh/pve.micronator-dev.org/fullchain.cer [Tue 10 Sep 2019 09:17:29 AM AST] Installing key to:/etc/pve/local/pveproxy-ssl.key chmod: changing permissions of '/etc/pve/local/pveproxy-ssl.key': Operation not permitted [Tue 10 Sep 2019 09:17:29 AM AST] Installing full chain to:/etc/pve/local/pveproxy-ssl.pem [Tue 10 Sep 2019 09:17:29 AM AST] Run reload cmd: systemctl restart pveproxy [Tue 10 Sep 2019 09:17:32 AM AST] Reload success root@pve:~# ===== Demande d'un certificat officiel ===== [root@tchana ~]# /root/.acme.sh/acme.sh \ --issue \ --dns dns_cf \ -d pve.micronator-dev.org \ -d www.pve.micronator-dev.org \ --accountemail "michelandre@micronator.org" \ --keypath /etc/pve/local/pveproxy-ssl.key \ --fullchainpath /etc/pve/local/pveproxy-ssl.pem \ --reloadcmd "systemctl restart pveproxy" \ --log /root/.acme.sh/acme.sh.log \ --force ... [Mon 09 Sep 2019 06:32:59 PM EDT] Let's check each dns records now. Sleep 20 seconds first. [Mon 09 Sep 2019 06:33:20 PM EDT] Checking www.pve.micronator-dev.org for _acme-challenge.www.pve.micronator-dev.org [Mon 09 Sep 2019 06:33:21 PM EDT] Domain www.pve.micronator-dev.org '_acme-challenge.www.pve.micronator-dev.org' success. [Mon 09 Sep 2019 06:33:21 PM EDT] All success, let's return [Mon 09 Sep 2019 06:33:21 PM EDT] pve.micronator-dev.org is already verified, skip dns-01. [Mon 09 Sep 2019 06:33:21 PM EDT] Verifying: www.pve.micronator-dev.org [Mon 09 Sep 2019 06:33:23 PM EDT] Success ... [Mon 09 Sep 2019 06:33:27 PM EDT] Download cert, Le_LinkCert: https://acme-v02.api.letsencrypt.org/acme/cert/04709b7539b16d5d777430b314c755ce9601 [Mon 09 Sep 2019 06:33:27 PM EDT] Cert success. -----BEGIN CERTIFICATE----- MIIFgTCCBGmgAwIBAgISBHCbdTmxbV13dDCzFMdVzpYBMA0GCSqGSIb3DQEBCwUA ... cfbX5u8+i4U5T+uEZJZyrCLyD1vU -----END CERTIFICATE----- [Mon 09 Sep 2019 06:33:27 PM EDT] Your cert is in /root/.acme.sh/pve.micronator-dev.org/pve.micronator-dev.org.cer [Mon 09 Sep 2019 06:33:27 PM EDT] Your cert key is in /root/.acme.sh/pve.micronator-dev.org/pve.micronator-dev.org.key [Mon 09 Sep 2019 06:33:27 PM EDT] The intermediate CA cert is in /root/.acme.sh/pve.micronator-dev.org/ca.cer [Mon 09 Sep 2019 06:33:27 PM EDT] And the full chain certs is there: /root/.acme.sh/pve.micronator-dev.org/fullchain.cer [Mon 09 Sep 2019 06:33:27 PM EDT] Installing key to:/etc/pve/local/pveproxy-ssl.key [Mon 09 Sep 2019 06:33:27 PM EDT] Installing full chain to:/etc/pve/local/pveproxy-ssl.pem [Mon 09 Sep 2019 06:33:27 PM EDT] Run reload cmd: systemctl restart pveproxy [Mon 09 Sep 2019 06:33:31 PM EDT] Reload success root@pve:~# ===== Vérification ===== On se rend à **https://www.pve.micronator-dev.org**. {{Images_icone-201-003_Note.png?25}} Il n'est pas nécessaire d'ajouter une exception pour le certificat, car il a été émis par une autorité de certification reconnue. Le cadenas est __vert__. On clique le cadenas pour afficher les informations de la connexion, puis on clique l'icône >. |{{ Images_Cahier-201-06-099.png?400 }}| **Plus d'informations**. |{{ Images_Cahier-201-06-100.png?400 }}| Onglet **Sécurité -> Afficher le certificat**. |{{ Images_Cahier-201-06-101.png?400 }}| \\ - Le certificat a été émis par **//Let's Encrypt Authority X3//**.\\ - On clique l'onglet **Détails**. |{{ Images_Cahier-201-06-102.png?400 }}| - On clique **Nom alternatif du sujet du certificat**.\\ - Tous les //CNAME// sont présents.\\ - **Fermer** toutes les fenêtres. |{{ Images_Cahier-201-06-103.png?400 }}| \\ ===== Renouvellement ===== À chaque jour, une tâche ''cron'' vérifie le nombre de jours restant pour la validité. [root@tchana ~]# crontab -l 41 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null [root@tchana ~]# {{Images_icone-201-003_Note.png?25}} Le renouvellement se fera automatiquement lorsqu'il ne restera que **30** jours de validité. ===== Journal ===== Nous avons spécifié de créer un journal en utilisant le paramètre ''--log /root/.acme.sh/acme.sh.log''. On examine les dernières lignes du journal. root@pve:~# tail /root/.acme.sh/acme.sh.log [Tue 10 Sep 2019 00:40:00 PM EDT] ACME_REVOKE_CERT='https://acme-v02.api.letsencrypt.org/acme/revoke-cert' [Tue 10 Sep 2019 00:40:00 PM EDT] ACME_AGREEMENT='https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf' [Tue 10 Sep 2019 00:40:00 PM EDT] ACME_NEW_NONCE='https://acme-v02.api.letsencrypt.org/acme/new-nonce' [Tue 10 Sep 2019 00:40:00 PM EDT] ACME_VERSION='2' [Tue 10 Sep 2019 00:40:00 PM EDT] Le_NextRenewTime='1573166007' [Tue 10 Sep 2019 00:40:00 PM EDT] _saved_domain='pve.micronator-dev.org' [Tue 10 Sep 2019 00:40:00 PM EDT] _saved_alt='www.pve.micronator-dev.org' [Tue 10 Sep 2019 00:40:00 PM EDT] Domains not changed. [Tue 10 Sep 2019 00:40:00 PM EDT] Skip, Next renewal time is: Fri 08 Nov 2019 10:33:27 PM UTC [Tue 10 Sep 2019 00:40:00 PM EDT] Add '--force' to force to renew. root@pve:~# ===== Instantané VirtualBox ===== {{Images_Cahier-101-03-004.png?25}} À ce stade-ci, on peut prendre un //Instantané// de la machine virtuelle afin de pouvoir y revenir en cas d'une future erreur de manipulation. \\ \\ ====== Serveur physique dédié ====== {{ Images_Cahier-201-06-104.png?700 }} ===== Installation ===== On insère le CD/DVD de //Proxmox-6// dans le lecteur du serveur physique et on l'amorce. **//Install Proxmox VE//** **-> [Entrée]**. |{{ Images_Cahier-201-06-105.png?400 }}| Si on accepte les termes de la licence, on clique **I agree**. |{{ Images_Cahier-201-06-106.png?400 }}| \\ \\ **Next**. |{{ Images_Cahier-201-06-107.png?400 }}| On entre le **pays** **->** on choisit un **fuseau horaire** //(Montréal n'est pas là, mais dans l'écran de gestion, il apparaîtra dans les choix)// **-> Next**. |{{ Images_Cahier-201-06-108.png?400 }}| - On entre un mot de passe robuste pour __**root**__ //(au moins 7 caractères)// et on le confirme.\\ - On entre l'adresse courriel qui recevra les messages de //PVE//.\\ - **Next**. |{{ Images_Cahier-201-06-109.png?400 }}| \\ - Les différents paramètres sont affichés, on peut les modifier.\\ - **Next**.\\ - Le système //Proxmox VE// s'installe. |{{ Images_Cahier-201-06-110.png?400 }}| On vérifie les paramètres affichés, puis pour lancer l'installation, on clique **Install**. |{{ Images_Cahier-201-06-111.png?400 }}| \\ Le système //PVE// débute son installation. |{{ Images_Cahier-201-06-112.png?400 }}| \\ L'installation rend le système amorçable. |{{ Images_Cahier-201-06-113.png?400 }}| - L'installation est terminée.\\ - On réamorce le système en cliquant **Reboot**. |{{ Images_Cahier-201-06-114.png?400 }}| \\ ===== Adresse du gestionnaire PVE ===== Après le réamorçage, l'écran de connexion s'affiche. {{Images_Cahier-101-03-006.png?25}} On voit l'adresse pour accéder au //gestionnaire PVE//. **https://192.168.1.52:8006** |{{ Images_Cahier-201-06-115.png?700 }}| \\ ===== Connexion PuTTY ===== - On ajoute une nouvelle entrée, port 22 **-> Save**.\\ - On sélectionne la nouvelle entrée //ProxmoxVE// **-> Open**. |{{ Images_Cahier-201-06-116.png?700 }}| \\ **Oui** pour accepter la clé //RSA2//. |{{ Images_Cahier-201-06-117.png?700 }}| On se logue à la console.\\ //Nom d'usager:// **->** __**root**__.\\ //Mot de passe:// **->** le mot de passe entré lors de l'installation. login as: root root@192.168.1.52's password: mot-de-passe-de-root Linux proxmox 5.0.15-1-pve #1 SMP PVE 5.0.15-1 (Wed, 03 Jul 2019 10:51:57 +0200) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Sep 10 16:29:30 2019 root@proxmox:~# Affichage des cartes réseau root@proxmox:~# lspci | grep Ethernet 02:00.0 Ethernet controller: Broadcom Limited NetXtreme BCM5751 Gigabit Ethernet PCI Express (rev 21) 04:00.0 Ethernet controller: Broadcom Limited NetXtreme BCM5722 Gigabit Ethernet PCI Express root@proxmox:~# \\ ===== Inspection de la machine PVE ===== ==== Stockage ==== Le programme d'installation crée un //Groupe de Volumes (VG)// appelé **pve** et des //Volumes Logiques (LV)// supplémentaires appelés: **data**, **root** et **swap**. [[https://www.packtpub.com/books/content/basic-concepts-proxmox-virtual-environment|https://www.packtpub.com/books/content/basic-concepts-proxmox-virtual-environment]] **Basic Concepts of Proxmox Virtual Environment** {{ Images_Cahier-201-06-118.png?600 }} \\ === Groupe de volumes === root@proxmox:~# vgs VG #PV #LV #SN Attr VSize VFree pve 1 3 0 wz--n- <74.03g 9.25g root@proxmox:~# === Volume physique === root@proxmox:~# pvs PV VG Fmt Attr PSize PFree /dev/sda3 pve lvm2 a-- <74.03g 9.25g root@proxmox:~# === Volumes logiques === root@proxmox:~# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert data pve twi-a-tz-- <37.28g 0.00 1.59 root pve -wi-ao---- 18.50g swap pve -wi-ao---- 7.00g root@proxmox:~# == Volume data == Ce volume logique utilise //LVM-thin//, et est utilisé pour stocker les images des machines virtuelles. //LVM-thin// est préférable pour cette tâche, car il offre un support efficace pour les //Instantanés//. == LVM-thin == Certains systèmes de fichiers dont //Qemu qcow2 (Quick emulator - Quick Copy On Write)//(( [[https://fr.wikipedia.org/wiki/Qcow2|https://fr.wikipedia.org/wiki/Qcow2]].\\ \\ )) supportent //LVM-thin//. Avec //LVM-thin// activé, seuls les blocs que le système invité utilisera réellement seront écrits sur le disque de stockage. Par exemple, vous créez une machine virtuelle avec un disque dur de //32 Go// et, après l'installation du système d'exploitation invité, le système de fichiers de la machine virtuelle contient seulement //3 Go// de données. Dans ce cas, seulement //3 Go// sont écrits sur le disque, même si la //MV// voit un disque dur de //32 Go//. De cette façon, //LVM-thin// vous permet de créer des disques qui sont plus grands que les blocs de stockage actuellement disponibles. Vous pouvez créer de grands disques pour vos machines virtuelles et quand le besoin se présente, ajouter plus de disques à votre stockage sans redimensionner les systèmes de fichiers des machines virtuelles. Tous les types de stockage qui possèdent la fonctionnalité "Instantané" supportent également //LVM-thin//. === Volume root === Le volume logique //root// est formaté en //ext4// et contient le système d'exploitation. root@proxmox:~# cat /etc/fstab # /dev/pve/root / ext4 errors=remount-ro 0 1 /dev/pve/swap none swap sw 0 0 proc /proc proc defaults 0 0 root@proxmox:~# \\ ===== Communication ===== ==== Dispositifs réseau ==== root@proxmox:~# ip link show 1: lo: 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: enp2s0: mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 00:10:18:27:7d:c9 brd ff:ff:ff:ff:ff:ff 3: eno1: mtu 1500 qdisc mq master vmbr0 state UP mode DEFAULT group default qlen 1000 link/ether 00:26:b9:7a:8e:dc brd ff:ff:ff:ff:ff:ff 4: vmbr0: mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 00:26:b9:7a:8e:dc brd ff:ff:ff:ff:ff:ff root@proxmox:~# //Référence:// [[https://pve.proxmox.com/wiki/Network_Configuration|https://pve.proxmox.com/wiki/Network_Configuration]]. === Noms des interfaces réseau Systemd === //Systemd// utilise le préfixe de deux caractères **en** pour les périphériques réseau Ethernet. Les caractères suivants dépendent du pilote de périphérique et à quel modèle il correspond. - o[n|d] — devices on board.\\ - s[f][n|d] — device by hotplug id.\\ - [P]ps[f][n|d] — devices by bus id.\\ - x — device by MAC address. Les modèles les plus courants sont: **enp2s0** — est la carte réseau sur pcibus **2** slot **0**.\\ **eno1** — est la première carte réseau embarquée. Affichage des cartes réseau de notre serveur. root@proxmox:~# lspci | grep Ethernet 02:00.0 Ethernet controller: Broadcom Limited NetXtreme BCM5751 Gigabit Ethernet PCI Express (rev 21) 04:00.0 Ethernet controller: Broadcom Limited NetXtreme BCM5722 Gigabit Ethernet PCI Express root@proxmox:~# root@proxmox:~# cat /proc/net/dev Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed lo: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 vmbr0: 58716 889 0 0 0 0 0 0 34589 195 0 0 0 0 0 0 eno1: 74708 890 0 2 0 0 0 671 35831 194 0 0 0 0 0 0 enp2s0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 root@proxmox:~# ==== Adresses ==== root@proxmox:~# ip address show 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp2s0: mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 00:10:18:27:7d:c9 brd ff:ff:ff:ff:ff:ff 3: eno1: mtu 1500 qdisc mq master vmbr0 state UP group default qlen 1000 link/ether 00:26:b9:7a:8e:dc brd ff:ff:ff:ff:ff:ff 4: vmbr0: mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:26:b9:7a:8e:dc brd ff:ff:ff:ff:ff:ff inet 192.168.1.52/24 brd 192.168.1.255 scope global vmbr0 valid_lft forever preferred_lft forever inet6 fe80::226:b9ff:fe7a:8edc/64 scope link valid_lft forever preferred_lft forever root@proxmox:~# {{Images_icone-201-003_Note.png?25}} Le dispositif **vmbr0** prend l'adresse //MAC// du dispositif **eno1**. \\ ==== Vérification de la connexion Internet ==== root@proxmox:~# ping -c3 google.com PING google.com (172.217.1.14) 56(84) bytes of data. 64 bytes from iad23s25-in-f14.1e100.net (172.217.1.14): icmp_seq=1 ttl=57 time=12.0 ms 64 bytes from iad23s25-in-f14.1e100.net (172.217.1.14): icmp_seq=2 ttl=57 time=12.0 ms 64 bytes from iad23s25-in-f14.1e100.net (172.217.1.14): icmp_seq=3 ttl=57 time=11.8 ms --- google.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 5ms rtt min/avg/max/mdev = 11.755/11.921/12.005/0.117 ms root@proxmox:~# ===== Performance de l'hôte ===== root@proxmox:~# pveperf CPU BOGOMIPS: 40431.68 REGEX/SECOND: 1315068 HD SIZE: 18.08 GB (/dev/mapper/pve-root) BUFFERED READS: 49.15 MB/sec AVERAGE SEEK TIME: 17.58 ms FSYNCS/SECOND: 12.95 DNS EXT: 37.70 ms DNS INT: 20.38 ms (micronator-dev.org) root@proxmox:~# ==== Souscription ==== root@proxmox:~# pvesubscription get message: There is no subscription key serverid: 95581739A670F04DEA88D32431E185B4 status: NotFound url: http://www.proxmox.com/products/proxmox-ve/subscription-service-plans root@proxmox:~# \\ ===== Affichage de l'adresse du gestionnaire PVE ===== {{Images_Cahier-101-03-004.png?25}} Par la console du serveur, on peut toujours retrouver l'adresse //IP// du gestionnaire //PVE// en affichant le fichier ''/etc/network/interfaces''. root@proxmox:~# cat /etc/network/interfaces auto lo iface lo inet loopback iface eno1 inet manual auto vmbr0 iface vmbr0 inet static address 192.168.1.52 netmask 255.255.255.0 gateway 192.168.1.1 bridge_ports eno1 bridge_stp off bridge_fd 0 root@proxmox:~# \\ ====== Interface Web ====== ===== Adresse et navigateur ===== Pour savoir l'adresse du gestionnaire //PVE//, voir le paragraphe [[nethserver_201_cahier_06_proxmox#Affichage de l'adresse du gestionnaire PVE]] ou utiliser la commande du paragraphe: [[nethserver_201_cahier_06_proxmox#Adresse du gestionnaire PVE]]. {{Images_Cahier-101-03-003.png?22}} Il faut absolument autoriser les témoins et JavaScript dans le navigateur, sinon l'écran de connexion ne sera pas présenté. ===== Connexion ===== {{Images_icone-201-003_Note.png?25}} Si vous ne pouvez accéder à l'adresse du gestionnaire, voir la section [[nethserver_201_cahier_06_proxmox#Gestionnaire PVE]]. - On pointe un navigateur vers: **https://192.168.1.52:8006/**\\ - **Avancé...** |{{ Images_Cahier-201-06-119.png?400 }}| \\ C'est une nouvelle installation, il faut **Ajouter une exception...** |{{ Images_Cahier-201-06-120.png?400 }}| - **//Language://** **-> French** //(l'écran va se rafraîchir)//. - **//Utilisateur://** **-> __root__**.\\ - **//Mot de passe://** **->** celui donné lors de l'installation.\\ - **Login**. |{{ Images_Cahier-201-06-121.png?400 }}| |{{ Images_Cahier-201-06-122.png?400 }}| On nous suggère de visiter le site [[http://www.proxmox.com/|www.proxmox.com]] pour plus d'informations sur les options de contrat de service. |{{ Images_Cahier-201-06-123.png?400 }}| - [[https://www.proxmox.com/en/proxmox-ve/pricing|https://www.proxmox.com/en/proxmox-ve/pricing]]\\ - Sur le site de Proxmox, les différents plans de souscription sont affichés. |{{ Images_Cahier-201-06-125.png?400 }}| \\ \\ De retour au //gestionnaire PVE// **-> OK** pour accéder à l'écran de gestion. |{{ Images_Cahier-201-06-124.png?400 }}| \\ ==== Fuseau horaire ==== Maintenant, nous pouvons ajuster le fuseau horaire à //America/Montreal//. **Vue Serveur -> Datacenter -> proxmox -> Système -> Temps -> Éditer**. |{{ Images_Cahier-201-06-126.png?400 }}| \\ Choisir **America/Montreal -> OK**. |{{ Images_Cahier-201-06-127.png?400 }}| Au retour, on voit que la **//Zone de temps//** est bien //America/Montreal//. |{{ Images_Cahier-201-06-128.png?400 }}| \\ ===== Mise à jour ===== Cette mise à jour s'appliquera au système complet. **Vue Serveur -> Datacenter -> proxmox -> Système -> Mise à jour**. |{{ Images_Cahier-201-06-129.png?400 }}| \\ **Rafraîchir**. |{{ Images_Cahier-201-06-130.png?400 }}| \\ **OK**. |{{ Images_Cahier-201-06-131.png?400 }}| Certains fichiers n'ont pu être téléchargés. {{Images_icone-201-003_Note.png?25}} L'erreur de téléchargement vient du fait que nous n'avons aucun plan de souscription à Proxmox. Après la recherche de mises à jour dans les référentiels, on ferme la fenêtre. |{{ Images_Cahier-201-06-132.png?600 }}| Le chargement du cache s'effectue. |{{ Images_Cahier-201-06-133.png?400 }}| **Appliquer les mises à jour**. |{{ Images_Cahier-201-06-134.png?700 }}| \\ Pour continuer, entrer **Y -> [Entrée]**. |{{ Images_Cahier-201-06-135.png?400 }}| - On peut ignorer les suggestions.\\ - Pour quitter, on entre "**q**" sans guillemets. |{{ Images_Cahier-201-06-136.png?400 }}| On prend le choix par défaut **//UTF-8//** **-> OK**. |{{ Images_Cahier-201-06-137.png?400 }}| On prend le choix par défaut //**English (US)**// **-> OK**. |{{ Images_Cahier-201-06-138.png?400 }}| La mise à jour est terminée. On peut fermer cette fenêtre. |{{ Images_Cahier-201-06-139.png?700 }}| À l'écran du gestionnaire **-> Rafraîchir**. |{{ Images_Cahier-201-06-140.png?400 }}| **OK**. |{{ Images_Cahier-201-06-141.png?400 }}| On peut fermer l'écran surgissant. |{{ Images_Cahier-201-06-143.png?400 }}| - Un rechargement du cache s'effectue. - Il n'y a plus de mises à jour disponibles. |{{ Images_Cahier-201-06-143.png?400 }}| |{{ Images_Cahier-201-06-144.png?400 }}| \\ ===== Cartes réseau ===== - On peut examiner les cartes réseau:\\ **Vue Stockage -> Datacenter -> proxmox -> Système -> Réseau**. - Les cartes réseau ont été correctement détectées. |{{ Images_Cahier-201-06-145.png?700 }}| \\ ===== Souscription ===== Nous allons désactiver l'affichage de l'écran surgissant **//No valid subscription//**, |{{ Images_Cahier-201-06-146.png?700 }}| On active la variable ''$no_subscription_info'' dans le fichier ''Subscription.pm'' et en redémarrant ''pveproxy.service''. root@pve:~# sed -i.bak 's/NotFound/Active/g' /usr/share/perl5/PVE/API2/Subscription.pm && systemctl restart pveproxy.service root@pve:~# On vérifie que le statut de la variable est à la valeur ''Active''. root@pve:~# cat /usr/share/perl5/PVE/API2/Subscription.pm | grep -C 1 "Active" return $info if $info->{status} ne 'Active'; -- my $no_subscription_info = { status => "Active", message => "There is no subscription key", -- if (!$param->{force} && $info->{status} eq 'Active') { my $age = time() - $info->{checktime}; root@pve:~# On redémarre les services. root@pve:~# service pvestatd restart root@pve:~# root@pve:~# service pvedaemon restart root@pve:~# **Tout fonctionne correctement et notre serveur physique est à jour.** \\ ====== Certificat Let's Encrypt ====== Voir le chapitre [[nethserver_101_cahier_04_local_certificat_let_encrypt#let_s_encrypt|Certificat TLS/SSL Let's Encrypt]] dans le **Cahier-04:** //NethServer LOCAL & Certificat Let's Encrypt// du "Cours NehServer-101". ===== Ajout des nouveaux CNAME chez Cloudflare.com ===== ==== proxmox ==== |{{ Images_Cahier-201-06-147.png?800 }}| \\ ==== www.proxmox ==== |{{ Images_Cahier-201-06-148.png?800 }}| \\ - On vérifie. - On se déconnecte de //Cloudflare//. |{{ Images_Cahier-201-06-149.png?800 }}| \\ ===== Installation du script acme.sh ===== ==== Utilitaire curl ==== Installation de ''curl'' pour le téléchargement du fichier du script ''acme.sh''. root@pve:~# apt-get install -y curl Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libcurl4 The following NEW packages will be installed: curl libcurl4 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 596 kB of archives. After this operation, 1,123 kB of additional disk space will be used. Get:1 http://ftp.ca.debian.org/debian buster/main amd64 libcurl4 amd64 7.64.0-4 [332 kB] Get:2 http://ftp.ca.debian.org/debian buster/main amd64 curl amd64 7.64.0-4 [264 kB] Fetched 596 kB in 0s (1,247 kB/s) Selecting previously unselected package libcurl4:amd64. (Reading database ... 43351 files and directories currently installed.) Preparing to unpack .../libcurl4_7.64.0-4_amd64.deb ... Unpacking libcurl4:amd64 (7.64.0-4) ... Selecting previously unselected package curl. Preparing to unpack .../curl_7.64.0-4_amd64.deb ... Unpacking curl (7.64.0-4) ... Setting up libcurl4:amd64 (7.64.0-4) ... Setting up curl (7.64.0-4) ... Processing triggers for man-db (2.8.5-2) ... Processing triggers for libc-bin (2.28-10) ... root@pve:~# === Téléchargement du fichier du script === root@pve:~# curl https://get.acme.sh | sh % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 705 0 705 0 0 3248 0 --:--:-- --:--:-- --:--:-- 3248 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 186k 100 186k 0 0 707k 0 --:--:-- --:--:-- --:--:-- 707k [Tue 10 Sep 2019 06:36:41 PM EDT] Installing from online archive. [Tue 10 Sep 2019 06:36:41 PM EDT] Downloading https://github.com/Neilpang/acme.sh/archive/master.tar.gz [Tue 10 Sep 2019 06:36:41 PM EDT] Extracting master.tar.gz [Tue 10 Sep 2019 06:36:41 PM EDT] Installing to /root/.acme.sh [Tue 10 Sep 2019 06:36:41 PM EDT] Installed to /root/.acme.sh/acme.sh [Tue 10 Sep 2019 06:36:41 PM EDT] Installing alias to '/root/.bashrc' [Tue 10 Sep 2019 06:36:41 PM EDT] OK, Close and reopen your terminal to start using acme.sh [Tue 10 Sep 2019 06:36:41 PM EDT] Installing cron job no crontab for root no crontab for root [Tue 10 Sep 2019 06:36:41 PM EDT] Good, bash is found, so change the shebang to use bash as preferred. [Tue 10 Sep 2019 06:36:42 PM EDT] OK [Tue 10 Sep 2019 06:36:42 PM EDT] Install success! root@pve:~# On vérifie. root@pve:~# ls -als total 40 4 drwx------ 5 root root 4096 Sep 10 18:36 . 4 drwxr-xr-x 18 root root 4096 Sep 10 17:02 .. 4 drwx------ 5 root root 4096 Sep 10 18:36 .acme.sh 4 -rw------- 1 root root 16 Sep 10 16:29 .bash_history 4 -rw-r--r-- 1 root root 601 Sep 10 18:36 .bashrc 4 -rw-r--r-- 1 root root 25 Sep 10 16:28 .forward 4 drwx------ 3 root root 4096 Sep 10 16:29 .gnupg 4 -rw-r--r-- 1 root root 148 Aug 17 2015 .profile 4 -rw------- 1 root root 1024 Sep 10 16:31 .rnd root@pve:~# ===== Variables d'environnement ===== On doit définir certaines variables d’environnement correspondant à nos informations d’identification et à notre validateur //DNS// c.-à-d. //Cloudflare//.\\ {{Images_Cahier-101-03-003.png?22}} C’est ici que vous devrez effectuer des ajustements nécessaires si vous utilisez un autre serveur de noms que //Cloudflare// - pour plus de détails, voir ce lien pour la documentation du script ''acme.sh'': [[https://github.com/Neilpang/acme.sh/wiki/dnsapi|https://github.com/Neilpang/acme.sh/wiki/dnsapi]].\\ {{Images_Cahier-101-03-006.png?25}} L'exemple ci-dessous est celui d'une installation utilisant le serveur de noms //Cloudflare//. On exporte, dans l'environnement présentement en mémoire, notre **clé API Globale** de //Cloudflare//. [root@tchana ~]# export CF_Key="VotreCléGlobaleDeCloudflare" [root@tchana ~]# On exporte notre adresse courriel utilisée pour notre enregistrement chez //Cloudflare//. [root@tchana ~]# export CF_Email="VotreAdresseCourrielDEnregistrementChezCloudflare" [root@tchana ~]# On vérifie les exportations. [root@tchana ~]# env | grep -i CF_ CF_Email= VotreAdresseCourrielDEnregistrementChezCloudflare CF_Key= VotreCléGlobaleDeCloudflare [root@tchana ~]# {{Images_Cahier-101-03-006.png?25}} {{Images_Cahier-101-03-003.png?22}} Si vous réamorcez le //Serveur PVE// __avant la demande d'un certificat__, vous perdez ces exportations. Il vous faudra alors les refaire. ===== Demande d'un certificat de test ===== [root@tchana ~]# /root/.acme.sh/acme.sh \ --issue \ --dns dns_cf \ -d proxmox.micronator-dev.org \ -d www.proxmox.micronator-dev.org \ --accountemail "michelandre@micronator.org" \ --keypath /etc/pve/local/pveproxy-ssl.key \ --fullchainpath /etc/pve/local/pveproxy-ssl.pem \ --reloadcmd "systemctl restart pveproxy" \ --log /root/.acme.sh/acme.sh.log \ --test \ --force [Tue 10 Sep 2019 06:39:16 PM EDT] Using stage ACME_DIRECTORY: https://acme-staging-v02.api.letsencrypt.org/directory [Tue 10 Sep 2019 06:39:17 PM EDT] Create account key ok. [Tue 10 Sep 2019 06:39:17 PM EDT] Registering account [Tue 10 Sep 2019 06:39:18 PM EDT] Registered [Tue 10 Sep 2019 06:39:18 PM EDT] ACCOUNT_THUMBPRINT='DhfgmCkjdV_zUAumSuOREjUR1lNr-QYIAqA5s1b6plI' [Tue 10 Sep 2019 06:39:18 PM EDT] Creating domain key [Tue 10 Sep 2019 06:39:18 PM EDT] The domain key is here: /root/.acme.sh/proxmox.micronator-dev.org/proxmox.micronator-dev.org.key [Tue 10 Sep 2019 06:39:18 PM EDT] Multi domain='DNS:proxmox.micronator-dev.org,DNS:www.proxmox.micronator-dev.org' [Tue 10 Sep 2019 06:39:18 PM EDT] Getting domain auth token for each domain ... [Tue 10 Sep 2019 06:39:19 PM EDT] Getting webroot for domain='proxmox.micronator-dev.org' [Tue 10 Sep 2019 06:39:19 PM EDT] Getting webroot for domain='www.proxmox.micronator-dev.org' ... [Tue 10 Sep 2019 06:39:48 PM EDT] Verifying: proxmox.micronator-dev.org [Tue 10 Sep 2019 06:39:50 PM EDT] Success [Tue 10 Sep 2019 06:39:50 PM EDT] Verifying: www.proxmox.micronator-dev.org [Tue 10 Sep 2019 06:39:53 PM EDT] Success ... [Tue 10 Sep 2019 06:39:57 PM EDT] Download cert, Le_LinkCert: https://acme-staging-v02.api.letsencrypt.org/acme/cert/fac5e54195ddd18b976e9b2715f5a1f9be76 [Tue 10 Sep 2019 06:39:58 PM EDT] Cert success. -----BEGIN CERTIFICATE----- MIIFbjCCBFagAwIBAgITAPrF5UGV3dGLl26bJxX1ofm+djANBgkqhkiG9w0BAQsF 5bQthGGYwsd5EHlMVFXCEYP4wuUe2eicxUr/NCE6JqbqI3sTlTjvtQchkuLSZ2rF qME= -----END CERTIFICATE----- [Tue 10 Sep 2019 06:39:58 PM EDT] Your cert is in /root/.acme.sh/proxmox.micronator-dev.org/proxmox.micronator-dev.org.cer [Tue 10 Sep 2019 06:39:58 PM EDT] Your cert key is in /root/.acme.sh/proxmox.micronator-dev.org/proxmox.micronator-dev.org.key [Tue 10 Sep 2019 06:39:58 PM EDT] The intermediate CA cert is in /root/.acme.sh/proxmox.micronator-dev.org/ca.cer [Tue 10 Sep 2019 06:39:58 PM EDT] And the full chain certs is there: /root/.acme.sh/proxmox.micronator-dev.org/fullchain.cer [Tue 10 Sep 2019 06:39:58 PM EDT] Installing key to:/etc/pve/local/pveproxy-ssl.key chmod: changing permissions of '/etc/pve/local/pveproxy-ssl.key': Operation not permitted [Tue 10 Sep 2019 06:39:58 PM EDT] Installing full chain to:/etc/pve/local/pveproxy-ssl.pem [Tue 10 Sep 2019 06:39:58 PM EDT] Run reload cmd: systemctl restart pveproxy [Tue 10 Sep 2019 06:40:04 PM EDT] Reload success root@pve:~# ===== Demande d'un certificat officiel ===== On __force__ notre première demande de certificat officiel //Let's Encrypt//. [root@tchana ~]# /root/.acme.sh/acme.sh \ --issue \ --dns dns_cf \ -d proxmox.micronator-dev.org \ -d www.proxmox.micronator-dev.org \ --accountemail "michelandre@micronator.org" \ --keypath /etc/pve/local/pveproxy-ssl.key \ --fullchainpath /etc/pve/local/pveproxy-ssl.pem \ --reloadcmd "systemctl restart pveproxy" \ --log /root/.acme.sh/acme.sh.log \ --force [Tue 10 Sep 2019 06:44:54 PM EDT] Create account key ok. [Tue 10 Sep 2019 06:44:54 PM EDT] Registering account [Tue 10 Sep 2019 06:44:55 PM EDT] Registered [Tue 10 Sep 2019 06:44:55 PM EDT] ACCOUNT_THUMBPRINT='hZTl7u8PJriLTr_yJTA9p6nGgXTYDls5i3QWO0TGpWs' [Tue 10 Sep 2019 06:44:55 PM EDT] Multi domain='DNS:proxmox.micronator-dev.org,DNS:www.proxmox.micronator-dev.org' [Tue 10 Sep 2019 06:44:55 PM EDT] Getting domain auth token for each domain [Tue 10 Sep 2019 06:44:56 PM EDT] Getting webroot for domain='proxmox.micronator-dev.org' [Tue 10 Sep 2019 06:44:56 PM EDT] Getting webroot for domain='www.proxmox.micronator-dev.org' ... [Tue 10 Sep 2019 06:45:21 PM EDT] Checking proxmox.micronator-dev.org for _acme-challenge.proxmox.micronator-dev.org [Tue 10 Sep 2019 06:45:22 PM EDT] Domain proxmox.micronator-dev.org '_acme-challenge.proxmox.micronator-dev.org' success. [Tue 10 Sep 2019 06:45:22 PM EDT] Checking www.proxmox.micronator-dev.org for _acme-challenge.www.proxmox.micronator-dev.org [Tue 10 Sep 2019 06:45:22 PM EDT] Domain www.proxmox.micronator-dev.org '_acme-challenge.www.proxmox.micronator-dev.org' success. [Tue 10 Sep 2019 06:45:22 PM EDT] All success, let's return [Tue 10 Sep 2019 06:45:22 PM EDT] Verifying: proxmox.micronator-dev.org [Tue 10 Sep 2019 06:45:24 PM EDT] Success [Tue 10 Sep 2019 06:45:24 PM EDT] Verifying: www.proxmox.micronator-dev.org [Tue 10 Sep 2019 06:45:27 PM EDT] Success ... [Tue 10 Sep 2019 06:45:34 PM EDT] Download cert, Le_LinkCert: https://acme-v02.api.letsencrypt.org/acme/cert/0425cf1782b6f2ffaaebf72b6df6ad5d93f8 [Tue 10 Sep 2019 06:45:34 PM EDT] Cert success. -----BEGIN CERTIFICATE----- MIIFjjCCBHagAwIBAgISBCXPF4K28v+q6/crbfatXZP4MA0GCSqGSIb3DQEBCwUA ... EO3jraRnlFx6f9ZrL8PVp48IUG1bph8SYojVGSVqU86tLA== -----END CERTIFICATE----- [Tue 10 Sep 2019 06:45:34 PM EDT] Your cert is in /root/.acme.sh/proxmox.micronator-dev.org/proxmox.micronator-dev.org.cer [Tue 10 Sep 2019 06:45:34 PM EDT] Your cert key is in /root/.acme.sh/proxmox.micronator-dev.org/proxmox.micronator-dev.org.key [Tue 10 Sep 2019 06:45:34 PM EDT] The intermediate CA cert is in /root/.acme.sh/proxmox.micronator-dev.org/ca.cer [Tue 10 Sep 2019 06:45:34 PM EDT] And the full chain certs is there: /root/.acme.sh/proxmox.micronator-dev.org/fullchain.cer [Tue 10 Sep 2019 06:45:34 PM EDT] Installing key to:/etc/pve/local/pveproxy-ssl.key [Tue 10 Sep 2019 06:45:34 PM EDT] Installing full chain to:/etc/pve/local/pveproxy-ssl.pem [Tue 10 Sep 2019 06:45:34 PM EDT] Run reload cmd: systemctl restart pveproxy [Tue 10 Sep 2019 06:45:39 PM EDT] Reload success root@pve:~# ===== Fichier hosts ===== On entre notre nouveau domaine, ses //CNAME// et son adresse //IP// dans le fichier ''hosts'': ''C:\Windows\System32\drivers\etc\hosts''. |{{ Images_Cahier-201-06-150.png?400 }}| \\ ===== Vérification du certificat ===== On se rend à la page: **https://www.proxmox.micronator-dev.org:8006**. {{Images_icone-201-003_Note.png?25}} Il n'est pas nécessaire d'ajouter une exception pour le certificat, car il a été émis par une autorité de certification reconnue. Le cadenas est __vert__. On clique le **cadenas** pour afficher les informations de la connexion, puis on clique l'icône >. |{{ Images_Cahier-201-06-151.png?400 }}| **Plus d'informations**. |{{ Images_Cahier-201-06-152.png?400 }}| Onglet **Sécurité -> Afficher le certificat**. |{{ Images_Cahier-201-06-153.png?400 }}| \\ - Le certificat a été émis par **//Let's Encrypt Authority X3//**.\\ - On clique l'onglet **Détails**. |{{ Images_Cahier-201-06-154.png?400 }}| - On clique **Nom alternatif du sujet du certificat**.\\ - Tous les //CNAME// sont présents.\\ - **Fermer** toutes les fenêtres. |{{ Images_Cahier-201-06-155.png?400 }}| \\ ===== Renouvellement ===== À chaque jour, une tâche cron vérifie le nombre de jours restant pour la validité. [root@tchana ~]# crontab -l 41 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null [root@tchana ~]# Le renouvellement se fera automatiquement lorsqu'il ne restera que **30** jours de validité. \\ ===== Journal ===== Nous avons spécifié de créer un journal en utilisant le paramètre ''--log /root/.acme.sh/acme.sh.log''. On examine les dernières lignes du journal. root@pve:~# tail /root/.acme.sh/acme.sh.log [Tue 10 Sep 2019 06:45:34 PM EDT] Your cert is in /root/.acme.sh/proxmox.micronator-dev.org/proxmox.micronator-dev.org.cer [Tue 10 Sep 2019 06:45:34 PM EDT] Your cert key is in /root/.acme.sh/proxmox.micronator-dev.org/proxmox.micronator-dev.org.key [Tue 10 Sep 2019 06:45:34 PM EDT] v2 chain. [Tue 10 Sep 2019 06:45:34 PM EDT] The intermediate CA cert is in /root/.acme.sh/proxmox.micronator-dev.org/ca.cer [Tue 10 Sep 2019 06:45:34 PM EDT] And the full chain certs is there: /root/.acme.sh/proxmox.micronator-dev.org/fullchain.cer [Tue 10 Sep 2019 06:45:34 PM EDT] Installing key to:/etc/pve/local/pveproxy-ssl.key [Tue 10 Sep 2019 06:45:34 PM EDT] Installing full chain to:/etc/pve/local/pveproxy-ssl.pem [Tue 10 Sep 2019 06:45:34 PM EDT] Run reload cmd: systemctl restart pveproxy [Tue 10 Sep 2019 06:45:39 PM EDT] Reload success [Tue 10 Sep 2019 06:45:39 PM EDT] _on_issue_success root@pve:~# \\ ===== Propriétés du certificat dans l'interface Web ===== - **Vue Serveur -> Datacenter -> proxmox -> Système -> Certificats**. - Nous avons forcer notre dernière demande de certificat officiel //Let's Encrypt// le //2019-09-10//. |{{ Images_Cahier-201-06-156.png?700 }}| **Le certificat officiel Let's Encrypt fonctionne correctement.** \\ \\ ====== Création d'une machine virtuelle NethServer ====== ===== Diagramme réseau ===== Le //Serveur NethServer// virtuel //(ns-1)// créé dans //PVE// s'intégrera dans le diagramme réseau ci-dessous. {{ Images_Cahier-201-06-157.png?750 }} ===== Deuxième carte réseau ===== On veut activer et configurer la deuxième carte réseau de notre machine physique //proxmox.micronator-dev.org//. ==== Configuration sur le serveur de test pve ==== {{Images_Cahier-101-03-004.png?25}} Vu que les manipulations des cartes réseau peuvent se terminer en désastre, on commence par modifier les cartes réseau de notre serveur de test //pve.micronator-dev.org// //(nous avons créé ce serveur PVE pour spécifiquement faire des tests de configuration)//. Lors de la création de la //MV// dans //VirtualBox//, nous avons spécifié deux cartes réseau, mais lors de l'installation et de la configuration de ce système, nous avons seulement configuré la première, la deuxième étant désactivée. **Vue Serveur -> Datacenter -> pve -> Système -> Réseau pour afficher le statut des cartes réseau**. |{{ Images_Cahier-201-06-161.png?800 }}| Première carte réseau dans //VirtualBox//. |{{ Images_Cahier-201-06-158.png?400 }}| Deuxième carte réseau dans //VirtualBox//. |{{ Images_Cahier-201-06-159.png?400 }}| Installation & config. |{{ Images_Cahier-201-06-160.png?400 }}| root@pve:~# ip addr 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: mtu 1500 qdisc pfifo_fast master vmbr0 state UP group default qlen 1000 link/ether 08:00:27:c8:9c:1c brd ff:ff:ff:ff:ff:ff 3: enp0s8: mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 08:00:27:a5:fc:72 brd ff:ff:ff:ff:ff:ff 4: vmbr0: mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 08:00:27:c8:9c:1c brd ff:ff:ff:ff:ff:ff inet 192.168.1.44/24 brd 192.168.1.255 scope global vmbr0 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fec8:9c1c/64 scope link valid_lft forever preferred_lft forever root@pve:~# === Activation de la deuxième carte réseau === \\ On sélectionne **enp0s8 -> Éditer**. |{{ Images_Cahier-201-06-162.png?400 }}| On coche **Démarrage automatique -> OK**. |{{ Images_Cahier-201-06-163.png?400 }}| \\ **Créer -> Linux Bridge**. |{{ Images_Cahier-201-06-164.png?400 }}| - **//IPv4/CDR://** **-> 10.10.10.44/24**.\\ - **//Ports du bridge://** **-> enp0s8**. |{{ Images_Cahier-201-06-165.png?400 }}| \\ //Changements en attente// //(__Redémarrez__ le serveur pour appliquer les modifications)//. |{{ Images_Cahier-201-06-166.png?700 }}| On redémarre le serveur //pve.micronator-dev.org//. root@pve:~# reboot On vérifie. root@pve:~# ip addr 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: mtu 1500 qdisc pfifo_fast master vmbr0 state UP group default qlen 1000 link/ether 08:00:27:c8:9c:1c brd ff:ff:ff:ff:ff:ff 3: enp0s8: mtu 1500 qdisc pfifo_fast master vmbr1 state UP group default qlen 1000 link/ether 08:00:27:a5:fc:72 brd ff:ff:ff:ff:ff:ff 4: vmbr0: mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 08:00:27:c8:9c:1c brd ff:ff:ff:ff:ff:ff inet 192.168.1.44/24 brd 192.168.1.255 scope global vmbr0 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fec8:9c1c/64 scope link valid_lft forever preferred_lft forever 5: vmbr1: mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 08:00:27:a5:fc:72 brd ff:ff:ff:ff:ff:ff inet 10.10.10.44/24 brd 10.10.10.255 scope global vmbr1 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fea5:fc72/64 scope link valid_lft forever preferred_lft forever root@pve:~# La deuxième carte réseau est active, fonctionnelle et est représentée par vmbr1. \\ \\ ==== Configuration sur le serveur physique proxmox ==== Nos tests sont concluants. On peut refaire, sans craintes, les mêmes manipulations sur notre serveur physique //proxmox.micronator-dev.org//. \\ \\ - On sélectionne **enp2s0 -> Éditer**.\\ - On coche **Démarrage automatique -> OK**. |{{ Images_Cahier-201-06-167.png?400 }}| - **Créer -> Linux Bridge**.\\ - **//IPv4/CDR://** -> **10.10.10.52/24**.\\ - **//Ports du bridge://** **-> enp2s0**.\\ - **Créer**. |{{ Images_Cahier-201-06-168.png?400 }}| //Changements en attente// //(__Redémarrez__ le serveur pour appliquer les modifications)//. |{{ Images_Cahier-201-06-169.png?700 }}| --- /etc/network/interfaces 2019-09-12 14:38:45.216731205 -0400 +++ /etc/network/interfaces.new 2019-09-12 20:53:41.635509920 -0400 @@ -15,6 +15,7 @@ auto eno1 iface eno1 inet manual +auto enp2s0 iface enp2s0 inet manual auto vmbr0 @@ -26,3 +27,11 @@ bridge-stp off bridge-fd 0 +auto vmbr1 +iface vmbr1 inet static + address 10.10.10.52 + netmask 24 + bridge-ports enp2s0 + bridge-stp off + bridge-fd 0 + On redémarre le serveur physique //proxmox.micronator-dev.org//. root@proxmox:~# reboot Après le redémarrage du système //proxmox.micronator-dev.org//. |{{ Images_Cahier-201-06-170.png?700 }}| On vérifie les adresse //IP// de toutes les cartes réseau. root@proxmox:~# ip addr 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp2s0: mtu 1500 qdisc mq master vmbr1 state UP group default qlen 1000 link/ether 00:10:18:27:7d:c9 brd ff:ff:ff:ff:ff:ff 3: eno1: mtu 1500 qdisc mq master vmbr0 state UP group default qlen 1000 link/ether 00:26:b9:7a:8e:dc brd ff:ff:ff:ff:ff:ff 4: vmbr0: mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:26:b9:7a:8e:dc brd ff:ff:ff:ff:ff:ff inet 192.168.1.52/24 brd 192.168.1.255 scope global vmbr0 valid_lft forever preferred_lft forever inet6 fe80::226:b9ff:fe7a:8edc/64 scope link valid_lft forever preferred_lft forever 5: vmbr1: mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:10:18:27:7d:c9 brd ff:ff:ff:ff:ff:ff inet 10.10.10.52/24 brd 10.10.10.255 scope global vmbr1 valid_lft forever preferred_lft forever inet6 fe80::210:18ff:fe27:7dc9/64 scope link valid_lft forever preferred_lft forever root@proxmox:~# \\ ==== Vérification des connexions aux réseaux ==== On lance 3 //ping// vers le poste de travail - //192.168.1.81//. root@proxmox:~# ping -c3 192.168.1.81 PING 192.168.1.81 (192.168.1.81) 56(84) bytes of data. 64 bytes from 192.168.1.81: icmp_seq=1 ttl=128 time=0.764 ms 64 bytes from 192.168.1.81: icmp_seq=2 ttl=128 time=0.424 ms 64 bytes from 192.168.1.81: icmp_seq=3 ttl=128 time=0.407 ms --- 192.168.1.81 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 48ms rtt min/avg/max/mdev = 0.407/0.531/0.764/0.166 ms root@proxmox:~# On lance 3 //ping// vers le serveur principal __connecté directement à l'Internet__ - //192.168.1.1//. root@proxmox:~# ping -c3 192.168.1.1 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.902 ms 64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.548 ms 64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.441 ms --- 192.168.1.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 52ms rtt min/avg/max/mdev = 0.441/0.630/0.902/0.198 ms root@proxmox:~# On lance 3 //ping// vers //google.com//. root@proxmox:~# ping -c3 google.com PING google.com (172.217.0.238) 56(84) bytes of data. 64 bytes from yyz10s03-in-f14.1e100.net (172.217.0.238): icmp_seq=1 ttl=57 time=11.6 ms 64 bytes from yyz10s03-in-f14.1e100.net (172.217.0.238): icmp_seq=2 ttl=57 time=11.8 ms 64 bytes from yyz10s03-in-f14.1e100.net (172.217.0.238): icmp_seq=3 ttl=57 time=12.2 ms --- google.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 6ms rtt min/avg/max/mdev = 11.640/11.880/12.153/0.228 ms root@proxmox:~# On lance 3 //ping// vers le serveur //pve - 192.168.1.44//. root@proxmox:~# ping -c3 192.168.1.44 PING 192.168.1.44 (192.168.1.44) 56(84) bytes of data. 64 bytes from 192.168.1.44: icmp_seq=1 ttl=64 time=1.48 ms 64 bytes from 192.168.1.44: icmp_seq=2 ttl=64 time=2.12 ms 64 bytes from 192.168.1.44: icmp_seq=3 ttl=64 time=0.619 ms --- 192.168.1.44 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 5ms rtt min/avg/max/mdev = 0.619/1.404/2.117/0.613 ms root@proxmox:~# On vérifie le réseau //10.10.10.0/24//. root@proxmox:~# ping -c3 10.10.10.81 PING 10.10.10.81 (10.10.10.81) 56(84) bytes of data. 64 bytes from 10.10.10.81: icmp_seq=1 ttl=128 time=3.04 ms 64 bytes from 10.10.10.81: icmp_seq=2 ttl=128 time=0.496 ms 64 bytes from 10.10.10.81: icmp_seq=3 ttl=128 time=0.414 ms --- 10.10.10.81 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 29ms rtt min/avg/max/mdev = 0.414/1.315/3.037/1.218 ms root@proxmox:~# root@proxmox:~# ping -c3 10.10.10.44 PING 10.10.10.44 (10.10.10.44) 56(84) bytes of data. 64 bytes from 10.10.10.44: icmp_seq=1 ttl=64 time=0.661 ms 64 bytes from 10.10.10.44: icmp_seq=2 ttl=64 time=0.617 ms 64 bytes from 10.10.10.44: icmp_seq=3 ttl=64 time=0.669 ms --- 10.10.10.44 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 53ms rtt min/avg/max/mdev = 0.617/0.649/0.669/0.022 ms root@proxmox:~# On vérifie si le serveur //pve// peut communiquer avec le serveur //proxmox//. root@pve:~# ping -c3 192.168.1.52 PING 192.168.1.52 (192.168.1.52) 56(84) bytes of data. 64 bytes from 192.168.1.52: icmp_seq=1 ttl=64 time=1.09 ms 64 bytes from 192.168.1.52: icmp_seq=2 ttl=64 time=1.27 ms 64 bytes from 192.168.1.52: icmp_seq=3 ttl=64 time=1.24 ms --- 192.168.1.52 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 9ms rtt min/avg/max/mdev = 1.088/1.200/1.271/0.080 ms root@pve:~# root@pve:~# ping -c3 10.10.10.52 PING 10.10.10.52 (10.10.10.52) 56(84) bytes of data. 64 bytes from 10.10.10.52: icmp_seq=1 ttl=64 time=0.988 ms 64 bytes from 10.10.10.52: icmp_seq=2 ttl=64 time=1.16 ms 64 bytes from 10.10.10.52: icmp_seq=3 ttl=64 time=1.05 ms --- 10.10.10.52 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 6ms rtt min/avg/max/mdev = 0.988/1.066/1.158/0.079 ms root@pve:~# **La deuxième carte réseau est activée, configurée et fonctionne correctement.** \\ ===== Téléversement de l'ISO NethServer dans l'environnement PVE ===== **Vue Serveur -> Datacenter -> proxmox -> local (proxmox) -> Contenu -> Upload**. |{{ Images_Cahier-201-06-171.png?700 }}| **Choisir fichier**. |{{ Images_Cahier-201-06-172.png?400 }}| Sélectionner le **fichier ISO -> Ouvrir**. |{{ Images_Cahier-201-06-173.png?700 }}| **Upload**. |{{ Images_Cahier-201-06-175.png?400 }}| Le fichier //ISO// se téléverse //(peut prendre un certain temps)//. |{{ Images_Cahier-201-06-176.png?400 }}| Le fichier //ISO// pour l'installation d'un //Serveur NethServer// est maintenant dans l'environnement //PVE//. {{Images_Cahier-101-03-004.png?25}} Si la taille du fichier indique une grandeur moindre, simplement faire un rafraîchissement de la page du fureteur. |{{ Images_Cahier-201-06-177.png?700 }}| ==== Vérification par l'interface Web ==== - **Vue par pools -> Datacenter -> Stockage**. - On voit que le fichier //ISO// est emmagasiné dans le chemin ''/var/lib/vz''. |{{ Images_Cahier-201-06-178.png?700 }}| ==== Vérification par WinSCP ==== On crée une nouvelle connexion dans //WinSCP// pour accéder au serveur //proxmox//. On entre les informations demandées **-> Sauver...** |{{ Images_Cahier-201-06-179.png?400 }}| On entre un **nom pour cette connexion -> OK**. |{{ Images_Cahier-201-06-180.png?400 }}| **Connexion ->** on accepte le certificat. |{{ Images_Cahier-201-06-181.png?400 }}| \\ On entre le **mot de passe de __root__ -> OK**. |{{ Images_Cahier-201-06-182.png?400 }}| - On se rend dans le répertoire ''/var/lib/vz/template/iso''.\\ - Le fichier //ISO// pour le //Serveur NethServer// s'y trouve. |{{ Images_Cahier-201-06-183.png?700 }}| \\ ===== Création de la machine virtuelle NethServer ===== ==== Paramètres de la machine virtuelle ==== - //Nom de la machine virtuelle:// **-> NethServer-7.6.1810**. - //Nom du serveur virtuel:// **-> ns-1**. - //Le nom complet FQDN:// **-> ns1.micronator-dev.org**. - //Mémoire:// **-> 4096 MB**. - //Disque:// **-> 8 GB**. - //IP (réseau local):// **-> 192.168.1.11 / Masque: 255.255.255.0**. - //IP (réseau externe):// **-> 10.10.10.11 / Masque: 255.255.255.0**. - //Passerelle:// **-> 192.168.1.1**. ==== Création de la machine virtuelle ==== On clique **Créer VM**. |{{ Images_Cahier-201-06-184.png?700 }}| Onglet **Général -> NethServer-7.6.1810**. |{{ Images_Cahier-201-06-185.png?400 }}| Onglet **OS -> on sélectionne l'ISO NethServer**. |{{ Images_Cahier-201-06-186.png?400 }}| {{Images_Cahier-101-03-006.png?25}} Si le nombre de //CPU// alloués à la machine virtuelle //(ex: 4)// dépasse le\\ nombre de //CPU// de l'hôte //(ex: 2)//, vous recevrez l'erreur ci-contre. {{Images_icone-201-003_Note.png?25}} Dans notre cas, nous avons 4 coeurs avec 2 //CPU///coeur = 8 CPU. |{{ Images_Cahier-201-06-187.png?400 }}| \\ \\ Onglet **Système ->** on coche **Agent Qemu**. |{{ Images_Cahier-201-06-188.png?400 }}| - Onglet **Disque Dur**.\\ - **//Bus/Device// ->** **//VirtIO//**(( **VIRTIO** est une abréviation pour //Virtual Input-Output//, que l'on pourrait traduire en français par //Entrées-Sorties Virtuelles//.\\ //Virtio// est une interface de programmation du Noyau Linux utile aux machines virtuelles.\\ //Problème//\\ Les machines virtuelles, pour des raisons de performance, tendent de plus en plus à devenir des hyperviseurs afin d'accélérer le transit des données entre l'hôte et les invités en présentant au système d'exploitation invité un matériel virtuel nécessitant un pilote spécifique. Ceci contrairement aux machines virtuelles classiques qui simulent la présence d'un matériel existant réellement, généralement répandu, pour lequel le système invité a déjà un pilote.\\ La multiplication des hyperviseurs a entraîné une multiplication dans les mêmes proportions des pilotes nécessaires, des pilotes qui, sous Linux, devaient être adaptés à chaque version du noyau. //Virtio// tente de répondre à ce problème en mettant en œuvre directement dans la branche officielle du noyau Linux une interface de programmation dédiée aux pilotes de périphériques de machines virtuelles.\\ //Fonctionnement//\\ L'interface de programmation de //Virtio// est très minimaliste, toutes les communications entre l'hyperviseur et le noyau invité se font au travers d'une file d'attente //FIFO1//. Des pilotes, eux aussi présents dans le noyau, se basent sur cette interface; il existe à l'heure actuelle des pilotes pour une carte réseau et un contrôleur de disques, utilisés par //KVM//. Les développeurs de //KVM// ont également écrit un pilote réseau pour Microsoft Windows XP et 2000 mettant en œuvre //Virtio//.\\ //Référence:// [[https://fr.wikipedia.org/wiki/Virtio|https://fr.wikipedia.org/wiki/Virtio]].\\ \\ )) **//Block//** est plus rapide.\\ - **//Taille du disque (GiB)://** **-> 8**. |{{ Images_Cahier-201-06-189.png?400 }}| - Onglet **CPU -> //Sockets:// 2 -> //Coeurs:// 2**.\\ - Donne un total de __4 coeurs__. |{{ Images_Cahier-201-06-190.png?400 }}| \\ Onglet **Mémoire ->** **//Mémoire (MiB)://** **-> 4096**. |{{ Images_Cahier-201-06-191.png?400 }}| Onglet** Réseau ->** on prend les défauts surtout pour **//Modèle://** **VirtIO (Paravirtualisé**(( **Paravirtualisation:** En informatique, la paravirtualisation est une technique de virtualisation qui présente une interface logicielle, similaire à du matériel réel, à une machine virtuelle, mais optimisée pour ce type de fonctionnement, contrairement à l'émulation d'un périphérique matériel existant qui peut s'avérer laborieuse et surtout lente.\\ //Référence:// [[https://fr.wikipedia.org/wiki/Paravirtualisation|https://fr.wikipedia.org/wiki/Paravirtualisation]].\\ \\ ))**)**. |{{ Images_Cahier-201-06-192.png?400 }}| - Onglet **Confirmation**.\\ - On vérifie **-> Terminé**. |{{ Images_Cahier-201-06-193.png?400 }}| \\ ==== Ajout d'une deuxième carte réseau ==== - Un //Serveur NethServer// a besoin de __deux cartes réseau__. - **Matériel -> Ajouter -> Carte réseau**. |{{ Images_Cahier-201-06-194.png?700 }}| - **//Pont://** **-> vmbr1**.\\ - **//Modèle://** **-> VirtIO (paravirtualisé)**.\\ - **//Parefeu://** //NethServer// a son propre pare-feu.\\ - **Ajouter**. |{{ Images_Cahier-201-06-195.png?400 }}| \\ \\ \\ La nouvelle carte réseau a été ajoutée. |{{ Images_Cahier-201-06-196.png?400 }}| \\ ===== Pare-feu ===== //Référence:// [[https://pve.proxmox.com/wiki/Firewall|https://pve.proxmox.com/wiki/Firewall]]. **Vue par pools -> Datacenter -> 100 (NethServer-7.6.1810) -> Parefeu -> Options**. //NethServer// possède son propre pare-feu. Il n'est donc pas nécessaire d'utiliser celui de //PVE//. On sélectionne les différentes options **-> Éditer**. **//DHCP//**\\ {{Images_Cahier-101-03-004.png?25}} On désactive cette option.\\ {{Images_Cahier-101-03-006.png?25}} Il ne faut surtout pas avoir deux serveurs **DHCP** sur le même segment //IP//. |{{ Images_Cahier-201-06-197.png?400 }}| Les options //NDP// et //Annonce du routeur// sont utilisées par //IPv6//. Par défaut, les machines virtuelles sont autorisées à envoyer des messages de sollicitation d'aiguilleur //(router)// //(pour rechercher un aiguilleur)// et à recevoir des paquets d'annonce d'aiguilleur. Ceci leur permet d'utiliser la configuration automatique sans état //(stateless//(( **Stateless:** Qui ne garde pas de trace d'un contexte lié à un utilisateur.//Note:// Cette expression s'emploie souvent pour qualifier un protocole.\\ //Référence:// [[http://www.granddictionnaire.com/ficheOqlf.aspx?Id_Fiche=8364596|http://www.granddictionnaire.com/ficheOqlf.aspx?Id_Fiche=8364596]].\\ \\ ))//)//. D'autre part, les ordinateurs virtuels ne peuvent pas s'annoncer eux-mêmes en tant qu'aiguilleur sauf si l'option //Annonce du routeur (radv: 1//(( **radvd: 1:**//(Router Advertisement Daemon, démon d'annonce de routeurs)// est un logiciel //Open Source// qui implémente les annonces lien-local des adresses de routeurs //__IPv6__// et des préfixes de réseau //IPv6// au moyen du protocole //Neighbour Discovery Protocol - (NDP)// conformément à la RFC 24614. Le démon d'annonce de routeurs est utilisé par les administrateurs système dans le cadre de l'auto-configuration sans état des hôtes des réseaux __Internet Protocol version 6__.//\\ Référence://[[https://fr.wikipedia.org/wiki/Radvd|https://fr.wikipedia.org/wiki/Radvd]].\\ \\ ))//)// est définie. \\ ===== Instantané ===== {{Images_Cahier-101-03-004.png?25}} À ce stade-ci, on peut prendre un //Instantané PVE// de la machine virtuelle afin de pouvoir y revenir en cas d'une future erreur de manipulation. **Vue par pool -> Datacenter -> Snapshots -> Créer un snapshot**. |{{ Images_Cahier-201-06-198.png?700 }}| \\ \\ \\ Caractères permis dans le nom de l'//Instantané//. |{{ Images_Cahier-201-06-199.png?400 }}| - On entre un nom descriptif.\\ - On décoche **//Inclure la RAM//**.\\ - On entre une description plus détaillée.\\ - **Créer un snapshot**. |{{ Images_Cahier-201-06-200.png?600 }}| L'//Instantané// est terminé en seulement quelques secondes. |{{ Images_Cahier-201-06-201.png?700 }}| \\ ====== Installation de NethServer ====== ===== Démarrage et installation ===== On amorce la machine virtuelle en cliquant **Démarrer**, puis on ouvre une console en cliquant **Console**. |{{ Images_Cahier-201-06-202.png?700 }}| \\ \\ On presse la clé **[Entrée]** pour lancer l'installation. |{{ Images_Cahier-201-06-203.png?400 }}| \\ \\ \\ **DATE & TIME**. |{{ Images_Cahier-201-06-204.png?400 }}| - On choisit un **fuseau horaire**, car //Montréal// n'est pas là. Il le sera dans l'interface Web de //NethServer//.\\ - **Done**. |{{ Images_Cahier-201-06-205.png?400 }}| **KEYBOARD**. |{{ Images_Cahier-201-06-206.png?400 }}| On sélectionne le défaut **-> Done**. |{{ Images_Cahier-201-06-207.png?400 }}| **NETWORK & HOSTNAME**. |{{ Images_Cahier-201-06-208.png?400 }}| \\ \\ On sélectionne la première carte réseau **->** on s'assure qu'elle est active **-> Configure...** |{{ Images_Cahier-201-06-209.png?400 }}| \\ \\ - Onglet **General**.\\ - On coche **Automatically connect to this...** |{{ Images_Cahier-201-06-210.png?400 }}| Onglet **IPv4 Settings -> Manual -> Add ->** on entre l'**adresse IP**, le **masque** et l'**IP de la passerelle** //(l'adresse de notre serveur connecté directement à l'Internet)// **->** i.d. pour **//DNS servers// -> Save**. |{{ Images_Cahier-201-06-211.png?400 }}| \\ - On sélectionne la deuxième carte réseau.\\ - On s'assure qu'elle est active.\\ - **Configure...** |{{ Images_Cahier-201-06-212.png?400 }}| \\ - Onglet **General**.\\ - On coche **Automatically connect to this...** |{{ Images_Cahier-201-06-213.png?400 }}| Onglet **IPv4 Settings -> Manual -> Add ->** on entre l'**adresse IP**, le **masque** et l'**IP de la passerelle** //(l'adresse du serveur proxmox)// **-> Save**. |{{ Images_Cahier-201-06-214.png?400 }}| **//Host name://** **->** on entre le **FQDN** de notre nouveau serveur //NethServer// **-> Apply -> Done**. |{{ Images_Cahier-201-06-215.png?400 }}| \\ \\ **Begin Installation**. |{{ Images_Cahier-201-06-216.png?400 }}| \\ \\ **ROOT PASSWORD**. |{{ Images_Cahier-201-06-217.png?400 }}| On entre un **mot de passe robuste ->** on le confirme **-> Done**. |{{ Images_Cahier-201-06-218.png?400 }}| \\ L'installation se poursuit. |{{ Images_Cahier-201-06-219.png?400 }}| À la fin de l'installation, le serveur réamorce. |{{ Images_Cahier-201-06-220.png?400 }}| \\ ===== Première connexion ===== - Les //URL// pour se connecter à l'interface Web sont affichées: **https://10.10.10.11:980\\ https://192.168.1.1:980** - On se connecte avec le justificatif de l'utilisateur **__root__**. - On est connecté à la console du serveur. |{{ Images_Cahier-201-06-221.png?400 }}| \\ ===== Instantané ===== {{Images_Cahier-101-03-004.png?25}} À ce stade-ci, on peut prendre un //Instantané PVE// de la machine virtuelle afin de pouvoir y revenir en cas d'une future erreur de manipulation. \\ \\ **Vue par pool -> Datacenter -> 100 (NethServer-7.6.1810) -> Snapshots -> Créer un snapshot**. |{{ Images_Cahier-201-06-222.png?400 }}| - On entre un nom descriptif.\\ - On décoche **Inclure la RAM**.\\ - On entre une description plus détaillée.\\ - **Créer un snapshot**. |{{ Images_Cahier-201-06-223.png?400 }}| L'//Instantané// est terminé. |{{ Images_Cahier-201-06-224.png?700 }}| \\ ===== Connexion à l'interface Web ===== //NethServer// peut être configuré à l'aide de l'interface Web du gestionnaire du serveur. À partir de notre poste de travail, nous avons besoin d'un navigateur Web tel que //Mozilla Firefox//, //Google Chrome// ou //Safari// pour accéder à l'interface Web à l'aide de l'adresse //(URL)// **https://abcd:980** où **//abcd//** est l'adresse //IP// configurée lors de l'installation du serveur et **//980//** le port utilisé par l'interface Web. - Pour l'instant, on se connecte à l'interface WEB par l'//IP// du réseau LOCAL: **https://192.168.1.11:980**. - **Avancé... -> Accepter le risque et poursuivre**. |{{ Images_Cahier-201-06-225.png?400 }}| \\ ===== Configuration initiale de NethServer ===== - **//Nom d'utilisateur par défaut://** **-> __root__**. - Nous avons déjà choisi un mot de passe lors de l'installation - Si nous n'avons pas choisi de mot de passe, par défaut il est défini à: Nethesis,1234. Attention, ne pas oublier la "virgule".\\ Si le mot de passe de **__root__** n'est pas robuste, modifiez-le dès que possible en choisissant un mot de passe composé d’une séquence aléatoire de lettres, de chiffres et de symboles. On se logue avec le nom de l'usager **__root__**. |{{ Images_Cahier-201-06-226.png?400 }}| \\ **NEXT**. |{{ Images_Cahier-201-06-227.png?800 }}| ==== Restore configuration ==== - On pourrait récupérer la configuration depuis une sauvegarde précédente.\\ - **Next**. |{{ Images_Cahier-201-06-228.png?800 }}| ==== Set host name ==== - Le //FQDN// de notre serveur a été entré lors de l'installation. Ici, on peut le modifier.\\ - **Next**. |{{ Images_Cahier-201-06-229.png?800 }}| === Date and time === - On choisit le fuseau horaire. Ici, nous avons beaucoup plus de choix que lors de l'installation du serveur.\\ - **Next**. |{{ Images_Cahier-201-06-230.png?800 }}| === SSH === - On change le port //SSH// de __22__ à 2222 pour dérouter, un peu plus, les intrusions malveillantes.\\ - **Next**. |{{ Images_Cahier-201-06-230.png?800 }}| === Smarthost === Envoyer les courriels en utilisant un //smarthost//(( **Smarthost:** Un smarthost est un serveur de messagerie via lequel des tiers peuvent envoyer des courriers électroniques et les transférer sur les serveurs de messagerie des destinataires.\\ //Référence//: [[https://en.wikipedia.org/wiki/Smart_host|https://en.wikipedia.org/wiki/Smart_host]].\\ \\ )).\\ {{Images_Cahier-101-03-003.png?22}} Le serveur tentera d'envoyer les courriels directement à la destination //(recommandé dans la plupart des cas)//. Mais, en choisissant plutôt d'envoyer par un //smarthost//, il essaiera de les transmettre via le serveur //SMTP// du //FAI// //(recommandé en cas de connexion peu fiable ou d'ADSL résidentiel, IP dynamique, etc.)//. **Next**. |{{ Images_Cahier-201-06-231.png?800 }}| ==== Usage statistics ==== - Ces statistique sont utilisées seulement pour connaître le nombre total de //NethServer// installés.\\ - **Next**. |{{ Images_Cahier-201-06-232.png?800 }}| ==== Review changes ==== **Apply**. |{{ Images_Cahier-201-06-233.png?800 }}| **La configuration initiale du Serveur NethServer est terminée.** \\ ====== Configuration de NethServer ====== ===== Réseau ===== ==== Rôles et zones ==== Chaque interface réseau a un rôle qui correspond à une zone du pare-feu. Le pare-feu comporte les zones intégrées suivantes, classées de la plus prépondérante à la moins privilégiée: **VERT**: -> réseau LOCAL. Cette zone est considérée comme fiable. Les hôtes de ce réseau peuvent accéder à n’importe quelle autre zone. Les hôtes connectés via //VPN// peuvent être considérés en zone verte.\\ **BLEU**: -> réseau invité. Les hôtes de ce réseau peuvent accéder aux zones orange et rouge, mais pas à la zone verte.\\ **ORANGE**: -> réseau //DMZ//. Les hôtes de ce réseau peuvent accéder à la zone rouge, mais pas aux zones verte et bleue.\\ **ROUGE**: -> réseau externe/Internet. Les hôtes de ce réseau peuvent uniquement accéder à cette zone. Il existe également une zone de pare-feu spéciale qui représente le pare-feu lui-même. Le pare-feu peut accéder à n’importe quelle zone.\\ Chaque interface réseau, avec un rôle configuré, est une zone du pare-feu. Les rôles sont "mappés" aux zones //Shorewall// comme suit: **vert** -> loc\\ **rouge** -> net\\ **bleu** -> bleu\\ **orange** -> orang //(dans Shorewall, un nom de zone ne peut dépasser __5 caractères__)//\\ **pare-feu** -> FW {{Images_Cahier-101-03-005.png?25}} Les noms personnalisés de zones sont directement "mappés" sur //Shorewall// en respectant la limite de 5 caractères.\\ {{Images_Cahier-101-03-006.png?25}} Les interfaces rouges peuvent être configurées avec une adresse //IP// statique ou à l'aide de //DHCP//. Toutes les autres interfaces ne peuvent être configurées qu'avec des adresses //IP// statiques. \\ \\ ===== Connexion Internet ===== {{ Images_Cahier-201-06-235.png?600}} Lors de la configuration du poste de travail, nous avons configuré la carte //RJ-45// pour que ce soit elle qui nous connecte à l'internet. Nous lui avons donné l'adresse IP statique //(fixe)// //192.168.1.81// et comme passerelle l'adresse //192.168.1.1//. {{Images_Cahier-101-03-005.png?25}} De plus, nous assumons que c'est le serveur //dorgee.micronator.org// qui sert de serveur //DHCP// et qui fournit dynamiquement les adresses //IP// à tous les autres postes sur le réseau //192.168.1.0/24//. ==== Vérification des adresses IP du Serveur NethServer ==== **Configuration -> Network**. |{{ Images_Cahier-201-06-236.png?600 }}| - Sous //Network//, on voit que le réseau de la carte //eth0// est __vert__ indiquant que c'est un réseau de confiance et implique que quiconque sur le réseau //192.168.1.1/24// peut avoir accès au gestionnaire Web du serveur s'il connaît le mot de passe de **__root__**. - Le réseau de la carte //eth1// est aussi **__vert__** indiquant que c'est aussi un réseau de confiance. === Carte eth0 === |{{ Images_Cahier-201-06-237.png?700 }}| On s'assure que la première carte réseau possède bien l'adresse //192.168.1.11//, que son **//Role//** est //LAN (green)// pour indiquer que c'est elle qui connecte le serveur au réseau LOCAL et que sa passerelle est l'adresse //IP// de notre serveur principal //(directement branché à l'Internet)//, sinon on édite la configuration de cette carte en cliquant **Edit**, à la fin de la ligne sur la capture d'écran ci-dessus. |{{ Images_Cahier-201-06-238.png?400 }}| === Carte eth1 === {{Images_Cahier-101-03-003.png?22}} On s'assure que la deuxième carte réseau possède bien l'adresse //10.10.10.11// et on la configure pour avoir un **//Role//** de //DMZ (orange)// pour indiquer que c'est elle qui connecte le serveur à l'Internet. On édite la configuration de cette carte en cliquant **Edit**, à la fin de la ligne sur la capture d'écran ci-dessous. |{{ Images_Cahier-201-06-239.png?700 }}| \\ Au retour, on vérifie que la carte //eth1// possède bien le rôle de DMZ. |{{ Images_Cahier-201-06-240.png?700 }}| |{{ Images_Cahier-201-06-241.png?400 }}| \\ ==== Serveur DNS ==== On clique **DNS servers** et on vérifie que le serveur //DNS// de notre système est bien //192.168.1.1//, l'adresse de notre serveur principal qui est directement branché à l'Internet, __sinon on ajuste__ //-> SUBMIT//. |{{ Images_Cahier-201-06-242.png?400 }}| |{{ Images_Cahier-201-06-243.png?400 }}| \\ ==== Vérification de la communication ==== - On crée une nouvelle entrée dans //PuTTY// pour le //Serveur NethServer//. Ici le port est **2222**. - **Open** et on accepte le certificat. |{{ Images_Cahier-201-06-244.png?400 }}| On se connecte en utilisateur **__root__** et le mot de passe qu’on lui a attribué. login as: root root@192.168.1.11's password:mot-de-passe-de-root Last login: Fri Sep 13 17:07:11 2019 ************ Welcome to NethServer ************ This is a NethServer installation. Before editing configuration files, be aware of the automatic events and templates system. http://docs.nethserver.org *********************************************** [root@ns-1 ~]# On affiche la configuration des cartes réseau. [root@ns-1 ~]# ifconfig eth0: flags=4163 mtu 1500 inet 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::10ac:dcff:fe57:d608 prefixlen 64 scopeid 0x20 ether 12:ac:dc:57:d6:08 txqueuelen 1000 (Ethernet) RX packets 180905 bytes 233843665 (223.0 MiB) RX errors 0 dropped 21 overruns 0 frame 0 TX packets 149049 bytes 27381092 (26.1 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=4163 mtu 1500 inet 10.10.10.11 netmask 255.255.255.0 broadcast 10.10.10.255 ether 8e:9a:a3:3d:b4:dd txqueuelen 1000 (Ethernet) RX packets 7964 bytes 560977 (547.8 KiB) RX errors 0 dropped 21 overruns 0 frame 0 TX packets 147 bytes 10378 (10.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 578 bytes 60489 (59.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 578 bytes 60489 (59.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@ns-1 ~]# - Les adresses //IP// sont correctes. - On peut comparer leur adresse //MAC//. |{{ Images_Cahier-201-06-245.png?700 }}| On affiche le serveur //DNS//. [root@ns-1 ~]# cat /etc/resolv.conf # ================= DO NOT MODIFY THIS FILE ================= # # Manual changes will be lost when this file is regenerated. # # Please read the developer's guide, which is available # at NethServer official site: https://www.nethserver.org # # domain micronator-dev.org search micronator-dev.org # dnsmasq is enabled on this machine: nameserver 127.0.0.1 [root@ns-1 ~]# On affiche la table de routage. [root@ns-1 ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default dorgee.micronat 0.0.0.0 UG 0 0 0 eth0 10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 [root@ns-1 ~]# On lance 2 //ping// vers //google.com// pour vérifier le fonctionnement du //DNS//. [root@tchana ~]# ping -c 2 google.com PING google.com (172.217.164.238) 56(84) bytes of data. 64 bytes from yyz12s05-in-f14.1e100.net (172.217.164.238): icmp_seq=1 ttl=57 time=11.9 ms 64 bytes from yyz12s05-in-f14.1e100.net (172.217.164.238): icmp_seq=2 ttl=57 time=11.9 ms --- google.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 11.925/11.962/11.999/0.037 ms [root@tchana ~]# {{Images_Cahier-101-03-006.png?25}} Le domaine //google.com// répond impliquant que le //DNS// a trouvé son adresse //172.217.164.238// et que le serveur-aiguilleur //(192.168.1.1)// fonctionne correctement. ===== Test de vitesse ===== - On vérifie que tout fonctionne correctement en lançant un test de vitesse. - **Status -> Diagnostics -> onglet Speedtest -> SPEEDTEST**. |{{ Images_Cahier-201-06-246.png?700 }}| \\ ===== Configuration complète du Serveur Nethserver ===== Pour la mise à jour, la configuration complète, l'ajout de modules supplémentaires etc., voir le [[nethserver_101_cahier_04_local_certificat_let_encrypt|Cahier-04]]: //NethServer LOCAL & Certificat Let's Encrypt// du "Cours NethServer-101". Appendices du **Cahier-04:** //NethServer LOCAL & Certificat Let's Encrypt// du "Cours NethServer-101". 1. Écran conventionnel de démarrage. 2. Nom du serveur dans l'écran de connexion à //Webmail//. 3. Langue à la console du serveur. 4. Langue de l'interface Web. 5. Table de mappe de clavier. 6. Fermeture automatique de session //(session timeout)//. 7. Fuseau horaire. 8. Certificat //Let's Encrypt//. 9. Changement du mot de passe de **__root__**. 10. ERROR Failed to send host log message. 11. Martian source. 12. Serveur de production **Le Serveur NethServer est installé et fonctionne correctement.** \\ ===== Virtualisation matérielle KVM ===== {{Images_Cahier-101-03-003.png?22}} Si vous êtes sous //VirtualBox// et que vous créez une machine virtuelle, il faut, après sa création, désactiver //(mettre à NON)// la **//Virtualisation matérielle KVM//** de cette machine: **Vue serveur -> Datacenter -> pve ->** sélectionner la machine virtuelle **-> Options -> Virtualisation matérielle KVM ->** décocher **Activé -> OK**.\\ {{Images_Cahier-101-03-006.png?25}} __Si vous ne désactivez pas cette option, la machine virtuelle ne démarrera pas__. |{{ Images_Cahier-201-06-247.png?400 }}| |{{ Images_Cahier-201-06-248.png?400 }}| Pour afficher le message d'erreur, cliquer **Erreur: KVM virtualisation co...** |{{ Images_Cahier-201-06-249.png?700 }}| Le message d'erreur s'affiche. |{{ Images_Cahier-201-06-250.png?700 }}| \\ ====== Instantané PVE d'une machine virtuelle ====== Ce chapitre provient de la version 0.0.1 de ce document. Grâce aux //Instantanés//, vous pouvez enregistrer l'état particulier d'une machine virtuelle à un moment donné pour pouvoir l'utiliser plus tard. Ainsi, après avoir pris un //Instantané//, vous pourrez à n'importe quel moment revenir à cet état, même si la machine virtuelle a été complètement changée ou endommagée. Les //Instantanés// sont particulièrement utiles pour disposer d'un système toujours propre et s'assurer que la machine virtuelle est dépourvue de bogues causés par l'installation de logiciels, virus ou autres. ===== Création d'un Instantané d'un Serveur SME ===== Maintenant que le //Serveur SME// est fonctionnel, il serait dommage de faire une manipulation quelconque et de ruiner tout le travail qu'on a fait à date.\\ {{Images_Cahier-101-03-004.png?25}} Si nous prenons un //Instantané// d'une //MV// qui roule, l'//Instantané// peut inclure le contenu de la mémoire, ce qui augmentera la taille de l'Instantané. ===== Création d'un Instantané ===== On crée notre premier //Instantané// avec la machine en marche. \\ \\ On sélectionne la machine **-> Snapshots -> Créer un snapshot**. |{{ Images_Cahier-201-06-251.png?400 }}| - On entre les informations demandées.\\ - Il n'est pas nécessaire d'inclure la mémoire.\\ - **Créer un snapshot**. |{{ Images_Cahier-201-06-252.png?400 }}| Le premier //Instantané// a été créé. |{{ Images_Cahier-201-06-253.png?700 }}| On répète l'opération pour avoir quelques //Instantanés//. |{{ Images_Cahier-201-06-254.png?700 }}| On crée un //Instantané// avec la machine arrêtée. |{{ Images_Cahier-201-06-255.png?700 }}| ==== Hiérarchie des Instantanés ==== L'//Instantané// apparaîtra dans la liste des //Instantanés//. Sous //Description//, vous verrez apparaître “Vous êtes ici!”, ce qui signifie que l'état actuel de votre machine virtuelle est dérivé de l'//Instantané// précédemment créé; il est basé sur ce dernier. Si, à ce moment-là, vous prenez un autre //Instantané// //n°2// puis un autre //n°3//, chacun d'entre eux sera un //Instantané// dérivé de l'//Instantané// précédent. L'état actuel peut dériver de l'//Instantané// //n°3// qui lui-même dérive du //n°2// qui lui-même dérive du premier. {{Images_Cahier-101-03-006.png?25}} Vous pouvez ainsi créer autant d'//Instantanés// que vous voulez pour créer autant d'états que vous le souhaitez. Mais attention, si on inclut la mémoire, les //Instantanés// utiliseront beaucoup plus d'espace disque. \\ ==== Utiliser les Instantanés ==== === Mise en garde === Attention, lorsque vous faites un retour sur //Instantané// c'est tout le disque dur //(c.-à.d. le fichier du disque virtuel)// de la machine virtuelle qui est restauré. Autrement dit, si vous aviez créé des documents sur ce disque //(pour une machine virtuelle Windows, si vous avez enregistré vos documents sur le //Bureau// ou dans “Mes Documents”)//, vous ne les retrouverez plus! {{Images_Cahier-101-03-003.png?22}} Pensez donc à enregistrer vos documents ailleurs que sur la machine virtuelle avant de faire un retour sur //Instantané//! \\ ===== Restauration d'un Instantané ===== On restaure le deuxième //Instantané//. - On sélectionne le deuxième //Instantané//.\\ - **Restauration**. |{{ Images_Cahier-201-06-256.png?600 }}| \\ **Oui**. |{{ Images_Cahier-201-06-257.png?400 }}| Le deuxième //Instantané// a été restauré. |{{ Images_Cahier-201-06-258.png?700 }}| \\ ==== Suppression d'un Instantané ==== "Supprimer" permet de supprimer l'//Instantané// que vous avez sélectionné sans modifier l'état de la machine actuelle. Vous ne pourrez plus revenir à l'ancien état sauvegardé par cet //Instantané//, mais la machine virtuelle courante garde son état actuel. Utile si vous avez trop abusé des //Instantanés// et que vous manquez d'espace libre sur votre disque dur; supprimez les //Instantanés// qui vous serviront probablement le moins. On supprime le troisième //Instantané//. - On sélectionne le troisième //Instantané//.\\ - **Supprimer**. |{{ Images_Cahier-201-06-259.png?400 }}| \\ **Oui**. |{{ Images_Cahier-201-06-260.png?400 }}| \\ ====== Truc et astuces ====== ===== Gestionnaire PVE ===== ==== Adresse IP ==== Si vous ne pouvez accéder à l'adresse du gestionnaire, vérifiez le fichier ''/etc/network/interfaces'' à la console du serveur //PVE//. root@proxmox:~# cat /etc/network/interfaces # network interface settings; autogenerated # Please do NOT modify this file directly, unless you know what # you're doing. # # If you want to manage parts of the network configuration manually, # please utilize the 'source' or 'source-directory' directives to do # so. # PVE will preserve these directives, but will NOT read its network # configuration from sourced files, so do not attempt to move any of # the PVE managed interfaces into external files! auto lo iface lo inet loopback auto eno1 iface eno1 inet manual auto enp2s0 iface enp2s0 inet manual auto vmbr0 iface vmbr0 inet static address 192.168.1.52 netmask 255.255.255.0 gateway 192.168.1.1 bridge-ports eno1 bridge-stp off bridge-fd 0 auto vmbr1 iface vmbr1 inet static address 10.10.10.52 netmask 24 bridge-ports enp2s0 bridge-stp off bridge-fd 0 root@proxmox:~# Assurez-vous que l'adresse utilisée est bien celle affichée du gestionnaire sur la console lors d'un amorçage sinon, modifiez l'adresse locale dans ce fichier et réamorcez pour que le système en tienne compte. \\ ===== Afficher des messages d'amorçage ===== //Référence:// [[https://askubuntu.com/questions/25022/how-to-enable-boot-messages-to-be-printed-on-screen-during-boot-up|https://askubuntu.com/questions/25022/how-to-enable-boot-messages-to-be-printed-on-screen-during-boot-up]]. Pour afficher les messages lors de l'amorçage ou de l'arrêt d'un serveur //PVE//, vous devez supprimer le paramètre **//quiet//** de la ligne de démarrage du noyau dans le fichier //GRUB//: **1.** Démarrez votre système et attendez que le menu //GRUB// apparaisse. **2.** Sélectionnez le noyau que vous souhaitez utiliser et appuyez sur la touche e. Vous devriez pouvoir voir et éditer les commandes associées au noyau en surbrillance. |{{ Images_Cahier-201-06-261.png?700 }}| **3.** Descendez à la ligne commençant par **//Linux//** et supprimez le paramètre **quiet**. **4.** Appuyez maintenant sur **[Ctrl]** + **[x]** pour démarrer. |{{ Images_Cahier-201-06-262.png?700 }}| ==== Rendre ce changement permanent ==== On affiche la ligne du fichier ''/etc/default/grub'' qui débute par //GRUB_CMDLINE_LINUX_DEFAULT//. root@proxmox:~# cat /etc/default/grub | grep "GRUB_CMDLINE_LINUX_DEFAULT" GRUB_CMDLINE_LINUX_DEFAULT="quiet" root@proxmox:~# On supprime **quiet** de cette ligne. root@proxmox:~# sed -i "s/DEFAULT=\"quiet\"/DEFAULT=\"\"/" /etc/default/grub root@proxmox:~# On vérifie. root@proxmox:~# cat /etc/default/grub | grep "GRUB_CMDLINE_LINUX_DEFAULT" GRUB_CMDLINE_LINUX_DEFAULT="" root@proxmox:~# On rend ce changement permanent. root@proxmox:~# update-grub Generating grub configuration file ... Found linux image: /boot/vmlinuz-5.0.15-1-pve Found initrd image: /boot/initrd.img-5.0.15-1-pve Found memtest86+ image: /boot/memtest86+.bin Found memtest86+ multiboot image: /boot/memtest86+_multiboot.bin done root@proxmox:~# \\ ===== Sauvegarde ===== Pour la sauvegarde, nous recommandons de créer une grappe //(cluster)// avec un ou deux autres serveurs //PVE//. On peut aussi utiliser //BackupPC// voir: [[nethserver_101_cahier_11_nethserver_backuppc|Cahier-11]]: //NethServer & BackupPC// du "Cours NethServer-101". Vous pouvez utiliser les procédures du //Cahier-11// pour sauvegarder tout serveur Linux. \\ \\ ===== Logiciels supplémentaires ===== On peut installer quelques logiciels supplémentaires qui sont souvent utilisés et qui ne sont pas fournis par //PVE//. ==== net-tools ==== Pour pouvoir utiliser la commande //ifconfig//. root@proxmox:~# apt-get install -y net-tools Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: net-tools 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 248 kB of archives. After this operation, 1,002 kB of additional disk space will be used. Get:1 http://ftp.ca.debian.org/debian buster/main amd64 net-tools amd64 1.60+git20180626.aebd88e-1 [248 kB] Fetched 248 kB in 0s (916 kB/s) Selecting previously unselected package net-tools. (Reading database ... 44068 files and directories currently installed.) Preparing to unpack .../net-tools_1.60+git20180626.aebd88e-1_amd64.deb ... Unpacking net-tools (1.60+git20180626.aebd88e-1) ... Setting up net-tools (1.60+git20180626.aebd88e-1) ... Processing triggers for man-db (2.8.5-2) ... root@proxmox:~# === Exemple === root@proxmox:~# ifconfig vmbr0 vmbr0: flags=4163 mtu 1500 inet 192.168.1.52 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::226:b9ff:fe7a:8edc prefixlen 64 scopeid 0x20 ether 00:26:b9:7a:8e:dc txqueuelen 1000 (Ethernet) RX packets 345680 bytes 120289854 (114.7 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 262220 bytes 152964543 (145.8 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 root@proxmox:~# \\ ==== Utilitaire locate ==== Pour la recherche de fichiers. root@proxmox:~# apt-get install locate Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: locate 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 270 kB of archives. After this operation, 431 kB of additional disk space will be used. Get:1 http://ftp.ca.debian.org/debian buster/main amd64 locate amd64 4.6.0+git+20190209-2 [270 kB] Fetched 270 kB in 0s (1,018 kB/s) Selecting previously unselected package locate. (Reading database ... 44125 files and directories currently installed.) Preparing to unpack .../locate_4.6.0+git+20190209-2_amd64.deb ... Unpacking locate (4.6.0+git+20190209-2) ... Setting up locate (4.6.0+git+20190209-2) ... Processing triggers for man-db (2.8.5-2) ... root@proxmox:~# === Exemple === On met à jour la BD de //locate// //(peut prendre un certain temps lors de la première mise à jour)//. root@proxmox:~# updatedb root@proxmox:~# Recherche du fichier //os-release//. root@proxmox:~# locate os-release /etc/os-release /usr/lib/os-release /usr/share/man/man5/os-release.5.gz root@proxmox:~# \\ ==== Midnight Commander (mc) ==== root@proxmox:~# apt-get install -y mc Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libgpm2 mc-data unzip Suggested packages: gpm arj catdvi | texlive-binaries dbview djvulibre-bin epub-utils gv imagemagick libaspell-dev odt2txt poppler-utils python-boto python-tz xpdf | pdf-viewer zip The following NEW packages will be installed: libgpm2 mc mc-data unzip 0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. Need to get 2,015 kB of archives. After this operation, 8,159 kB of additional disk space will be used. Get:1 http://ftp.ca.debian.org/debian buster/main amd64 libgpm2 amd64 1.20.7-5 [35.1 kB] Get:2 http://ftp.ca.debian.org/debian buster/main amd64 mc-data all 3:4.8.22-1 [1,292 kB] Get:3 http://ftp.ca.debian.org/debian buster/main amd64 mc amd64 3:4.8.22-1 [516 kB] Get:4 http://ftp.ca.debian.org/debian buster/main amd64 unzip amd64 6.0-23+deb10u1 [172 kB] Fetched 2,015 kB in 1s (1,589 kB/s) Selecting previously unselected package libgpm2:amd64. (Reading database ... 44139 files and directories currently installed.) Preparing to unpack .../libgpm2_1.20.7-5_amd64.deb ... Unpacking libgpm2:amd64 (1.20.7-5) ... Selecting previously unselected package mc-data. Preparing to unpack .../mc-data_3%3a4.8.22-1_all.deb ... Unpacking mc-data (3:4.8.22-1) ... Selecting previously unselected package mc. Preparing to unpack .../mc_3%3a4.8.22-1_amd64.deb ... Unpacking mc (3:4.8.22-1) ... Selecting previously unselected package unzip. Preparing to unpack .../unzip_6.0-23+deb10u1_amd64.deb ... Unpacking unzip (6.0-23+deb10u1) ... Setting up libgpm2:amd64 (1.20.7-5) ... Setting up unzip (6.0-23+deb10u1) ... Setting up mc-data (3:4.8.22-1) ... Setting up mc (3:4.8.22-1) ... update-alternatives: using /usr/bin/mcview to provide /usr/bin/view (view) in auto mode Processing triggers for man-db (2.8.5-2) ... Processing triggers for mime-support (3.62) ... Processing triggers for libc-bin (2.28-10) ... root@proxmox:~# === Exemple === **[F-10]** pour quitter. |{{ Images_Cahier-201-06-263.png?700 }}| \\ ===== Ajour d'un nouvel administrateur ===== La commande à la ligne pour créer, modifier, etc... un utilisateur est **pveum** //(Proxmox VE User Manager)//. On crée l'utilisateur **__michelandre__**. root@proxmox:~# pveum useradd michelandre@pve -comment "Créateur" root@proxmox:~# On lui donne un mot de passe. root@proxmox:~# pveum passwd michelandre@pve Enter new password: ********* Retype new password: ********* root@proxmox:~# On crée un nouveau groupe. root@proxmox:~# pveum groupadd administrateur -comment "Administrateur PVE" root@proxmox:~# On accorde au nouveau groupe //administrateur// les mêmes permissions que celles du rôle //Administrator//. root@proxmox:~# pveum aclmod / -group administrateur -role Administrator root@proxmox:~# On ajoute **__michelandre__** au nouveau groupe administrateur. root@proxmox:~# pveum usermod michelandre@pve -group administrateur root@proxmox:~# ==== Vérification ==== **//Permissions//**\\ Le nouveau groupe //administrateur// est présent et il possède les permissions du rôle //Administrator//. |{{ Images_Cahier-201-06-264.png?400 }}| **//Utilisateurs//**\\ - Le nouvel utilisateur **__michelandre__** est aussi présent.\\ - L'utilisateur **__root__** a été crée lors de l'installation de //PVE//. |{{ Images_Cahier-201-06-265.png?400 }}| **//Groupes//**\\ Le nouveau groupe //administrateur// est présent. |{{ Images_Cahier-201-06-266.png?400 }}| \\ **//Rôles//**\\ Les rôles standards de //Proxmox VE// n'ont pas été modifiés. |{{ Images_Cahier-201-06-267.png?700 }}| On se déconnecte et on se reconnecte en tant que **__michelandre__**. |{{ Images_Cahier-201-06-268.png?400 }}| Nous sommes connecté et le groupe //administrateur// possède les mêmes permissions que celles du rôle //Administrator//. |{{ Images_Cahier-201-06-269.png?600 }}| \\ \\ {{NS-101_002_Banniere_Victoire.png?50}} Victoire totale, hissons la bannière de la victoire. \\ ---- ====== Crédits ====== © 2018-2019 RF-232\\ Auteur: Michel-André.\\ Remerciement: Tous les contributeurs GNU/GPL.\\ Intégré par: Michel-André Robillard CLP.\\ Contact: michelandre at micronator.org. Répertoire de ce document: RF-232_Cours_NethServer-201-06_ProxmoxVE_2019-09-17_14h33.odt Historique des modifications: ^Version^Date^Commentaire^Auteur| |0.0.1|2018-11-15|Début pour SME-9.2.|Michel-André| |0.0.2|2019-09-09|Ajustements pour NethServer et DokuWiki.|Michel-André| |012345678901| | |012345678901|
===== AVIS DE NON-RESPONSABILITÉ ===== Ce document est uniquement destiné à informer. Les informations, ainsi que les contenus et fonctionnalités de ce do­cument sont fournis sans engagement et peuvent être modifiés à tout moment. RF‑232 n'offre aucune garantie quant à l'actualité, la conformité, l'exhaustivité, la qualité et la durabilité des informations, contenus et fonctionnalités de ce document. L'accès et l'utilisation de ce document se font sous la seule responsabilité du lecteur ou de l'utilisateur. RF‑232 ne peut être tenu pour responsable de dommages de quelque nature que ce soit, y compris des dommages di­rects ou indirects, ainsi que des dommages consécutifs résultant de l'accès ou de l'utilisation de ce document ou de son contenu. Chaque internaute doit prendre toutes les mesures appropriées //(mettre à jour régulièrement son logiciel antivirus, ne pas ouvrir des documents suspects de source douteuse ou non connue)// de façon à protéger le contenu de son ordina­teur de la contamination d'éventuels virus circulant sur la Toile. Toute reproduction interdite Vous reconnaissez et acceptez que tout le contenu de ce document, incluant mais sans s’y limiter, le texte et les images, sont protégés par le droit d’auteur, les marques de commerce, les marques de service, les brevets, les secrets industriels et les autres droits de propriété intellectuelle. Sauf autorisation expresse de RF-232, vous acceptez de ne pas vendre, délivrer une licence, louer, modifier, distribuer, copier, reproduire, transmettre, afficher publiquement, exécuter en public, publier, adapter, éditer ou créer d’oeuvres dérivées de ce document et de son contenu. ==== Avertissement==== Bien que nous utilisions ici un vocabulaire issu des techniques informatiques, nous ne prétendons nullement à la précision technique de tous nos propos dans ce domaine. \\ \\