vnode.ypclient
Ansible 角色:ypclient
此角色安装并配置 YP/NIS 客户端,属于 OpenBSD 和其他 BSD* 操作系统的一部分。 目前,此角色仅支持 OpenBSD,计划在不久的将来更新支持 FreeBSD 和 NetBSD。
在适用的情况下,此角色参考系统文档,例如 yp(8)
手册页。
需求
操作
使用此角色不需要外部角色和/或模块。
测试与开发
对于测试和开发,此角色依赖以下角色和外部工具:
- 角色 vnode.ypserver
- Vagrant(支持 VirtualBox 或 VMWare 提供者)
- VagrantCloud(特别是
generic/openbsd6
盒子)
角色变量
可用的变量如下所列,包括默认值(请参见 defaults/main.yml
)。
所有这些 应该 被实现。如果发现没有,请在 GitHub 仓库中 提出问题。
必需变量
使用此角色时,以下变量需要设置。
ypclient_domain: ""
必需,必须有有效的 NIS 域名。这是您打算配置的 NIS 域的名称。
ypclient_servers: []
必需,必须列出该域的 NIS 服务器集合。
ypclient_serverinfo: {}
必需,但如果可以在 DNS 或 /etc/hosts
中找到该域的 NIS 服务器,可以为空。
如果不为空,则该字典列出该域服务器的 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"
可选变量
ypclient_usedns: true
指定 YP/NIS 映射可以使用 DNS 进行主机名查找。建议保持为 true
。如果设置为 false
,请确保正确设置 ypclient_serverinfo
和/或 ypclient_set_hosts
,以便您的 NIS 服务器可以解析。
ypclient_lookup_maps:
- name: 'passwd'
file: '/etc/master.passwd'
pattern: '+:*::::::::'
validate: 'pwd_mkdb -c %s'
notify: "regen master.passwd"
mode: '0600'
owner: 'root'
group: 'wheel'
- name: 'group'
file: '/etc/group'
pattern: '+:*::'
mode: '0644'
owner: 'root'
group: 'wheel'
该列表包含您希望在域中使用的查找映射及需要编辑的文件,以及模式。指定验证和处理程序是可选的。当然,映射也必须存在于 NIS 服务器上。有关支持的其他映射,请参见 Makefile.yp(8)
。
支持多个 YP/NIS 域的变量
此变量旨在允许在服务器上托管多个 NIS 域。这并不是原本的使用案例,因此如果发现问题,请将其作为 问题报告到 GitHub。
ypclient_set_domainname: true
建议保持为 true
,以便将其作为您的“主” (默认)域名。如果您希望保留另一个域作为默认域,则必须设置为 false
。
其他设置
这些变量在角色调用时不是必需的,默认值应该是合适的。
ypclient_set_hosts: false
如果设置为 true
,则角色会将 NIS 服务器的 IP 信息添加到 /etc/hosts
文件中。这在域不使用 DNS 查找时特别有用(ypclient_usedns
设置为 false
)。请注意,这要求在 ypclient_serverinfo
变量中为 每个 NIS 服务器提供 IP 信息。
内部变量
这些变量在角色内部使用,不打算供用户修改。自行更改需谨慎。通常,它们对应于底层操作系统上的硬编码值。
依赖关系
无。
示例剧本
以下是一个示例,创建一个简单的 YP/NIS 域客户端,该客户端连接到 ypservers
组中的主机。该域名为 legacy
。
---
- hosts: ypclients
roles:
- role: vnode.ypclient
vars:
ypclient_ypdomain: legacy
ypclient_servers: "{{ groups['ypservers'] }}"
许可证
MIT
作者信息
此角色由 Rogier Krieger 于 2020 年创建。