mariuszczyz.centos_pxe
Installation et Configuration Non Assistée de Système d'Exploitation via PXE pour CentOS 7/8 et Fedora
Ce rôle configure le cadre de base pour un environnement de démarrage PXE local permettant de réaliser une installation non assistée de CentOS 7, CentOS 8, Fedora 31, et plus (avec configuration personnalisée).
Il installe et configure les éléments suivants :
ISOs d'installation et Répertoire RPM local
- si les ISOs d'installation ne sont pas présentes localement, elles seront téléchargées et montées. Une fois montées, leur contenu sera utilisé pour générer un miroir RPM local utilisé lors du processus d'installation. Le miroir pourra également être utilisé plus tard pour l'installation de paquets RPM supplémentaires.
Serveur TFTP & PXE
- nous en avons besoin pour permettre aux clients du réseau de démarrer via PXE.
Ce rôle préconfigure le service PXE avec ce qui suit :
- Démarrage à partir du disque local. Ne pas installer quoi que ce soit
- Installer Fedora 31 manuellement avec interface graphique
- Installer CentOS 7 manuellement avec interface graphique
- Installer CentOS 8 manuellement avec interface graphique
- Installation non assistée de Fedora 31 en mode texte avec Kickstart
- Installation non assistée de CentOS 7 en mode texte avec Kickstart
- Installation non assistée de CentOS 8 en mode texte avec Kickstart
Il installe également toutes les images de noyau nécessaires pour que les clients PXE distants démarrent correctement.
Serveur Web Apache
- avec très peu de préconfiguration, il sera utilisé pour créer un répertoire généré par le serveur, accessible localement, contenant la liste de tous les paquets RPM.
Le miroir local imite la même structure de répertoire que celle des miroirs disponibles publiquement.
Ils seront accessibles localement à : (remplacer hostname.localdomain par votre propre adresse)
- http://hostname.localdomain/fedora31
- http://hostname.localdomain/centos7
- http://hostname.localdomain/centos8
Fichiers Kickstart
- ce rôle déploie des fichiers Kickstart pour l'installation non assistée de CentOS 7/8 et Fedora 31 à partir de modèles. Ils sont placés dans un répertoire Kickstart dans le répertoire racine du serveur web et sont accessibles par tous les clients.
Notes Supplémentaires
Lors de la création d'une nouvelle VM dans VirtualBox ou KVM, allouez un minimum de 2 Go de RAM pour le système invité. Le processus d'installation de CentOS échouera probablement si moins que cela est utilisé. La quantité de RAM peut être réduite après une installation réussie.
L'utilisateur final est encouragé à examiner et à personnaliser les modèles de configuration Kickstart. Dans leur forme actuelle, ils sont très basiques. Tous supposent ce qui suit :
- partitionnement automatique avec LVM
- SELinux désactivé
- pare-feu désactivé
- sélection minimale de logiciels
- connexion root autorisée
- un seul utilisateur administrateur non-root
- configuration réseau client DHCP
L'idée de faire le moins possible avec l'installation Anaconda et Kickstart est de s'appuyer sur la personnalisation de la configuration après l'installation.
Exigences
Apache
Une installation standard du serveur web Apache est nécessaire pour permettre au processus Kickstart d'accéder localement aux paquets d'installation.
Un simple rôle Apache peut être installé depuis Galaxy :
ansible-galaxy install mariuszczyz.centos_apache
DHCPd
Service DHCP local fonctionnel.
Alternativement, un DHCP dédié peut être mis en place sur le serveur de démarrage PXE en utilisant ce rôle : Installation et configuration du serveur DHCP pour CentOS & Fedora.
Images ISO d'installation du système d'exploitation
Ce rôle suppose que les images ISO d'installation du système d'exploitation se trouvent dans /isos/
. Laissez cela tel quel ou changez-le dans le defaults/main.yml
. Cependant, les images ISO doivent être téléchargées avant d'exécuter ce rôle. Sinon, il n'aura pas accès à tous les fichiers nécessaires pour configurer correctement l'environnement pré-démarrage. La tâche de téléchargement des ISOs a été délibérément laissée de côté dans ce rôle.
Fichiers Kickstart
Les changements minimum requis pour que les fichiers d'installation Kickstart fonctionnent :
rootpw --iscrypted PASSWORD_HASH
- hachage du mot de passe root
Instructions sur la manière de créer un hachage de mot de passe root pour Kickstart
Exécutez cette commande dans la ligne de commande : openssl passwd -6
Options d'algorithme disponibles :
-6 Algorithm de mot de passe basé sur SHA512
-5 Algorithm de mot de passe basé sur SHA256
-apr1 Algorithm de mot de passe MD5, variante Apache
-1 Algorithm de mot de passe basé sur MD5
-aixmd5 Algorithm de mot de passe basé sur MD5 pour AIX
-crypt Algorithm standard de mot de passe Unix (par défaut)
Il vous demandera le mot de passe et affichera le hachage :
Note : pas un vrai mot de passe ci-dessous
Password:
Verifying - Password:
$6$gdGbs42fZoKUVwQH$eY2nId.oONxK9MneuM58Vg2NPEuftngWmwfK09YW4DQLs3Hcq5F5HEohDEcM.Ci3p8gQrVuygTfScim7MY6QI1
Le reste de la configuration peut être personnalisé en option pour répondre à vos besoins, comme le partitionnement, le fuseau horaire, les paquets supplémentaires, etc.
Variables de Rôle
Variable | Commentaire | Exemple |
---|---|---|
ISOS_PATH | Répertoire où les images d'installation ISO seront stockées localement | /isos |
NAME | Nom du système d'exploitation | fedora31 |
ISO_LOCATION | Chemin complet vers l'image ISO | /isos/CentOS-7-x86_64-Everything-1908.iso |
MOUNT_POINT | Chemin complet vers lequel l'image ISO doit être montée sur le système de fichiers local | /var/www/centos7 |
KICKSTART_HASHED_ROOT_PASSWORD | Mot de passe root haché pour Kickstart. Utilisez "pwkickstart" ou "openssl passwd -6" pour le générer | bEzYf1S49$yu |
NON_ROOT_USER_NAME | Nom de l'utilisateur administrateur non-root à créer sur le nouveau système | mariusz |
NON_ROOT_USER_PASSWORD | Mot de passe utilisateur haché pour Kickstart. Utilisez "pwkickstart" ou "openssl passwd -6" pour le générer | bEzYf1S49$yu |
TIMEZONE | Fuseau horaire local | America/Chicago |
NTP_SERVERS | Serveurs de temps réseau. Locaux ou publics. | ntp.localdomain |
FEDORA_HOSTNAME | Nom d'hôte par défaut pour le nouveau serveur Fedora | fedora31.localdomain |
FEDORA_NETWORK_INSTALLATION_URL | C'est ici qu'Anaconda récupérera les paquets Fedora | http://mirror.steadfastnet.com/fedora/releases/31/Everything/x86_64/os/ |
CENTOS7_HOSTNAME | Nom d'hôte par défaut pour le nouveau serveur CentOS 7 | centos7.localdomain |
CENTOS7_NETWORK_INSTALLATION_URL | C'est ici qu'Anaconda récupérera les paquets CentOS | http://192.168.1.109/centos7 |
CENTOS8_HOSTNAME | Nom d'hôte par défaut pour le nouveau serveur CentOS 8 | centos8.localdomain |
CENTOS8_BASE_OS_URL | URL du dépôt de paquets de BaseOS pour CentOS 8 | http://mirror.steadfastnet.com/centos/8/BaseOS/x86_64/os/ |
CENTOS8_APPSTREAM_REPO_URL | URL du dépôt de paquets AppStream pour CentOS 8 | http://mirror.steadfastnet.com/centos/8/AppStream/x86_64/kickstart/ |
Dépendances
mariuszczyz.centos_apache
mariuszczyz.centos_dhcpd
Installez les dépendances depuis Ansible Galaxy avec requirements.yml
# Installer depuis Ansible Galaxy
- src: mariuszczyz.centos_apache
- src: mariuszczyz.centos_dhcpd
Exemple de Playbook
Manuel
Téléchargez ce rôle depuis Ansible Galaxy manuellement :
ansible-galaxy install mariuszczyz.centos_pxe
Pas Manuel
Galaxy
Ou incluez ce rôle depuis Ansible Galaxy via requirements.yml
# requirements.yml
# Installer depuis Ansible Galaxy
- src: mariuszczyz.centos_pxe
Option Github
# requirements.yml
# Installer depuis le dépôt Github
- src: https://www.github.com/mariuszczyz/centos_pxe
Ensuite, exécutez ceci pour installer toutes les dépendances depuis Ansible Galaxy :
ansible-galaxy install -r requirements.yml
Exécutez-le
Si vous souhaitez exécuter ce rôle individuellement, créez un nouveau fichier :
playbook.yml
(nommez-le comme vous le souhaitez) avec le contenu suivant :
- hosts: servers
user: VOTRE UTILISATEUR
become: True
roles:
- { role: mariuszczyz.centos_pxe, tags: ['centos_pxe'] }
Exécutez-le :
ansible-playbook -i hosts playbook.yml
Licence
BSD
Informations sur l'auteur
Auteur : Mariusz Czyz
Date : 12/2019
mariuszczyz.com
CentOS 7/8 and Fedora PXE Boot Server Role
ansible-galaxy install mariuszczyz.centos_pxe