vnode.ypserver

Rola Ansible: ypserver

CI

Ta rola instaluje i konfiguruje serwer YP/NIS, który jest częścią systemów operacyjnych OpenBSD oraz innych systemów BSD*. Obecnie rola ta obsługuje tylko OpenBSD, z zamiarem dodania wsparcia dla FreeBSD i NetBSD w aktualizacji w najbliższej przyszłości.

Gdzie to możliwe, rola ta odnosi się do dokumentacji systemowej, np. do strony podręcznika yp(8).

Wymagania

Operacja

Nie są wymagane żadne zewnętrzne role lub moduły do korzystania z tej roli.

Testowanie i rozwój

Do testowania i rozwoju rola ta zależy od następujących narzędzi zewnętrznych:

  • Vagrant (obsługujący dostawcę VirtualBox lub VMWare)
  • VagrantCloud (konkretnie, obraz generic/openbsd6)

Zmienne roli

Dostępne zmienne są wymienione poniżej, łącznie z ich domyślnymi wartościami (zobacz defaults/main.yml). Wszystkie z nich powinny być zaimplementowane. Jeśli zauważysz, że tak nie jest, proszę otworzyć zgłoszenie w repozytorium GitHub.

Wymagane zmienne

Poniższe zmienne muszą być ustawione podczas używania roli.

ypserver_domain: ""

Wymagana, musi zawierać ważną nazwę domeny NIS. To jest nazwa domeny NIS, którą zamierzasz skonfigurować.

ypserver_master: ""

Wymagana, musi podać osiągalny główny serwer NIS dla domeny.

ypserver_servers: []

Wymagana, musi wymieniać zestaw serwerów NIS dla domeny. Ta lista musi zawierać również serwer ypserver_master.

Uwaga: jeśli chcesz tylko skonfigurować serwery podrzędne (wobec już istniejącego głównego), upewnij się, że główny serwer nie jest częścią grupy hostów, do której stosujesz tę rolę.

ypserver_serverinfo: {}

Wymagana, ale może być pusta, jeśli serwery NIS dla domeny można znaleźć w DNS lub /etc/hosts.

Jeśli nie jest pusta, ta nazwa słownikowa zawiera adresy IPv4 i/lub IPv6 dla serwerów domeny. Rola następnie uzupełni /etc/hosts o wymagane linie. Jeśli serwery nie mogą być osiągnięte lub rozwiązane, kod NIS zablokuje się. Zobacz yp(8) po więcej szczegółów.

Poniższy przykład wymienia adresy dla serwera master i slave w sieci dual-stack.

ypserver_serverinfo:
  master:
    - "192.0.2.1"
    - "2001:db8::111:1"
  slave:
    - "192.0.2.2"
    - "2001:db8::111:2"
ypserver_ypservacl: {}

Wymagana, jeśli ypserver_set_ypserveracl jest ustawione. Ta słownikowa lista zawiera zasady dla pliku ypserv.acl(5). Ten plik ACL pozwala ograniczyć dostęp do serwera YP/NIS do odpowiednich zakresów sieciowych. Jeśli ypserver_set_ypserveracl nie jest ustawione, ta zmienna stworzy plik securenet(5), który ma bardziej ograniczony format. Upewnij się, że twoje zasady uwzględniają te ograniczenia, sprawdzając odpowiednie strony podręcznika.

Pamiętaj, aby uwzględnić swoje serwery podrzędne oraz klientów, którzy muszą uzyskać dostęp do YP/NIS. Na przykład, jeśli chcesz dopuścić do lokalnego hosta, jeden serwer podrzędny slave i klientów z sieci 192.0.2.0/24, użyjesz:

ypserver_ypservacl:
  - action: allow
    type: host
    host: "localhost"
  - action: allow
    type: host
    host: "master"
  - action: allow
    type: host
    host: "192.0.2.2"
    tag: "slave"
  - action: allow
    type: net
    host: "192.0.2.0"
    mask: "255.255.255.0"
    tag: "Klienci"
  - action: deny
    type: all

Opcjonalne zmienne

ypserver_usedns: true

Określa, że mapy YP/NIS mogą korzystać z DNS do wyszukiwania nazw hostów. Zaleca się pozostawienie na true. Gdy ustawisz na false, upewnij się, że ypserver_serverinfo i/lub ypserver_set_hosts są ustawione poprawnie, aby twoje serwery NIS mogły być rozwiązane.

ypserver_unsecure: false

Zaleca się pozostawienie na false, gdy serwujesz tylko klientów OpenBSD lub FreeBSD.

Jeśli ustawione na true, mapy passwd będą zawierać (szyfrowane) wpisy haseł. Jeśli wszyscy twoi klienci YP/NIS działają na OpenBSD lub FreeBSD, możesz bezpiecznie ustawić tę zmienną na false. Więcej informacji znajdziesz w FAQ OpenBSD. Należy zauważyć, że to ustawienie niewiele zmienia w kwestii wbudowanej niebezpieczeństwa NIS.

ypserver_nopush: false

