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

Contributeurs originaux

À propos du projet

Base setup of a server with a RedHat-based Linux distribution with the systemd init system.

Installer
ansible-galaxy install clusterapps.rhbase
Licence
other
Téléchargements
215
Propriétaire
I'm here to read the articles.