timorunge.freeipa_client
freeipa_client
Diese Rolle installiert und konfiguriert den FreeIPA Client nach deinen Bedürfnissen.
In Kombination mit
freeipa
(Github) ist es möglich (und getestet), den freeipa_client
mit der aktuellen Version von
FreeIPA selbst auf Debian 9.4 und Ubuntu >= 18.04 zu verwenden (siehe die
Beispiel-Sektion).
Anforderungen
Diese Rolle benötigt Ansible 2.5.0 oder höher.
Du kannst einfach pip verwenden, um eine stabile Version zu installieren (und zu definieren):
pip install ansible==2.7.9
Alle Plattformanforderungen sind in der Metadatendatei aufgeführt.
Um diese Rolle korrekt einzurichten, ist es erforderlich, dass du auf den benötigten Ports mit einem FreeIPA-Server (Github Repo) kommunizieren kannst.
Installation
ansible-galaxy install timorunge.freeipa_client
Rollenvariablen
Es ist erforderlich, die folgenden Variablen festzulegen, um diese Rolle zum Laufen zu bringen (ohne Anpassungen). Diese Variablen haben keine Standardwerte:
# Primäre DNS-Domain der IPA-Installation
# Typ: Str
freeipa_client_domain: beispiel.com
# Der Hostname dieses Rechners (FQDN)
# Typ: Str
freeipa_client_fqdn: srv-1-eu-central-1.beispiel.com
# Passwort zum Beitreten der IPA-Domäne
# Typ: Str
freeipa_client_password: Passwort
# Principal zum Beitreten der IPA-Domäne
# Typ: Str
freeipa_client_principal: admin
# Kerberos-Domänenname der IPA-Installation
# Typ: Str
freeipa_client_realm: BEISPIEL.COM
# FQDN des IPA-Servers
# Typ: Str
freeipa_client_server: ipa.beispiel.com
Die Variablen, die an diese Rolle übergeben werden können, und eine kurze Beschreibung dazu sind wie folgt. (Für alle Variablen, siehe defaults/main.yml)
# Der Basisbefehl für die FreeIPA-Installation
# Typ: Str
freeipa_client_install_base_command: ipa-client-install --unattended
# Die Standardoptionen für die FreeIPA-Installation
# Typ: 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"
Beispiele
Um das Dokument übersichtlich zu halten, wurden die Installationsoptionen gekürzt. Du kannst die Installationsoptionen entweder in diesem Dokument oder in der Online-Man-Seite für ipa-client-install finden.
1) FreeIPA Client mit Standard-Einstellungen installieren
- hosts: freeipa-klienten
vars:
freeipa_client_domain: beispiel.com
freeipa_client_server: ipa.beispiel.com
freeipa_client_realm: BEISPIEL.COM
freeipa_client_principal: admin
freeipa_client_password: Passwort
freeipa_client_fqdn: srv-1-eu-central-1.beispiel.com
roles:
- timorunge.freeipa_client
2) FreeIPA Client mit benutzerdefinierten Installationsoptionen installieren
- hosts: freeipa-klienten
vars:
freeipa_client_domain: beispiel.com
freeipa_client_server: ipa.beispiel.com
freeipa_client_realm: BEISPIEL.COM
freeipa_client_principal: admin
freeipa_client_password: Passwort
freeipa_client_fqdn: srv-1-eu-central-1.beispiel.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) FreeIPA Client installieren und mehrere IPA-Server hinzufügen
- hosts: freeipa-klienten
vars:
freeipa_client_domain: beispiel.com
freeipa_client_server:
- ipa-eu-central-1.beispiel.com
- ipa-eu-west-1.beispiel.com
- ipa-eu-west-2.beispiel.com
- ipa-eu-west-3.beispiel.com
- ipa.beispiel.com
freeipa_client_realm: BEISPIEL.COM
freeipa_client_principal: admin
freeipa_client_password: Passwort
freeipa_client_fqdn: srv-1-eu-central-1.beispiel.com
freeipa_client_install_options:
- "--server={{ freeipa_client_server | join(' --server=') }}"
roles:
- timorunge.freeipa_client
FreeIPA Client Installationsoptionen
Eine Übersicht der Installationsoptionen für ipa-client-install (4.6.4).
Usage: ipa-client-install [options]
Options:
--version Versionsnummer des Programms anzeigen und beenden
-h, --help diese Hilfemeldung anzeigen und beenden
-U, --unattended unbeaufsichtigte (De)Installation, die den Benutzer niemals auffordert
--uninstall eine vorhandene Installation deinstallieren. Die Deinstallation kann mit der Option --unattended ausgeführt werden
Grundoptionen:
-p PRINCIPAL, --principal=PRINCIPAL
Principal, um der IPA-Domäne beizutreten
--ca-cert-file=DATEI
CA-Zertifikat aus dieser Datei laden
--ip-address=IP_ADRESSE
IP-Adresse angeben, die zum DNS hinzugefügt werden soll. Diese Option kann mehrmals verwendet werden
--all-ip-addresses Alle routbaren IP-Adressen, die auf einer beliebigen Schnittstelle konfiguriert sind, werden zum DNS hinzugefügt
--domain=DOMAINS_NAME
primäre DNS-Domain der IPA-Installation (nicht unbedingt mit dem aktuellen Hostnamen verbunden)
--server=SERVER FQDN des IPA-Servers
--realm=REALM_NAME Kerberos-Domänenname der IPA-Installation (typischerweise ein großgeschriebener Name der primären DNS-Domain)
--hostname=HOST_NAME
Der Hostname dieses Rechners (FQDN). Wenn angegeben, wird der Hostname festgelegt und die Systemkonfiguration aktualisiert, um beim Neustart beizubehalten. Standardmäßig wird das Ergebnis des Aufrufs von getfqdn() aus dem Python-Socket-Modul verwendet.
Client-Optionen:
-w PASSWORT, --password=PASSWORT
Passwort, um der IPA-Domäne beizutreten (geht von einem Massenpasswort aus, es sei denn, das Principal wird ebenfalls festgelegt)
-W Nach einem Passwort fragen, um der IPA-Domäne beizutreten
--noac Änderungen an der nsswitch.conf und der PAM-Konfiguration nicht vornehmen
-f, --force Erzwingen der Festlegung der LDAP/Kerberos-Konfiguration
--configure-firefox Firefox so konfigurieren, dass IPA-Domänenanmeldeinformationen verwendet werden
--firefox-dir=FIREFOX_DIR
Verzeichnis angeben, in dem Firefox installiert ist (z.B.: '/usr/lib/firefox')
-k KEYTAB, --keytab=KEYTAB
Pfad zur gesicherten Keytab von einer vorherigen Anmeldung
--mkhomedir Home-Verzeichnisse für Benutzer bei deren erster Anmeldung erstellen
--force-join Erzwingen der Client-Anmeldung, selbst wenn bereits angemeldet
--ntp-server=NTP_SERVER
NTP-Server verwenden. Diese Option kann mehrmals verwendet werden
-N, --no-ntp NTP nicht konfigurieren
--force-ntpd Stoppen und Deaktivieren aller Zeit- und Datensynchronisationsdienste außer ntpd
--nisdomain=NISDOMAINS
NIS-Domainname
--no-nisdomain NIS-Domainnamen nicht konfigurieren
--ssh-trust-dns OpenSSH-Client so konfigurieren, dass DNS SSHFP-Einträge vertraut werden
--no-ssh OpenSSH-Client nicht konfigurieren
--no-sshd OpenSSH-Server nicht konfigurieren
--no-sudo SSSD nicht als Datenquelle für sudo konfigurieren
--no-dns-sshfp DNS SSHFP-Einträge nicht automatisch erstellen
--kinit-attempts=KINIT_ATTEMPTS
Anzahl der Versuche, um Host TGT zu erhalten (Standardeinstellung ist 5).
--request-cert Zertifikat für den Rechner anfordern
SSSD-Optionen:
--fixed-primary SSSD so konfigurieren, dass ein fester Server als primärer IPA-Server verwendet wird
--permit Standardmäßig Zugriffsregeln deaktivieren, allen Zugriff erlauben.
--enable-dns-updates
Konfiguriert den Rechner so, dass beim Ändern der IP-Adresse DNS-Updates versucht werden.
--no-krb5-offline-passwords
SSSD so konfigurieren, dass Passwörter der Benutzer beim Offline-Betrieb nicht gespeichert werden
--preserve-sssd Alte SSSD-Konfiguration, wenn möglich, beibehalten
Automount-Optionen:
--automount-location=AUTOMOUNT_LOCATION
Automount-Standort
Protokollierungs- und Ausgabeoptionen:
-v, --verbose Debugging-Informationen ausgeben
-d, --debug Alias für --verbose (veraltet)
-q, --quiet Nur Fehler ausgeben
--log-file=DATEI In die angegebene Datei protokollieren
Tests
Die Travis-Tests werden mit Docker und docker_test_runner durchgeführt. Die Tests auf Travis führen Linting- und Syntaxprüfungen durch.
Für weitere Details und zusätzliche Prüfungen, siehe die docker_test_runner-Konfiguration und den Docker-Einstiegspunkt.
# Lokal testen:
curl https://raw.githubusercontent.com/timorunge/docker-test-runner/master/install.sh | sh
./docker_test_runner.py -f tests/docker_test_runner.yml
Abhängigkeiten
Diese Rolle benötigt einen laufenden FreeIPA-Server (Github Repo).
Lizenz
BSD 3-Klausel "Neu" oder "Überarbeitet" Lizenz
Autoreninformationen
- Timo Runge