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

Build-Status

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
Über das Projekt

FreeIPA Identity Management Client provisioning.

Installieren
ansible-galaxy install timorunge.freeipa_client
GitHub Repository
Lizenz
bsd-3-clause
Downloads
12.1k
Besitzer