clusterapps.rhbase
Rôle Ansible rhbase
Rôle Ansible pour la configuration de base d'un serveur avec une distribution Linux basée sur RedHat (CentOS, Fedora, RHEL, ...). Plus précisément, les responsabilités de ce rôle sont de :
- Gérer les dépôts,
- Gérer l'installation et la suppression de paquets,
- Activer ou désactiver des services spécifiés,
- Créer des utilisateurs et des groupes,
- Configurer un compte administrateur avec une clé SSH,
- Appliquer des réglages de sécurité de base, comme activer SELinux et le pare-feu,
- Gérer les règles du pare-feu (dans la zone publique).
C'est un fork de bertvv.rh-base. L'original est excellent, mais j'ai voulu prendre une autre direction.
Exigences
Aucune exigence spécifique
Variables du Rôle
Variable | Par défaut | Commentaires (type) |
---|---|---|
rhbase_enable_repos |
[] | Liste de dictionnaires spécifiant les dépôts à activer. Voir ci-dessous pour plus de détails. |
rhbase_firewall_allow_ports |
[] | Liste des ports autorisés à passer à travers le pare-feu, par exemple 80/tcp, 53/udp, etc. |
rhbase_firewall_allow_services |
[] | Liste des services autorisés à passer à travers le pare-feu, par exemple http, dns, etc. (1) |
rhbase_firewall_interfaces |
[] | Liste des interfaces réseau à ajouter à la zone publique des règles du pare-feu. |
rhbase_hosts_entry |
true | Lorsqu'il est activé, une entrée est ajoutée à /etc/hosts avec le nom de l'hôte de la machine. Cela accelère la collecte des faits. |
rhbase_install_packages |
[] | Liste de paquets à installer. Les URL sont également autorisées. |
rhbase_motd |
false | Lorsqu'il est activé, un fichier /etc/motd personnalisé est installé avec des infos sur le nom de l'hôte et les adresses IP. |
rhbase_override_firewalld_zones |
false | Lorsqu'il est activé, permet à NetworkManager de remplacer les zones de pare-feu définies par l'administrateur (2). |
rhbase_remove_packages |
[] | Liste de paquets qui ne doivent pas être installés |
rhbase_repo_exclude_from_update |
[] | Liste de paquets à exclure d'une mise à jour. Les caractères jokers sont autorisés, par exemple kernel* . |
rhbase_repo_exclude |
[] | Liste de dépôts à désactiver dans yum/dnf.conf |
rhbase_repo_gpgcheck |
false | Lorsqu'il est activé, des vérifications GPG seront effectuées lors de l'installation de paquets. |
rhbase_repo_installonly_limit |
3 | Le nombre maximum de versions d'un paquet (ex. : kernel) pouvant être installées simultanément. Doit être d'au moins 2. |
rhbase_repo_remove_dependencies |
true | Lorsqu'il est activé, les dépendances devenues inutilisées après la suppression d'un paquet seront également supprimées. |
rhbase_repositories |
[] | Liste de paquets RPM (y compris les URL) qui installent des dépôts externes (ex. : epel-release ). |
rhbase_selinux_state |
enforcing | L'état SELinux par défaut pour le système. Il suffit de laisser cela tel quel. |
rhbase_selinux_booleans |
[] | Liste des booléens SELinux à activer, par exemple httpd_can_network_connect |
rhbase_ssh_key |
- | La clé SSH publique pour l'utilisateur admin qui lui permet de se connecter sans mot de passe. L'utilisateur doit exister. |
rhbase_ssh_user |
- | Le nom de l'utilisateur qui gérera cette machine. La clé SSH sera installée dans le répertoire personnel de l'utilisateur. (3) |
rhbase_start_services |
[] | Liste des services qui doivent être en cours d'exécution et activés. |
rhbase_stop_services |
[] | Liste des services qui ne doivent pas être en cours d'exécution |
rhbase_tz |
:/etc/localtime | Définit la variable d'environnement $TZ (4) |
rhbase_update |
false | Lorsqu'il est activé, une mise à jour de paquet sera effectuée. |
rhbase_user_groups |
[] | Liste des groupes d'utilisateurs qui doivent être présents. |
rhbase_users |
[] | Liste de dictionnaires spécifiant les utilisateurs qui doivent être présents. Voir ci-dessous pour un exemple. |
rhbase_taskrunner_key |
[] | Clé publique autorisée pour se connecter en tant que taskrunner |
Remarques :
(1) Une liste complète des valeurs valides pour rhbase_firewall_allow_services
peut être énumérée avec la commande firewall-cmd --get-services
.
(2) Ceci est un contournement pour le bug CentOS #7407. NetworkManager gère par défaut les zones de pare-feu, ce qui remplace les règles que vous ajoutez avec --permanent
.
(3) La définition de la variable rhbase_ssh_user
ne crée pas réellement un utilisateur, mais installe la rhbase_ssh_key
dans le répertoire personnel de cet utilisateur (~/.ssh/authorized_keys
). Par conséquent, rhbase_ssh_user
doit être le nom d'un utilisateur existant, spécifié dans rhbase_users
.
(4) La définition de la variable $TZ
peut réduire le nombre d'appels système. Voir https://blog.packagecloud.io/eng/2017/02/21/set-environment-variable-save-thousands-of-system-calls/
Activation des dépôts
Activez les dépôts (installés mais désactivés) en spécifiant rhbase_enable_repos
comme une liste de dictionnaires avec les clés name:
(obligatoire) et section:
(optionnelle), par exemple :
rhbase_enable_repos:
- name: CentOS-fasttrack
section: fasttrack
- name: epel-testing
Lorsque la section n'est pas spécifiée, elle par défaut au nom du dépôt.
Ajout d'utilisateurs
Les utilisateurs sont spécifiés par des dictionnaires comme ceci :
rhbase_users:
- name: johndoe
comment: 'John Doe'
groups:
- users
- devs
password: '$6$WIFkXf07Kn3kALDp$fHbqRKztuufS895easdT [...]'
- name: janedoe
La seule clé obligatoire est name
.
Clé | Obligatoire | Par défaut | Commentaires |
---|---|---|---|
name |
oui | - | Le nom de l'utilisateur |
comment |
non | '' | Chaîne de commentaire |
shell |
non | '/bin/bash' | Le shell de commande de l'utilisateur |
groups |
non | [] | Groupes auxquels cet utilisateur doit être ajouté (1) |
password |
non | '!!' | Le hachage du mot de passe de l'utilisateur (2) |
Remarques :
(1) Si vous voulez faire de quelqu'un un administrateur, assurez-vous qu'il soit membre du groupe wheel
(voir le guide de l'administrateur système RedHat.
(2) Le mot de passe doit être spécifié sous forme de hachage, comme renvoyé par crypt(3), sous la forme $algo$salt$hash
. Pour des tests et des VMs de preuve de concept, vous pouvez consulter https://www.mkpasswd.net/ pour générer des hachages sous la forme correcte. Les types de hachage typiques pour Linux sont MD5 (crypt-md5, hachages commençant par $1$
) et SHA-512 (crypt-sha-512, hachages commençant par $6$
).
Dépendances
Aucune dépendance.
Exemple de Playbook
Bientôt disponible
Tests
Bientôt disponible
Contribution
Les problèmes, demandes de fonctionnalités et idées sont appréciés et peuvent être publiés dans la section Issues.
Les demandes de tirage sont également les bienvenues. La meilleure façon de soumettre une PR est d'abord de créer un fork de ce projet Github, puis de créer une branche de sujet pour le changement suggéré et de pousser cette branche vers votre propre fork. Github peut alors facilement créer une PR basée sur cette branche. N'oubliez pas d'ajouter votre nom à la liste des contributeurs ci-dessous !
Licence
BSD
Contributeurs
- Michael Cleary (mainteneur)
Contributeurs originaux
- Bert Van Vreckem
- Jeroen De Meerleer
- Sebastien Nussbaum
Base setup of a server with a RedHat-based Linux distribution with the systemd init system.
ansible-galaxy install clusterapps.rhbase