timorunge.freeipa_client
freeipa_client
Ten skrypt służy do instalacji i konfiguracji klienta FreeIPA zgodnie z Twoimi potrzebami.
W połączeniu z
freeipa
(Github), można (i jest to przetestowane) korzystać z freeipa_client
z najnowszą wersją FreeIPA na Debianie 9.4 i Ubuntu >= 18.04 (zobacz w
sekcji z przykładami).
Wymagania
Ten skrypt wymaga Ansible 2.5.0 lub wyższej wersji.
Możesz łatwo zainstalować (i określić) stabilną wersję za pomocą pip:
pip install ansible==2.7.9
Wszystkie wymagania dotyczące platformy znajdują się w pliku metadanych.
Aby poprawnie skonfigurować ten skrypt, musisz mieć możliwość komunikacji na ważnych portach z serwerem FreeIPA (Repozytorium Github).
Instalacja
ansible-galaxy install timorunge.freeipa_client
Zmienne skryptu
Wymagane jest ustawienie następujących zmiennych, aby uzyskać działający skrypt (bez dostosowywania). Te zmienne nie mają wartości domyślnych:
# Główny domena DNS wdrożenia IPA
# Typ: Str
freeipa_client_domain: example.com
# Nazwa hosta tej maszyny (FQDN)
# Typ: Str
freeipa_client_fqdn: srv-1-eu-central-1.example.com
# Hasło do dołączenia do królestwa IPA
# Typ: Str
freeipa_client_password: Passw0rd
# Principal do użycia do dołączenia do królestwa IPA
# Typ: Str
freeipa_client_principal: admin
# Nazwa królestwa Kerberos wdrożenia IPA
# Typ: Str
freeipa_client_realm: EXAMPLE.COM
# FQDN serwera IPA
# Typ: Str
freeipa_client_server: ipa.example.com
Zmienne, które można przekazać do tego skryptu, i ich krótki opis są następujące. (Zobacz wszystkie zmienne w defaults/main.yml)
# Podstawowe polecenie do instalacji FreeIPA
# Typ: Str
freeipa_client_install_base_command: ipa-client-install --unattended
# Domyślne opcje instalacji FreeIPA
# Typ: Lista
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"
Przykłady
Aby dokument był czytelny, opcje instalacji zostały uproszczone. Możesz znaleźć pełne opcje instalacji w tym dokumencie lub w online stronie man dla ipa-client-install.
1) Zainstaluj klienta FreeIPA z ustawieniami domyślnymi
- 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) Zainstaluj serwer FreeIPA z niestandardowymi opcjami instalacji
- 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) Zainstaluj klienta FreeIPA i dodaj wiele serwerów 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
Opcje instalacji klienta FreeIPA
Przegląd opcji instalacji dla ipa-client-install (4.6.4).
Użycie: ipa-client-install [opcje]
Opcje:
--version pokazuje numer wersji programu i kończy pracę
-h, --help pokazuje tę pomoc i kończy pracę
-U, --unattended nieprzyjacielska (de)instalacja nigdy nie pyta użytkownika
--uninstall odinstalowuje istniejącą instalację. Deinstalacja może
być wykonana z opcją --unattended
Podstawowe opcje:
-p PRINCIPAL, --principal=PRINCIPAL
principal do użycia do dołączenia do królestwa IPA
--ca-cert-file=FILE
załaduj certyfikat CA z tego pliku
--ip-address=IP_ADDRESS
Określ adres IP, który powinien zostać dodany do DNS. Ta
opcja może być używana wielokrotnie
--all-ip-addresses Wszystkie routowalne adresy IP skonfigurowane na dowolnym interfejsie
będą dodawane do DNS
--domain=DOMAIN_NAME
główny domena DNS wdrożenia IPA (niekoniecznie związana z bieżącym hostname)
--server=SERVER FQDN serwera IPA
--realm=REALM_NAME Nazwa królestwa Kerberos wdrożenia IPA (zwykle
zapis wielkimi literami głównej domeny DNS)
--hostname=HOST_NAME
Nazwa hosta tej maszyny (FQDN). Jeśli jest podana, nazwa hosta
zostanie ustawiona, a konfiguracja systemu zostanie
zaktualizowana, aby przetrwała restart. Domyślnie
używany jest wynik wywołania getfqdn() z modułu socket w Pythonie.
Opcje klienta:
-w PASSWORD, --password=PASSWORD
hasło do dołączenia do królestwa IPA (zakłada hasło zbiorcze
chyba że również ustawiony jest principal)
-W Poproś o hasło do dołączenia do królestwa IPA
--noac nie modyfikuj nsswitch.conf i konfiguracji PAM
-f, --force wymuś ustawienie konfiguracji LDAP/Kerberos
--configure-firefox
skonfiguruj Firefoxa, aby używać poświadczeń domeny IPA
--firefox-dir=FIREFOX_DIR
określ katalog, w którym zainstalowany jest Firefox (na przykład: '/usr/lib/firefox')
-k KEYTAB, --keytab=KEYTAB
ścieżka do skopiowanego keytab z wcześniejszej rejestracji
--mkhomedir twórz katalogi domowe dla użytkowników przy ich pierwszym logowaniu
--force-join Wymuś rejestrację klienta, nawet jeśli został już zarejestrowany
--ntp-server=NTP_SERVER
serwer ntp do wykorzystania. Ta opcja może być używana wielokrotnie
-N, --no-ntp nie konfiguruj ntp
--force-ntpd Zatrzymaj i wyłącz wszelkie usługi synchronizacji czasu
z wyjątkiem ntpd
--nisdomain=NISDOMAIN
Nazwa domeny NIS
--no-nisdomain nie konfiguruj nazwy domeny NIS
--ssh-trust-dns skonfiguruj klienta OpenSSH, aby ufał rekordom DNS SSHFP
--no-ssh nie konfiguruj klienta OpenSSH
--no-sshd nie konfiguruj serwera OpenSSH
--no-sudo nie konfiguruj SSSD jako źródła danych dla sudo
--no-dns-sshfp nie twórz automatycznie rekordów DNS SSHFP
--kinit-attempts=KINIT_ATTEMPTS
liczba prób uzyskania TGT hosta (domyślnie 5).
--request-cert żądanie certyfikatu dla maszyny
Opcje SSSD:
--fixed-primary Konfiguruj sssd, aby używał stałego serwera jako głównego serwera IPA
--permit domyślnie wyłącz zasady dostępu, zezwól na pełny dostęp.
--enable-dns-updates
Konfiguruje maszynę do próby aktualizacji dns, gdy adres
IP się zmienia.
--no-krb5-offline-passwords
Konfiguruj SSSD, aby nie przechowywał hasła użytkownika, gdy
serwer jest offline
--preserve-sssd Zachowaj starą konfigurację SSSD, jeśli to możliwe
Opcje automatomu:
--automount-location=AUTOMOUNT_LOCATION
Lokalizacja automount
Opcje logowania i wyjścia:
-v, --verbose drukuj informacje debugowe
-d, --debug alias dla --verbose (przestarzałe)
-q, --quiet wyjście tylko w przypadku błędów
--log-file=FILE loguj do podanego pliku
Testowanie
Testy Travis są przeprowadzane przy użyciu Docker i docker_test_runner. Testy na Travis wykonują sprawdzenie składni i linting.
Aby uzyskać więcej informacji i dodatkowe kontrole, zobacz konfigurację docker_test_runner oraz punkt wejścia Dockera.
# Testowanie lokalnie:
curl https://raw.githubusercontent.com/timorunge/docker-test-runner/master/install.sh | sh
./docker_test_runner.py -f tests/docker_test_runner.yml
Zależności
Ten skrypt wymaga działającego serwera FreeIPA (Repozytorium Github).
Licencja
Licencja BSD 3-Clause "Nowa" lub "Zrewidowana"
Informacje o autorze
- Timo Runge
FreeIPA Identity Management Client provisioning.
ansible-galaxy install timorunge.freeipa_client