vnode.ypserver

Rol de Ansible: ypserver

CI

Este rol instala y configura el servidor YP/NIS que forma parte de OpenBSD y otros sistemas operativos BSD*. Actualmente, este rol solo admite OpenBSD, con la intención de agregar soporte para FreeBSD y NetBSD en una actualización futura cercana.

Cuando sea aplicable, este rol se refiere a la documentación del sistema, por ejemplo, la página del manual yp(8).

Requisitos

Operación

No se requieren roles y/o módulos externos para usar este rol.

Pruebas y Desarrollo

Para pruebas y desarrollo, este rol depende de las siguientes herramientas externas:

  • Vagrant (que soporta el proveedor VirtualBox o VMWare)
  • VagrantCloud (específicamente, la caja generic/openbsd6)

Variables del Rol

Las variables disponibles se enumeran a continuación, incluidos sus valores predeterminados (ver defaults/main.yml). Todas estas deberían implementarse. Si encuentras que no lo están, por favor abre un issue en el repositorio de GitHub.

Variables Requeridas

Las siguientes variables deben configurarse al usar el rol.

ypserver_domain: ""

Requerido, debe tener un nombre de dominio NIS válido. Este es el nombre del dominio NIS que planeas configurar.

ypserver_master: ""

Requerido, debe listar un servidor maestro NIS accesible para el dominio.

ypserver_servers: []

Requerido, debe listar el conjunto de servidores NIS para el dominio. Esta lista debe incluir también al servidor ypserver_master. Nota: si solo deseas configurar servidores esclavos (contra un maestro ya existente), asegúrate de que el maestro no sea parte del grupo de host al que aplicas este rol.

ypserver_serverinfo: {}

Requerido, pero puede estar vacío si los servidores NIS para el dominio se pueden encontrar en DNS o en /etc/hosts.

Si no está vacío, este diccionario lista direcciones IPv4 y/o IPv6 para los servidores del dominio. Luego, el rol llenará /etc/hosts con las líneas requeridas. Si no se pueden alcanzar o resolver los servidores, el código NIS se congelará. Consulta yp(8) para más detalles.

El ejemplo a continuación enumera las direcciones para el servidor master y slave en una red de doble pila.

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

Requerido, si ypserver_set_ypserveracl está configurado. Este diccionario enumera las reglas para el archivo ypserv.acl(5). Este archivo ACL permite limitar el acceso al servidor YP/NIS a rangos de red apropiados. Si ypserver_set_ypserveracl no está configurado, esta variable creará un archivo securenet(5), que es un formato más limitado. Asegúrate de que tus reglas tengan en cuenta estas limitaciones consultando las páginas de manual correspondientes.

Asegúrate de incluir tus servidores esclavos así como a los clientes que necesitan acceder al YP/NIS. Por ejemplo, si deseas permitir tu host local, un servidor esclavo slave y los clientes de la red 192.0.2.0/24, usarías:

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: "Clientes"
  - action: deny
    type: all

Variables Opcionales

ypserver_usedns: true

Especifica que los mapas YP/NIS pueden usar DNS para búsquedas de nombres de host. Se recomienda dejarlo en true. Cuando se configura en false, asegúrate de que ypserver_serverinfo y/o ypserver_set_hosts estén configurados correctamente para que tus servidores NIS puedan resolverse.

ypserver_unsecure: false

Se recomienda dejarlo en false cuando solo se sirvan clientes OpenBSD o FreeBSD.

Si se establece en true, los mapas de passwd contendrán entradas de contraseña (encriptadas). Si todos tus /clientes/ YP/NIS ejecutan OpenBSD o FreeBSD, puedes poner esta variable en false sin problemas. Para más información, consulta la FAQ de OpenBSD. Ten en cuenta que esta configuración no soluciona la inseguridad inherente a NIS.

ypserver_nopush: false

