ypserver
Ansible роль: ypserver
Эта роль устанавливает и настраивает сервер YP/NIS, который является частью OpenBSD и других операционных систем BSD*. В настоящее время эта роль поддерживает только OpenBSD, с намерением добавить поддержку FreeBSD и NetBSD в одном из ближайших обновлений.
При необходимости эта роль ссылается на документацию системы, например, на страницу man yp(8)
.
Требования
Эксплуатация
Для использования этой роли не требуются внешние роли и/или модули.
Тестирование и разработка
Для тестирования и разработки эта роль зависит от следующих внешних инструментов:
- Vagrant (поддерживающий либо VirtualBox, либо VMWare)
- VagrantCloud (в частности, коробка
generic/openbsd6
)
Переменные роли
Доступные переменные перечислены ниже, включая их значения по умолчанию (см. defaults/main.yml
).
Все эти должны быть реализованы. Если вы обнаружите, что их нет, пожалуйста, откройте проблему в репозитории GitHub.
Обязательные переменные
Следующие переменные должны быть установлены при использовании роли.
ypserver_domain: ""
Обязательная, должна иметь действительное имя домена NIS. Это имя NIS домена, который вы собираетесь настроить.
ypserver_master: ""
Обязательная, должна указывать на доступный основной сервер NIS для домена.
ypserver_servers: []
Обязательная, должна включать список серверов NIS для домена. Этот список должен включать также сервер ypserver_master
.
Примечание: если вы хотите настроить только ведомые серверы (в противовес уже существующему основному серверу), убедитесь, что основной сервер не является частью группы хостов, к которой вы применяете эту роль.
ypserver_serverinfo: {}
Обязательная, но может быть пустой, если серверы NIS для домена можно найти в DNS или в /etc/hosts
.
Если не пусто, этот словарь перечисляет адреса IPv4 и/или IPv6 для серверов домена. Роль заполнит /etc/hosts
необходимыми записями. Если серверы недоступны или не могут быть разрешены, код NIS будет зависать. См. yp(8)
для получения дополнительной информации.
Пример ниже показывает адреса для master
и slave
серверов в сети с двойным стеком.
ypserver_serverinfo:
master:
- "192.0.2.1"
- "2001:db8::111:1"
slave:
- "192.0.2.2"
- "2001:db8::111:2"
ypserver_ypservacl: {}
Обязательная, если установлено ypserver_set_ypserveracl
. Этот словарь перечисляет правила для файла ypserv.acl(5)
. Этот ACL-файл позволяет ограничивать доступ к серверу YP/NIS для соответствующих диапазонов сети.
Если ypserver_set_ypserveracl
не установлено, эта переменная создаст файл securenet(5)
, который имеет более ограниченный формат. Убедитесь, что ваши правила принимают во внимание эти ограничения, проверяя соответствующие страницы man.
Не забудьте включить свои ведомые серверы и клиентов, которые должны получить доступ к YP/NIS. Например, если вы хотите разрешить доступ вашему локальному хосту, одному ведомому серверу slave
и клиентам сети 192.0.2.0/24
, вы можете использовать:
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: "Clients"
- action: deny
type: all
Необязательные переменные
ypserver_usedns: true
Указывает, что карты YP/NIS могут использовать DNS для разрешения имен хостов. Рекомендуется оставить true
. Если установлено в false
, убедитесь, что ypserver_serverinfo
и/или ypserver_set_hosts
установлены корректно, чтобы ваши серверы NIS могли быть разрешены.
ypserver_unsecure: false
Рекомендуется оставить false
, если вы обслуживаете только клиентов OpenBSD или FreeBSD.
Если установлено в true
, карты passwd
будут содержать (зашифрованные) записи паролей. Если все ваши /клиенты/ YP/NIS работают на OpenBSD или FreeBSD, вы можете безопасно установить эту переменную на false
. Для получения дополнительной информации смотрите FAQ OpenBSD. Обратите внимание, что эта настройка мало что меняет в плане незащищенности NIS.
ypserver_nopush: false
Рекомендуется оставить true
, если вам не нужны специфические меры для обновления карт на ведомых серверах.
Если установлено в true
, обновленные карты на основном сервере /не/ будут автоматически передаваться на ведомые серверы. В этом случае вам нужно будет организовать обновления на ведомых серверах другим способом (например, с помощью cron-работ или rsync).
ypserver_source_dir: '/etc'
Исходный каталог для карт, обслуживаемых доменом NIS. Этот каталог должен присутствовать на основном сервере и содержать файлы, указанные в переменной ypserver_source_maps
.
ypserver_source_maps:
passwd: 'master.passwd'
group: 'group'
Этот словарь перечисляет, какие карты обслуживает мастер домена NIS для клиентов и их исходные файлы. Эти файлы должны существовать на мастере в каталоге ypserver_source_dir
. Для других поддерживаемых карт смотрите Makefile.yp(8)
.
ypserver_passwd_minuid: 1000
ypserver_passwd_maxuid: 32765
ypserver_group_mingid: 1000
ypserver_group_maxgid: 32765
Эти переменные указывают нижние и верхние пределы имён пользователей и групп, которые будут включены в карту NIS. Это предотвращает утечку системных учетных записей в карты.
Переменные для поддержки нескольких доменов YP/NIS на одном сервере
Эта переменная предназначена для поддержки нескольких доменов NIS на одном сервере. Это не является изначально предполагаемым вариантом использования, поэтому, если вы обнаружите проблемы, пожалуйста, сообщите об этом как о проблеме на GitHub.
ypserver_set_domainname: true
Рекомендуется оставить true
для домена, который вы считаете 'основным' (по умолчанию). Должно быть установлено в false
для других NIS доменов, которые вы хотите разместить на том же сервере.
Дополнительные настройки
Эти переменные не обязательны для вызовов роли, и их значения по умолчанию должны быть нормальными.
ypserver_set_hosts: false
Если установлено в true
, роль добавляет информацию об IP-адресах для серверов NIS в файл /etc/hosts
. Это обычно полезно, когда домен не использует DNS-разрешения (ypserver_usedns
установлено в false
). Обратите внимание, что для каждого сервера NIS в переменной ypserver_serverinfo
необходима информация об IP-адресе.
ypserver_set_yppasswdd: false
Включает службу yppasswd
, чтобы позволить пользователям на основном сервере изменять свои пароли в картах NIS. Обратите внимание, что в последних версиях OpenBSD (начиная с 5.9) эта функция больше не поддерживается.
ypserver_set_ypservacl: false
Создает ACL-файл /var/yp/ypserv.acl
согласно файлу ypserv.acl(5)
вместо файла securenet(5)
. Этот ACL-файл позволяет ограничивать доступ к YP/NIS серверу для соответствующих диапазонов сети. Требуется, чтобы переменная ypserver_ypservacl
была установлена соответствующим образом.
ypserver_set_cronjob: true
Рекомендуется оставить true
, если вам не нужны/не желаете другие меры, кроме тех, что предусмотрены ролью. Устанавливает регулярную задачу cron для обновления карт в домене и проверки на отсутствие карт на ведомых серверах.
Название задачи | Интервал | Примечание |
---|---|---|
Обновление YP домена ypserver_ypdomain |
Каждые 15 минут | На основном сервере |
Обновление YP домена ypserver_ypdomain |
Каждый час в :05 | На ведомых серверах |
Внутренние переменные
Эти переменные используются в роли внутренне и не предназначены для модификации пользователем. Изменяйте их на свой страх и риск. Обычно они соответствуют жестко закодированным значениям на базовой операционной системе.
ypserver_ypdbdir: '/var/yp'
ypserver_ypdbdir_domain: "{{ ypserver_ypdbdir }}/{{ ypserver_domain }}"
ypserver_securenet: "{{ ypserver_ypdbdir }}/securenet"
Зависимости
Нет.
Пример плейбука
Ниже приведен пример создания простого домена YP/NIS с двумя серверами, master
и slave
. Домен называется legacy
. Исходные файлы для карт расположены в /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 }}"
Лицензия
MIT
Информация об авторе
Эта роль была создана в 2020 году Рогером Кригером.
ansible-galaxy install vnode/ansible-role-ypserver