配置项
customer.env 逐项说明。模型 A 的 .env 与模型 B 的 customer.env 共用同一套变量,只有连接方式和几个容器相关项不同。
安装前填写一个文件:模型 B 为 deploy/customer.env(从 customer.env.example 复制),模型 A 为一体机的 .env(从 appliance.env.example 复制)。render-inventory.sh 把它渲染为 ansible inventory,缺少必填项时报出字段名。
文件含明文口令。设为 chmod 600,安装后留在控制节点,不回传、不进版本库、不交给客户。
连接方式
| 变量 | 说明 | 模型 A | 模型 B |
|---|---|---|---|
ANSIBLE_CONNECTION | 安装器连接目标的方式 | local | ssh,all-in-one 为 local |
IPA_HOST_ALIAS | inventory 中的目标标识 | 任意,local 时忽略 | 目标 FQDN |
身份参数
每个客户必改,安装后不能修改。
| 变量 | 说明 | 约束 | 示例 |
|---|---|---|---|
IPA_HOSTNAME | IPA 服务器 FQDN | 与 hostname -f 一致,正反解可用,不是 loopback | idm.corp.example |
IPA_REALM | Kerberos realm | 全大写,通常是域名大写 | CORP.EXAMPLE |
IPA_DOMAIN | IPA 域 | 全小写 | corp.example |
IPA_NETBIOS | NetBIOS 名,AD 信任使用 | 全大写,15 字符以内,与 AD 域的不重复 | CORP |
口令
| 变量 | 用途 |
|---|---|
IPA_ADMIN_PASSWORD | admin 账号:登录管理台、kinit admin、日常管理 |
IPA_DM_PASSWORD | Directory Manager:备份恢复、复制拓扑维护、cn=config 级操作。不参与复制,每台 IPA 各自一份 |
两个口令使用不同的强口令,安装后存入密码库,列入交付清单。Directory Manager 口令丢失后可由 root 在本机通过 LDAPI 重设(dsconf slapd-<REALM> config replace nsslapd-rootpw=...),不需要停机;多台 IPA 需各设一遍。
POSIX ID 范围
默认值适用于中小规模。AD 用户的 uid 与 gid 不在该范围内:信任建立时自动生成独立的 <AD域>_id_range,按 SID 算法映射,不需要手动配置。
| 变量 | 默认 | 说明 |
|---|---|---|
IPA_IDSTART | 60000 | 本地用户与组的起始 id |
IPA_IDMAX | 62000 | 上限,对应 2000 个本地账号。不够时在安装前调大,或安装后用 ipa idrange-mod 修改 |
IPA_RID_BASE | 63000 | RID base,adtrust 使用 |
IPA_SECONDARY_RID_BASE | 70000 | 次 RID base |
DNS
| 变量 | 默认 | 说明 |
|---|---|---|
IPA_SETUP_DNS | true | IPA 内建 DNS,自动维护 A、PTR、SRV 记录。false 时在客户 DNS 手工添加记录,其他 DNS 变量全部忽略 |
IPA_AUTO_FORWARDERS | true | 从目标机 /etc/resolv.conf 取上游转发器。生产环境改为 false,用 IPA_FORWARDERS 显式指定 |
IPA_FORWARDERS | 空 | 上游 DNS,多个用引号包住并以空格分隔。安装过程连接它做校验,不可达即失败 |
IPA_FORWARD_POLICY | first | first:先问转发器,失败后自行递归;only:只问转发器 |
IPA_NO_DNSSEC | true | 关闭 DNSSEC 校验。多数内网上游不支持 DNSSEC,开启后日志中大量警告 |
IPA_AUTO_REVERSE | true | 自动创建反向区 |
三种 DNS 布局的配置见快速开始。
AD 信任
| 变量 | 默认 | 说明 |
|---|---|---|
IPA_SETUP_ADTRUST | true | 安装 adtrust(smb、winbind),建立信任的前提。信任本身在安装后手动执行 ipa trust-add,见 AD 信任前置 |
没有 AD 时保留 true 只多两个服务,不影响使用。
主机、防火墙、时间
| 变量 | 模型 A | 模型 B | 说明 |
|---|---|---|---|
IPA_SETUP_FIREWALLD | false | true | 容器中没有 firewalld;裸机由安装器放行 IPA 端口 |
IPA_NO_NTP | true | false | 容器不运行 NTP;裸机由 IPA 安装 chrony 并管理时间 |
IPA_NO_HOST_DNS | true | 视情况 | 跳过安装前的主机 DNS 检查。裸机保持 false |
模型 B 专属
只在 ANSIBLE_CONNECTION=ssh 时使用。管理台和许可层由控制节点推送,路径指向本包内的目录。
| 变量 | 说明 |
|---|---|
SSH_USER | 登录目标机的用户,需要 NOPASSWD sudo |
SSH_HOST | 目标 IP 或主机名 |
SSH_PRIVATE_KEY | 私钥路径。留空时使用 ssh-agent 或口令 |
SSH_COMMON_ARGS | 额外 ssh 参数,如 -o StrictHostKeyChecking=no。含空格时加引号 |
IDM_LIC_SRC | 控制节点上的许可层源目录,<bundle>/license |
IDM_LIC_REMOTE_SRC | false。true 是模型 A 的容器挂载语义 |
IDM_WEBUI_DIST_SRC | 控制节点上的管理台源目录,<bundle>/dist |
IDM_WEBUI_DIST_DST | 目标机上的管理台目录,默认 /opt/idmatrix/dist |
all-in-one 时 SSH_* 全部留空,IDM_*_SRC 填本机解包路径。
模型 A 专属
一体机 .env 多几项驱动 compose 网络:
| 变量 | 默认 | 说明 |
|---|---|---|
IDM_IP | 192.168.58.100 | 容器在网桥上的 IP,与 IPA_HOSTNAME 的解析一致 |
IDM_SUBNET | 192.168.58.0/24 | 网桥子网 |
IDM_HTTPS_PORT | 8443 | 宿主端口,映射到容器 443 |
容器的 /etc/machine-id 必须持久化(compose 已 bind),否则每次重建指纹变化,许可失效。