Se recomienda dejarlo en true, a menos que necesites medidas específicas para actualizar mapas en servidores esclavos.

Si se establece en true, los mapas actualizados en el maestro no se enviarán automáticamente a los servidores esclavos. En ese caso, deberás organizar las actualizaciones en los servidores esclavos de otra manera (por ejemplo, utilizando trabajos cron o rsync).

ypserver_source_dir: '/etc'

El directorio fuente para los mapas servidos por el dominio NIS. Este directorio debe estar presente en el servidor maestro y contener los archivos mencionados en la variable ypserver_source_maps.

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

Este diccionario enumera qué mapas sirve el maestro del dominio NIS a los clientes y sus archivos fuente. Estos archivos deben existir en el maestro en el directorio ypserver_source_dir. Para otros mapas soportados, consulta Makefile.yp(8).

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

Estas variables indican los límites inferior/superior de los nombres de usuarios y grupos que se incluirán en el mapa NIS. Esto evita que cuentas del sistema se filtren en los mapas.

Variables para soportar múltiples dominios YP/NIS en un servidor

Esta variable está destinada a permitir la gestión de múltiples dominios NIS en un servidor. Este no era el caso de uso originalmente previsto, así que si encuentras problemas, infórmalo como un issue en GitHub.

ypserver_set_domainname: true

Se recomienda dejarlo en true para el dominio que se pretende como tu nombre de dominio 'principal' (predeterminado). Debe configurarse en false para otros dominios NIS que desees alojar en el mismo servidor.

Configuraciones Adicionales

Estas variables no son necesarias para invocaciones del rol y sus valores predeterminados deberían estar bien.

ypserver_set_hosts: false

Si se establece en true, el rol agrega la información IP de los servidores NIS al archivo /etc/hosts. Esto es típicamente útil cuando el dominio no utiliza búsquedas DNS (con ypserver_usedns configurado en false). Ten en cuenta que esto requiere información IP para cada servidor NIS en la variable ypserver_serverinfo.

ypserver_set_yppasswdd: false

Activa el servicio yppasswd, para permitir que los usuarios en el servidor maestro cambien su contraseña en los mapas NIS. Ten en cuenta que las versiones recientes de OpenBSD (a partir de la 5.9) ya no incluyen esta funcionalidad.

ypserver_set_ypservacl: false

Crea un archivo ACL /var/yp/ypserv.acl de acuerdo con el archivo ypserv.acl(5) en lugar del archivo securenet(5). Este archivo ACL permite limitar el acceso al servidor YP/NIS a rangos de red apropiados. Requiere que la variable ypserver_ypservacl esté configurada adecuadamente.

ypserver_set_cronjob: true

Se recomienda dejarlo en true, a menos que necesites/o quieras otros arreglos diferentes a los organizados por el rol. Configura un trabajo cron regular para actualizaciones de mapas en el dominio y verifica los mapas faltantes en los servidores esclavos.

Nombre del Trabajo Intervalo Nota(s)
Actualizar dominio YP ypserver_ypdomain Cada 15 minutos En el servidor maestro
Actualizar dominio YP ypserver_ypdomain Cada hora a :05 En servidores esclavos

Variables Internas

Estas variables se usan internamente en el rol y no están destinadas a ser modificadas por los usuarios. Cambiarlas es bajo tu propio riesgo. Típicamente, corresponden a valores codificados en el sistema operativo subyacente.

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

Dependencias

Ninguna.

Ejemplo de Playbook

A continuación, se incluye un ejemplo para crear un dominio YP/NIS simple con dos servidores, master y slave. El dominio se llama legacy. Los archivos fuente para los mapas están ubicados en /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 }}"

Licencia

MIT

Información del Autor

Este rol fue creado en 2020 por Rogier Krieger.

Acerca del proyecto

Install and configure a YP/NIS server

Instalar
ansible-galaxy install vnode.ypserver
Licencia
mit
Descargas
212
Propietario