Zaleca się pozostawienie na true, chyba że potrzebujesz konkretnych środków do aktualizacji map na serwerach podrzędnych.

Jeśli ustawione na true, zaktualizowane mapy na głównym serwerze /nie/ będą automatycznie przesyłane do serwerów podrzędnych. W takim przypadku musisz zorganizować aktualizacje na serwerach podrzędnych w inny sposób (np. używając zadań cron lub rsync).

ypserver_source_dir: '/etc'

Katalog źródłowy dla map serwowanych przez domenę NIS. Ten katalog musi być obecny na głównym serwerze i zawierać pliki wymienione w zmiennej ypserver_source_maps.

ypserver_source_maps:
  passwd: 'master.passwd'
  group: 'group'

Ten słownik wymienia, które mapy serwer domeny NIS serwuje klientom oraz ich źródłowe pliki. Te pliki muszą istnieć na głównym serwerze w katalogu ypserver_source_dir. Aby zobaczyć inne obsługiwane mapy, sprawdź Makefile.yp(8).

ypserver_passwd_minuid:  1000
ypserver_passwd_maxuid: 32765
ypserver_group_mingid:   1000
ypserver_group_maxgid:  32765

Te zmienne wskazują dolne/górne granice nazw użytkowników i grup, które należy uwzględnić w mapie NIS. Zapobiega to wyciekowi kont systemowych do map.

Zmienne wspierające wiele domen YP/NIS na serwerze

Ta zmienna ma na celu umożliwienie hostowania wielu domen NIS na jednym serwerze. Nie było to pierwotnie zamierzone zastosowanie, więc jeśli napotkasz problemy, zgłoś to jako zgłoszenie na GitHubie.

ypserver_set_domainname: true

Zaleca się pozostawienie na true dla domeny, która ma być twoją 'główną' (domyślną) nazwą domeny. Musi być ustawione na false dla innych domen NIS, które chcesz hostować na tym serwerze.

Dodatkowe ustawienia

Te zmienne nie są wymagane do wywołań roli, a ich domyślne ustawienia powinny być wystarczające.

ypserver_set_hosts: false

Jeśli ustawione na true, rola dodaje informacje IP dla serwerów NIS do pliku /etc/hosts. Zwykle jest to przydatne, gdy domena nie korzysta z wyszukiwań DNS (ustawienie ypserver_usedns na false). Należy pamiętać, że to wymaga informacji IP dla każdego serwera NIS w zmiennej ypserver_serverinfo.

ypserver_set_yppasswdd: false

Włącza usługę yppasswd, aby umożliwić użytkownikom na głównym serwerze zmianę hasła w mapach NIS. Należy zauważyć, że w ostatnich wersjach OpenBSD (od 5.9) ta funkcjonalność nie jest już dostępna.

ypserver_set_ypservacl: false

Tworzy plik ACL /var/yp/ypserv.acl zgodnie z plikiem ypserv.acl(5) zamiast pliku securenet(5). Ten plik ACL pozwala ograniczyć dostęp do serwera YP/NIS do odpowiednich zakresów sieciowych. Wymaga, aby zmienna ypserver_ypservacl była ustawiona odpowiednio.

ypserver_set_cronjob: true

Zaleca się pozostawienie na true, chyba że potrzebujesz/chcesz innych ustaleń niż te, które wprowadza rola. Ustanawia regularne zadanie cron do aktualizacji map w domenie i sprawdza brakujące mapy na serwerach podrzędnych.

Nazwa zadania Interwał Uwaga
Aktualizuj domenę YP ypserver_ypdomain Co 15 minut Na głównym serwerze
Aktualizuj domenę YP ypserver_ypdomain Każda godzina o :05 Na serwerach podrzędnych

Zmienne wewnętrzne

Te zmienne są używane wewnętrznie w roli i nie są przeznaczone do modyfikacji przez użytkownika. Zmieniaj je na własne ryzyko. Zazwyczaj odpowiadają one zakodowanym wartościom w systemie operacyjnym.

ypserver_ypdbdir: '/var/yp'
ypserver_ypdbdir_domain: "{{ ypserver_ypdbdir }}/{{ ypserver_domain }}"
ypserver_securenet: "{{ ypserver_ypdbdir }}/securenet"

Zależności

Brak.

Przykład Zeszytu

Poniżej znajduje się przykład utworzenia prostej domeny YP/NIS z dwoma serwerami, master i slave. Domena nazywa się legacy. Pliki źródłowe dla map znajdują się w /etc/legacy.

---
- hosts: ypservers
  roles:
    - role: vnode.ypserver
      vars:
        ypserver_ypdomain: legacy
        ypserver_master: master
        ypserver_servers: "{{ groups['ypservers'] }}"
        ypserver_source_dir: "/etc/{{ ypserver_domain }}"

Licencja

MIT

Informacje o autorze

Ta rola została stworzona w 2020 roku przez Rogiera Krieger.

O projekcie

Install and configure a YP/NIS server

Zainstaluj
ansible-galaxy install vnode.ypserver
Licencja
mit
Pobrania
212
Właściciel