ypserver

Ansible роль: ypserver

CI

Эта роль устанавливает и настраивает сервер 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 году Рогером Кригером.

О проекте

Install and configure a YP/NIS server

Установить
ansible-galaxy install vnode/ansible-role-ypserver
Лицензия
mit
Загрузки
200
Владелец