caseraw.ansible_role_ad_membership
Ansible 角色 AD 成员资格
管理与 Windows AD 的托管主机的成员资格。
许可证
MIT / BSD
作者信息
- 制作和维护者:Kasra Amirsarvari
- Ansible Galaxy 社区作者:https://galaxy.ansible.com/caseraw
- Dockerhub 社区用户:https://hub.docker.com/u/caseraw
要求
- 确保可用的包管理器已经配置正确的包源和仓库。
- 确保执行此角色的用户具有以下特权权限:
- 安装和卸载软件。
- 编辑文件,如
/etc/krb5.conf
和/etc/sssd/sssd.conf
。 - 管理
systemd
服务,包括realmd
、sssd
和addjobd
。
- 确保能访问 Windows 域控制器的网络流量。
依赖性
无
兼容性
与以下操作系统兼容:
- CentOS 7
- CentOS 8
- RHEL 7.x
- RHEL 8.x
角色变量
变量名 | 描述 |
---|---|
role_ad_membership_sa_username | AD 的服务账号用户名(加密)。 |
role_ad_membership_sa_password | AD 的服务账号密码(加密)。 |
role_ad_membership_required_packages | 需要安装的包列表。 |
role_ad_membership_use_discovered_domain_controller | 是否使用基于域发现的 AD 控制器。 |
role_ad_membership_ad_controller_random_selection | 是否随机选择 AD 控制器或只选择列表中的第一个。 |
role_ad_membership_ad_controllers | AD 控制器的列表。 |
role_ad_membership_computer_ou | 要放置计算机对象的 AD 组织单位。 |
role_ad_membership_ou_user_search_base | 搜索用户的 AD 组织单位。 |
role_ad_membership_netbios_max_length | Netbios 主机名检查的最大字符长度。 |
role_ad_membership_leave_ad | 是否离开 AD 并从 OU 中删除计算机对象。 |
role_ad_membership_allowed_group_list | 其他以 role_ad_membership_allowed_group_list_ 开头的列表的组合列表。 |
role_ad_membership_allowed_group_list_default | 默认允许的组列表。 |
role_ad_membership_molecule_dummy | 绕过整个合并剧本的虚拟开关。 |
示例剧本
---
- name: 管理与 Windows AD 的托管主机的成员资格
become: True
gather_facts: True
vars_files:
- /path/to/vault/file.yml
tasks:
- import_role:
name: ansible_role_ad_membership
vars:
role_ad_membership_required_packages:
- openldap-clients
- krb5-workstation
- krb5-libs
- adcli
- realmd
- authconfig
- samba-client
- samba-common
- samba-common-tools
- sssd
- sssd-ad
- sssd-krb5
- oddjob
- oddjob-mkhomedir
role_ad_membership_use_global_domain_controller: False
role_ad_membership_ad_controller_random_selection: False
role_ad_membership_ad_controllers:
- ad1.example.com
- ad2.example.com
role_ad_membership_computer_ou: OU=Servers,DC=example,DC=com
role_ad_membership_netbios_max_length: 15
role_ad_membership_leave_ad: False
role_ad_membership_allowed_group_list_default:
- Special-Group-01
- super_special_group_01
role_ad_membership_allowed_group_list_something:
- Special-Group-02
- super_special_group_02
role_ad_membership_allowed_group_list_something_else:
- Special-Group-03
- super_special_group_03
...
有用的 Shell 命令
发现 AD 控制器和域特定信息。
dig -t SRV _ldap._tcp.ad.example.com
dig -t SRV _ldap._tcp.dc._msdcs.ad.example.com
其他文档资源
以下链接提供有关 sssd 及其使用的更多信息。
使用 Molecule 进行测试
此角色使用 Molecule 在本地进行测试,配置位于:molecule/default。
使用 Docker 驱动 运行 Molecule 测试,基于为此目的构建的 Dockerhub 镜像:
某些特定配置可能需要完整的操作系统,而不是最小的容器镜像。在这些用例中,请使用 molecule vagrant 驱动 结合 libvirt 提供者。Molecule 驱动和平台配置部分可能如下所示:
driver:
name: vagrant
provider:
name: libvirt
platforms:
- name: ansible_role_ad_membership-ansible-molecule-centos-7
box: centos/7
imemory: 1024
cpus: 1
使用 Travis CI 的 CI/CD
此角色使用 Travis CI 在线运行测试,借助 Molecule,并在测试成功后推送通知以将角色导入 Ansible Galaxy。Travis CI 配置位于 Ansible 角色的根目录 .travis.yml
有用的链接
- GitHub 仓库:https://github.com/Caseraw/ansible_role_ad_membership
- Travis CI 构建状态:https://travis-ci.org/Caseraw/ansible_role_ad_membership
- Ansible Galaxy 角色:https://galaxy.ansible.com/caseraw/ansible_role_ad_membership