vnode.ypserver
Rola Ansible: ypserver
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.
ansible-galaxy install vnode.ypserver