Chapitre 27. Installation d'un client de gestion des identités à l'aide d'un playbook Ansible
Les sections suivantes décrivent comment configurer un système en tant que client de gestion d'identité (IdM) à l'aide d'Ansible. La configuration d'un système en tant que client IdM l'inscrit dans un domaine IdM et permet au système d'utiliser les services IdM sur les serveurs IdM du domaine.
Le déploiement est géré par le rôle Ansible ipaclient
. Par défaut, le rôle utilise le mode de découverte automatique pour identifier les serveurs IdM, le domaine et d'autres paramètres. Le rôle peut être modifié pour que le playbook Ansible utilise les paramètres spécifiés, par exemple dans le fichier d'inventaire.
Conditions préalables
- Vous avez installé le paquet ansible-freeipa sur le nœud de contrôle Ansible.
Vous comprenez les concepts Ansible et IdM :
- Rôles Ansible
- Nœuds Ansible
- Inventaire Ansible
- Tâches Ansible
- Modules Ansible
- Jeux et carnets de jeu Ansible
27.1. Définition des paramètres du fichier d'inventaire pour le mode d'installation du client d'autodécouverte
Pour installer un client de gestion des identités à l'aide d'un playbook Ansible, configurez les paramètres de l'hôte cible dans un fichier d'inventaire, par exemple inventory/hosts
:
- les informations sur l'hôte
- l'autorisation de la tâche
Le fichier d'inventaire peut être dans l'un des nombreux formats, en fonction des plugins d'inventaire que vous avez. Le format INI-like
est l'un des formats par défaut d'Ansible et est utilisé dans les exemples ci-dessous.
Pour utiliser les cartes à puce avec l'interface utilisateur graphique dans RHEL, assurez-vous d'inclure la variable ipaclient_mkhomedir
dans votre playbook Ansible.
Conditions préalables
- Vous avez vérifié les instructions de déploiement sur le nœud de contrôle, voir Vérification des paramètres dans le fichier install-client.yml.
Procédure
Indiquez le nom d'hôte entièrement qualifié (FQDN) de l'hôte qui doit devenir un client IdM. Le nom de domaine entièrement qualifié doit être un nom DNS valide :
-
Seuls les chiffres, les caractères alphabétiques et les traits d'union (
-
) sont autorisés. Par exemple, les caractères de soulignement ne sont pas autorisés et peuvent entraîner des défaillances du système DNS. - Le nom d'hôte doit être en minuscules. Aucune majuscule n'est autorisée.
Si les enregistrements SRV sont correctement définis dans la zone DNS IdM, le script découvre automatiquement toutes les autres valeurs requises.
Exemple d'un fichier d'inventaire simple avec seulement le FQDN du client défini
[ipaclients] client.idm.example.com [...]
-
Seuls les chiffres, les caractères alphabétiques et les traits d'union (
Spécifiez les informations d'identification pour l'inscription du client. Les méthodes d'authentification suivantes sont disponibles :
Le site password of a user authorized to enroll clients est l'option par défaut.
Red Hat recommande d'utiliser Ansible Vault pour stocker le mot de passe et de faire référence au fichier Vault à partir du fichier playbook, par exemple
install-client.yml
, directement :Exemple de fichier playbook utilisant le principal d'un fichier d'inventaire et le mot de passe d'un fichier Ansible Vault
- name: Playbook to configure IPA clients with username/password hosts: ipaclients become: true vars_files: - playbook_sensitive_data.yml roles: - role: ipaclient state: present
De manière moins sûre, fournissez les informations d'identification de
admin
en utilisant l'optionipaadmin_password
dans la section[ipaclients:vars]
du fichierinventory/hosts
. Pour spécifier un autre utilisateur autorisé, utilisez l'optionipaadmin_principal
pour le nom d'utilisateur et l'optionipaadmin_password
pour le mot de passe. Le fichier d'inventaireinventory/hosts
et le fichier playbookinstall-client.yml
peuvent alors se présenter comme suit :Exemple de fichier d'inventaire des hôtes
[...] [ipaclients:vars] ipaadmin_principal=my_admin ipaadmin_password=Secret123
Exemple de Playbook utilisant le principal et le mot de passe du fichier d'inventaire
- name: Playbook to unconfigure IPA clients hosts: ipaclients become: true roles: - role: ipaclient state: true
Le site client keytab de l'inscription précédente, s'il est encore disponible.
Cette option est disponible si le système a été précédemment enregistré en tant que client de gestion d'identité. Pour utiliser cette méthode d'authentification, décommentez l'option
#ipaclient_keytab
, en spécifiant le chemin d'accès au fichier stockant le keytab, par exemple dans la section[ipaclient:vars]
deinventory/hosts
.Un random, one-time password (OTP) à générer lors de l'inscription. Pour utiliser cette méthode d'authentification, utilisez l'option
ipaclient_use_otp=yes
dans votre fichier d'inventaire. Par exemple, vous pouvez décommenter l'optionipaclient_use_otp=yes
dans la section[ipaclients:vars]
du fichierinventory/hosts
. Notez qu'avec l'option OTP, vous devez également spécifier l'une des options suivantes :-
L'adresse password of a user authorized to enroll clients, par exemple en fournissant une valeur pour
ipaadmin_password
dans la section[ipaclients:vars]
du fichierinventory/hosts
. -
Le site admin keytab, par exemple en fournissant une valeur pour
ipaadmin_keytab
dans la section[ipaclients:vars]
deinventory/hosts
.
-
L'adresse password of a user authorized to enroll clients, par exemple en fournissant une valeur pour
[Facultatif] Spécifiez le résolveur DNS à l'aide des options
ipaclient_configure_dns_resolve
etipaclient_dns_servers
(le cas échéant) pour simplifier les déploiements de clusters. Ceci est particulièrement utile si votre déploiement IdM utilise le DNS intégré :Un extrait de fichier d'inventaire spécifiant un résolveur DNS :
[...] [ipaclients:vars] ipaadmin_password: "{{ ipaadmin_password }}" ipaclient_domain=idm.example.com ipaclient_configure_dns_resolver=true ipaclient_dns_servers=192.168.100.1
NoteLa liste
ipaclient_dns_servers
ne doit contenir que des adresses IP. Les noms d'hôtes ne sont pas autorisés.
Ressources supplémentaires
-
/usr/share/ansible/roles/ipaclient/README.md