vnode.ypclient

Ansible 角色:ypclient

CI

此角色安装并配置 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)

以下示例列出了双栈网络中 masterslave 服务器的地址。

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 年创建。

关于项目

Install and configure a YP/NIS client

安装
ansible-galaxy install vnode.ypclient
许可证
mit
下载
143
拥有者