尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

如何快速为 Proxmox 对接 AD/LDAP 认证:ansible-role-proxmox 的 realms 配置与用户自动同步指南

如何快速为 Proxmox 对接 AD/LDAP 认证:ansible-role-proxmox 的 realms 配置与用户自动同步指南 如何快速为 Proxmox 对接 AD/LDAP 认证ansible-role-proxmox 的 realms 配置与用户自动同步指南【免费下载链接】ansible-role-proxmoxIaC for Proxmox VE clusters.项目地址: https://gitcode.com/gh_mirrors/an/ansible-role-proxmox在 Proxmox VE 集群中对接 AD/LDAP 认证通常要手工编辑/etc/pve/domains.cfg、配置域控绑定账号、再手动执行同步命令多台节点极易出现配置漂移。ansible-role-proxmox是一个用 Ansible 管理 Proxmox VE 集群的 IaC基础设施即代码角色它通过pve_domains_cfg变量声明式地配置 AD/LDAP realms认证域并能自动同步域中的用户和组让集群认证配置像代码一样可版本化、可复现。先搞懂Proxmox 的 realms认证域是什么Proxmox 的登录身份由用户名realm组成例如rootpam、adminpve。默认只有两个内置 realmrealm说明pamLinux PAM走本机操作系统账号pveProxmox VE 自带的认证服务用户存于集群内要对接企业目录则通过/etc/pve/domains.cfg增加以下类型adMicrosoft Active Directory 域认证ldap标准 LDAP 目录认证pam/pve内置类型也可显式声明以控制顺序与默认 realm其中ad和ldap两类 realm 支持用户与组的自动同步——这是本角色最实用的能力之一。一键安装把角色装到你的 Ansible 控制节点如果尚未获取本角色可先克隆仓库git clone https://gitcode.com/gh_mirrors/an/ansible-role-proxmox然后在 Playbook 中引用- hosts: pve become: true roles: - role: ansible-role-proxmox vars: pve_group: pve该角色会负责安装 Proxmox 软件源、安装包以及本文重点——配置认证域与同步用户。核心默认变量声明在 defaults/main.yml 中其中pve_domains_cfg: []就是 realms 配置的入口。配置 AD 域一个 realm 声明搞定在变量文件中按如下方式声明来自 README.md 官方示例已精简pve_domains_cfg: - name: pam type: pam attributes: comment: Linux PAM standard authentication - name: pve type: pve attributes: comment: Proxmox VE authentication server - name: ad type: ad attributes: comment: Active Directory authentication domain: yourdomain.com server1: dc01.yourdomain.com server2: dc02.yourdomain.com # 域控冗余 secure: 1 # 使用加密连接 default: 1 # 标记为默认登录 realm几个关键点default: 1表示该 realm 为默认认证域用户登录时可以省略realm后缀server1/server2可配置两台域控实现高可用secure: 1强制加密连接企业环境强烈建议开启配置 LDAP 并开启用户自动同步LDAP realm 比 AD 多几个必填属性同时可以打开sync开关pve_domains_cfg: - name: ldap type: ldap sync: true sync_extra_opts: --remove-vanished entry --scope both attributes: comment: LDAP authentication base_dn: CNUsers,dcyourdomain,dccom bind_dn: uidsvc-reader,CNUsers,dcyourdomain,dccom bind_password: {{ secret_ldap_svc_reader_password }} user_attr: uid secure: 1 server1: ldap1.yourdomain.com server2: ldap2.yourdomain.com逐项说明base_dn同步与搜索的起始节点bind_dn/bind_password拥有只读权限的 LDAP 服务账号建议用 Ansible Vault 加密密码变量user_attrLDAP 中代表用户名的属性常见为uid或sAMAccountNamesync: true开启后每次运行 Playbook 都会自动把域中的用户、组同步进 Proxmoxsync_extra_opts追加给同步命令的额外参数例如--remove-vanished entry可清理已离职账号自动同步到底做了什么同步逻辑位于 tasks/realms_sync.yml流程非常清晰记录同步前的用户与组列表pveum user list/pveum group list执行pveum realm sync realm名把域目录中的人员拉取进 Proxmox再次记录同步后的状态并逐条对比差异在运行日志中以 diff 形式展示本次新增、删除了哪些账号这意味着你不需要人肉核对同步成功没有——日志会直接告诉你变更内容。realm 本身的写入逻辑在 tasks/realms_config.yml。安全细节绑定密码不会写进 domains.cfg很多管理员不知道domains.cfg中不能存放 LDAP 绑定密码否则文件需要被所有 PVE 进程可读密码会泄露给本机任何用户。本角色的处理方式是生成domains.cfg时自动跳过bind_password字段将密码单独写入/etc/pve/priv/realm/realm名.pw该目录权限0700、文件权限0600仅 root 可读写这一细节让 realm 配置既符合 Proxmox 的安全模型又保持了 Ansible 的声明式管理——你只需在变量中维护密码其余交给角色。同步之后用组与 ACL 快速授权同步只是第一步让同步进来的域用户能用还需要权限。本角色配套提供pve_groups定义 Proxmox 组把域用户挂入组中pve_acls基于角色的访问控制列表给组授予对节点、数据池等路径的权限pve_users管理单个用户模块实现见 library/proxmox_user.py可设置组、邮箱、过期时间等典型组合拳同步域用户 → 用户加入DomainUsers组 → 给该组授予Pool路径的PVEVMAdmin角色整条链路全部由 Playbook 一条命令完成。常见问题与注意事项集群中只在首节点执行realms 配置与同步仅在集群第一台节点上运行其余节点通过集群复制共享配置无需逐台操作同步账号要有读权限bind_dn对应的域账号必须能读取用户/组条目只读账号即可AD 同步依赖域控可达确保节点与域控之间的网络、DNS 解析正常secure: 1时还要放行 LDAPS 端口pve_no_log默认开启角色默认不打印敏感配置内容调试时可按需调整总结能力关键变量 / 文件声明 AD/LDAP realmpve_domains_cfgtasks/realms_config.yml绑定密码安全落盘/etc/pve/priv/realm/name.pw自动处理用户与组自动同步sync: truesync_extra_optstasks/realms_sync.yml同步结果可视化前后状态对比diff 输出到日志配套授权管理pve_groups/pve_acls/pve_users把 AD/LDAP 对接从手工改配置 记得去同步变成改变量 跑一遍 Playbook这正是 ansible-role-proxmox 用 IaC 思路管理 Proxmox 认证体系的价值所在 【免费下载链接】ansible-role-proxmoxIaC for Proxmox VE clusters.项目地址: https://gitcode.com/gh_mirrors/an/ansible-role-proxmox创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表