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 测试是使用 Dockerdocker_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)。

许可

BSD 3-Clause "新" 或 "修订" 许可证

作者信息

  • Timo Runge
关于项目

FreeIPA Identity Management Client provisioning.

安装
ansible-galaxy install timorunge.freeipa_client
许可证
bsd-3-clause
下载
12.1k
拥有者