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

Status budowy

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
O projekcie

FreeIPA Identity Management Client provisioning.

Zainstaluj
ansible-galaxy install timorunge.freeipa_client
Licencja
bsd-3-clause
Pobrania
12.1k
Właściciel