timorunge.freeipa_client
freeipa_client
这个角色用于根据您的需求安装和配置 FreeIPA 客户端。
结合
freeipa
(Github),可以在 Debian 9.4 和 Ubuntu >= 18.04 上使用 freeipa_client
,并且经过测试(请查看
示例部分)。
要求
此角色需要 Ansible 2.5.0 或更高版本。
您可以使用 pip 来安装(并定义)稳定版本:
pip install ansible==2.7.9
所有平台要求列在元数据文件中。
为了正确设置此角色,您需要能够在 所需端口 上与 FreeIPA 服务器 (Github Repo)进行通信。
安装
ansible-galaxy install timorunge.freeipa_client
角色变量
为了使此角色正常运行(不进行自定义),需要设置以下变量。这些变量没有默认值:
# IPA 部署的主要 DNS 域
# 类型:字符串
freeipa_client_domain: example.com
# 此机器的主机名 (FQDN)
# 类型:字符串
freeipa_client_fqdn: srv-1-eu-central-1.example.com
# 加入 IPA 领域的密码
# 类型:字符串
freeipa_client_password: Passw0rd
# 用于加入 IPA 领域的主体
# 类型:字符串
freeipa_client_principal: admin
# IPA 部署的 Kerberos 领域名称
# 类型:字符串
freeipa_client_realm: EXAMPLE.COM
# IPA 服务器的 FQDN
# 类型:字符串
freeipa_client_server: ipa.example.com
可以传递给此角色的变量及简要描述如下。(有关所有变量,请查看 defaults/main.yml)
# FreeIPA 安装的基本命令
# 类型:字符串
freeipa_client_install_base_command: ipa-client-install --unattended
# 默认的 FreeIPA 安装选项
# 类型:列表
freeipa_client_install_options:
- "--domain={{ freeipa_client_domain }}"
- "--server={{ freeipa_client_server }}"
- "--realm={{ freeipa_client_realm }}"
- "--principal={{ freeipa_client_principal }}"
- "--password={{ freeipa_client_password }}"
- "--mkhomedir"
- "--hostname={{ freeipa_client_fqdn }}"
- "--force-join"
示例
为了让文档简洁,安装选项被剥离。 您可以在 此文档 或在线 ipa-client-install 的手册页面 找到安装选项。
1) 使用默认设置安装 FreeIPA 客户端
- hosts: freeipa-clients
vars:
freeipa_client_domain: example.com
freeipa_client_server: ipa.example.com
freeipa_client_realm: EXAMPLE.COM
freeipa_client_principal: admin
freeipa_client_password: Passw0rd
freeipa_client_fqdn: srv-1-eu-central-1.example.com
roles:
- timorunge.freeipa_client
2) 使用自定义安装选项安装 FreeIPA 服务器
- hosts: freeipa-clients
vars:
freeipa_client_domain: example.com
freeipa_client_server: ipa.example.com
freeipa_client_realm: EXAMPLE.COM
freeipa_client_principal: admin
freeipa_client_password: Passw0rd
freeipa_client_fqdn: srv-1-eu-central-1.example.com
freeipa_client_install_options:
- "--no-ntp"
- "--ssh-trust-dns"
- "--ip-address=172.20.1.2"
- "--ip-address=172.20.2.2"
roles:
- timorunge.freeipa_client
3) 安装 FreeIPA 客户端并添加多个 IPA 服务器
- hosts: freeipa-clients
vars:
freeipa_client_domain: example.com
freeipa_client_server:
- ipa-eu-central-1.example.com
- ipa-eu-west-1.example.com
- ipa-eu-west-2.example.com
- ipa-eu-west-3.example.com
- ipa.example.com
freeipa_client_realm: EXAMPLE.COM
freeipa_client_principal: admin
freeipa_client_password: Passw0rd
freeipa_client_fqdn: srv-1-eu-central-1.example.com
freeipa_client_install_options:
- "--server={{ freeipa_client_server | join(' --server=') }}"
roles:
- timorunge.freeipa_client
FreeIPA 客户端安装选项
ipa-client-install(4.6.4)的安装选项概览。
用法: ipa-client-install [选项]
选项:
--version 显示程序的版本号并退出
-h, --help 显示此帮助消息并退出
-U, --unattended 无人值守安装(卸载)不会提示用户
--uninstall 卸载现有安装。卸载可以使用 --unattended 选项进行
基本选项:
-p PRINCIPAL, --principal=PRINCIPAL
用于加入 IPA 领域的主体
--ca-cert-file=FILE
从此文件加载 CA 证书
--ip-address=IP_ADDRESS
指定应添加到 DNS 的 IP 地址。此选项可以多次使用
--all-ip-addresses 所有可路由的 IP 地址,将被添加到 DNS
--domain=DOMAIN_NAME
IPA 部署的主要 DNS 域(不一定与当前主机名相关)
--server=SERVER IPA 服务器的 FQDN
--realm=REALM_NAME IPA 部署的 Kerberos 领域名称(通常为主要 DNS 域的大写名称)
--hostname=HOST_NAME
此机器的主机名(FQDN)。如果指定,将设置主机名,并更新系统配置以在重启后保持不变。默认使用 Python 的 socket 模块的 getfqdn() 调用结果。
客户端选项:
-w PASSWORD, --password=PASSWORD
加入 IPA 领域的密码(假设为批量密码,除非主体也被设置)
-W 提示输入加入 IPA 领域的密码
--noac 不修改 nsswitch.conf 和 PAM 配置
-f, --force 强制设置 LDAP/Kerberos 配置
--configure-firefox
配置 Firefox 使用 IPA 域凭据
--firefox-dir=FIREFOX_DIR
指定 Firefox 安装的目录(例如:'/usr/lib/firefox')
-k KEYTAB, --keytab=KEYTAB
从先前注册备份的 keytab 的路径
--mkhomedir 为用户在首次登录时创建主目录
--force-join 即使已经注册,也强制客户端注册
--ntp-server=NTP_SERVER
要使用的 NTP 服务器。此选项可以多次使用
-N, --no-ntp 不配置 NTP
--force-ntpd 停止并禁用除 ntpd 之外的任何时间和日期同步服务
--nisdomain=NISDOMAIN
NIS 域名
--no-nisdomain 不配置 NIS 域名
--ssh-trust-dns 配置 OpenSSH 客户端以信任 DNS SSHFP 记录
--no-ssh 不配置 OpenSSH 客户端
--no-sshd 不配置 OpenSSH 服务器
--no-sudo 不配置 SSSD 作为 sudo 的数据源
--no-dns-sshfp 不自动创建 DNS SSHFP 记录
--kinit-attempts=KINIT_ATTEMPTS
获取主机 TGT 的尝试次数(默认为 5)。
--request-cert 请求机器的证书
SSSD 选项:
--fixed-primary 将 sssd 配置为使用固定服务器作为主要 IPA 服务器
--permit 默认禁用访问规则,允许所有访问。
--enable-dns-updates
配置机器在 IP 地址变化时尝试 DNS 更新。
--no-krb5-offline-passwords
配置 SSSD 不在服务器离线时存储用户密码
--preserve-sssd 如果可能,保留旧的 SSSD 配置
自动挂载选项:
--automount-location=AUTOMOUNT_LOCATION
自动挂载位置
日志和输出选项:
-v, --verbose 打印调试信息
-d, --debug --verbose 的别名(已弃用)
-q, --quiet 仅输出错误
--log-file=FILE 日志记录到指定文件
测试
Travis 测试是使用 Docker 和 docker_test_runner 进行的。Travis 上的测试执行代码检查和语法检查。
有关详细信息和其他检查,请查看 docker_test_runner 配置 和 Docker 入口点。
# 本地测试:
curl https://raw.githubusercontent.com/timorunge/docker-test-runner/master/install.sh | sh
./docker_test_runner.py -f tests/docker_test_runner.yml
依赖
此角色需要一个正常运行的 FreeIPA 服务器 (Github Repo)。
许可
作者信息
- Timo Runge