timorunge.freeipa_client
freeipa_client
Ce rôle installe et configure le client FreeIPA selon vos besoins.
En combinaison avec
freeipa
(Github), il est possible (et testé) d'utiliser freeipa_client
avec la dernière version de FreeIPA sur Debian 9.4 et Ubuntu >= 18.04 (regardez la
section d'exemple).
Exigences
Ce rôle nécessite Ansible 2.5.0 ou une version ultérieure.
Vous pouvez simplement utiliser pip pour installer (et définir) une version stable :
pip install ansible==2.7.9
Tous les besoins de la plateforme sont listés dans le fichier de métadonnées.
Pour configurer ce rôle correctement, il est nécessaire de pouvoir communiquer sur les ports requis avec un serveur FreeIPA (Repo Github).
Installation
ansible-galaxy install timorunge.freeipa_client
Variables du rôle
Il est nécessaire de définir les variables suivantes pour faire fonctionner ce rôle (sans personnalisation). Ces variables n'ont pas de valeurs par défaut :
# Domaine DNS principal du déploiement IPA
# Type : Str
freeipa_client_domain: example.com
# Le nom d'hôte de cette machine (FQDN)
# Type : Str
freeipa_client_fqdn: srv-1-eu-central-1.example.com
# Mot de passe pour rejoindre le royaume IPA
# Type : Str
freeipa_client_password: Passw0rd
# Principal à utiliser pour rejoindre le royaume IPA
# Type : Str
freeipa_client_principal: admin
# Nom du royaume Kerberos du déploiement IPA
# Type : Str
freeipa_client_realm: EXAMPLE.COM
# FQDN du serveur IPA
# Type : Str
freeipa_client_server: ipa.example.com
Les variables qui peuvent être passées à ce rôle et une brève description d'elles sont les suivantes. (Pour toutes les variables, regardez defaults/main.yml)
# La commande de base pour l'installation de FreeIPA
# Type : Str
freeipa_client_install_base_command: ipa-client-install --unattended
# Les options d'installation par défaut de FreeIPA
# Type : Liste
freeipa_client_install_options:
- "--domain={{ freeipa_client_domain }}"
- "--server={{ freeipa_client_server }}"
- "--realm={{ freeipa_client_realm }}"
- "--principal={{ freeipa_client_principal }}"
- "--password={{ freeipa_client_password }}"
- "--mkhomedir"
- "--hostname={{ freeipa_client_fqdn }}"
- "--force-join"
Exemples
Pour garder le document concis, les options d'installation sont simplifiées. Vous pouvez trouver les options d'installation soit dans ce document soit dans la page man en ligne pour ipa-client-install](https://linux.die.net/man/1/ipa-client-install).
1) Installer le client FreeIPA avec les paramètres par défaut
- hosts: freeipa-clients
vars:
freeipa_client_domain: example.com
freeipa_client_server: ipa.example.com
freeipa_client_realm: EXAMPLE.COM
freeipa_client_principal: admin
freeipa_client_password: Passw0rd
freeipa_client_fqdn: srv-1-eu-central-1.example.com
roles:
- timorunge.freeipa_client
2) Installer le serveur FreeIPA avec des options d'installation personnalisées
- hosts: freeipa-clients
vars:
freeipa_client_domain: example.com
freeipa_client_server: ipa.example.com
freeipa_client_realm: EXAMPLE.COM
freeipa_client_principal: admin
freeipa_client_password: Passw0rd
freeipa_client_fqdn: srv-1-eu-central-1.example.com
freeipa_client_install_options:
- "--no-ntp"
- "--ssh-trust-dns"
- "--ip-address=172.20.1.2"
- "--ip-address=172.20.2.2"
roles:
- timorunge.freeipa_client
3) Installer le client FreeIPA et ajouter plusieurs serveurs IPA
- hosts: freeipa-clients
vars:
freeipa_client_domain: example.com
freeipa_client_server:
- ipa-eu-central-1.example.com
- ipa-eu-west-1.example.com
- ipa-eu-west-2.example.com
- ipa-eu-west-3.example.com
- ipa.example.com
freeipa_client_realm: EXAMPLE.COM
freeipa_client_principal: admin
freeipa_client_password: Passw0rd
freeipa_client_fqdn: srv-1-eu-central-1.example.com
freeipa_client_install_options:
- "--server={{ freeipa_client_server | join(' --server=') }}"
roles:
- timorunge.freeipa_client
Options d'installation du client FreeIPA
Un aperçu des options d'installation pour ipa-client-install (4.6.4).
Usage : ipa-client-install [options]
Options :
--version afficher le numéro de version du programme et quitter
-h, --help afficher ce message d'aide et quitter
-U, --unattended installation (dés)automatisée ne demande jamais à l'utilisateur
--uninstall désinstaller une installation existante. La désinstallation peut
être effectuée avec l'option --unattended
Options de base :
-p PRINCIPAL, --principal=PRINCIPAL
principal à utiliser pour rejoindre le royaume IPA
--ca-cert-file=FILE
charger le certificat CA depuis ce fichier
--ip-address=IP_ADDRESS
Spécifiez l'adresse IP à ajouter à DNS. Cette
option peut être utilisée plusieurs fois
--all-ip-addresses Toutes les adresses IP routables configurées sur n'importe quelle interface
seront ajoutées à DNS
--domain=DOMAIN_NAME
domaine DNS principal du déploiement IPA (pas
nécessairement lié au nom d'hôte actuel)
--server=SERVER FQDN du serveur IPA
--realm=REALM_NAME nom du royaume Kerberos du déploiement IPA (généralement
un nom en majuscules du domaine DNS principal)
--hostname=HOST_NAME
Le nom d'hôte de cette machine (FQDN). Si spécifié,
le nom d'hôte sera défini et la configuration système sera
mise à jour pour persister après un redémarrage. Par défaut,
le résultat de l'appel getfqdn() de Python's socket module
est utilisé.
Options Client :
-w PASSWORD, --password=PASSWORD
mot de passe pour rejoindre le royaume IPA (suppose un mot de passe de masse
à moins que le principal ne soit également défini)
-W Demander un mot de passe pour rejoindre le royaume IPA
--noac ne pas modifier la configuration nsswitch.conf et PAM
-f, --force forcer le réglage de la configuration LDAP/Kerberos
--configure-firefox
configurer Firefox pour utiliser les identifiants de domaine IPA
--firefox-dir=FIREFOX_DIR
spécifier le répertoire où Firefox est installé (par
exemple : '/usr/lib/firefox')
-k KEYTAB, --keytab=KEYTAB
chemin vers la clé de sauvegarde du keytab de l'enrôlement précédent
--mkhomedir créer des répertoires personnels pour les utilisateurs lors de leur première connexion
--force-join Forcer l'enrôlement du client même s'il est déjà enrôlé
--ntp-server=NTP_SERVER
serveur ntp à utiliser. Cette option peut être utilisée plusieurs fois
-N, --no-ntp ne pas configurer ntp
--force-ntpd Arrêtez et désactivez tout service de synchronisation de temps et de date
en dehors de ntpd
--nisdomain=NISDOMAIN
nom de domaine NIS
--no-nisdomain ne pas configurer le nom de domaine NIS
--ssh-trust-dns configurer le client OpenSSH pour faire confiance aux enregistrements DNS SSHFP
--no-ssh ne pas configurer le client OpenSSH
--no-sshd ne pas configurer le serveur OpenSSH
--no-sudo ne pas configurer SSSD comme source de données pour sudo
--no-dns-sshfp ne pas créer automatiquement les enregistrements DNS SSHFP
--kinit-attempts=KINIT_ATTEMPTS
nombre de tentatives pour obtenir TGT de l'hôte (par défaut 5).
--request-cert demander un certificat pour la machine
Options SSSD :
--fixed-primary Configurer sssd pour utiliser un serveur fixe comme serveur IPA principal
--permit désactiver les règles d'accès par défaut, autoriser tout accès.
--enable-dns-updates
Configure la machine pour tenter des mises à jour DNS lorsque
l'adresse IP change.
--no-krb5-offline-passwords
Configurer SSSD pour ne pas stocker le mot de passe de l'utilisateur lorsque le
serveur est hors ligne
--preserve-sssd Conserver l'ancienne configuration SSSD si possible
Options Automount :
--automount-location=AUTOMOUNT_LOCATION
Lieu d'automontage
Options de journalisation et de sortie :
-v, --verbose imprimer des informations de débogage
-d, --debug alias pour --verbose (obsolète)
-q, --quiet n'afficher que les erreurs
--log-file=FILE journaliser dans le fichier donné
Tests
Les tests Travis sont réalisés avec Docker et docker_test_runner. Les tests sur Travis effectuent des vérifications de syntaxe et de linting.
Pour plus de détails et des vérifications supplémentaires, consultez la configuration de docker_test_runner et l' entrypoint Docker.
# Tester localement :
curl https://raw.githubusercontent.com/timorunge/docker-test-runner/master/install.sh | sh
./docker_test_runner.py -f tests/docker_test_runner.yml
Dépendances
Ce rôle nécessite un serveur FreeIPA (Repo Github) en cours d'exécution.
Licence
Licence BSD 3-Clause "New" ou "Revised"
Informations sur l'auteur
- Timo Runge
FreeIPA Identity Management Client provisioning.
ansible-galaxy install timorunge.freeipa_client