jborean93.win_laps

Ansible 角色 win_laps

构建状态 win_openssh Ansible Galaxy 角色

在 Windows 主机上安装和配置 本地管理员密码解决方案 应用程序。

可以用来执行以下操作:

  • 安装服务器端组件并添加所需的活动目录架构对象和权限
  • 创建一个 GPO,自动将 LAPS 配置推送到客户端
  • 安装客户端组件

该角色主要是一个概念验证,旨在简化集成 LAPS 的测试域的设置。虽然可以在真实环境中运行,但由于 LAPS 在活动目录中需要进行复杂的更改,请在触及生产环境之前进行测试。

要求

  • Windows Server 2012 R2 及以上版本

注意:此角色已在 Windows Server 2016 测试,其他版本应可正常使用,但不能保证

服务器端组件要求

使用该角色安装服务器端组件时,需要:

  • 作为 Schema Admin 域组的一部分的用户连接
  • 或通过 opt_laps_domain_usernameopt_laps_domain_password 变量指定一个属于 Schema Admin 域组的用户
  • 确保你以管理员身份连接到域控制器

GPO 配置要求

使用该角色配置 GPO 策略时,需要确保以有权限创建新 GPO 并将其链接到目标组织单位的用户连接。

客户端组件要求

安装客户端组件的唯一要求是成为主机的管理员。

变量

必填变量

opt_laps_install_serveropt_laps_configure_gpoTrue 时,以下变量是必填的:

  • man_laps_ou_containers:要与 LAPS 安装配置的组织单位列表。这将根据需要在活动目录中应用适当的权限,并链接新创建的 LAPS GPO(例如:OU=Workstations,DC=domain,DC=local)。

可选变量

以下变量为可选:

  • opt_laps_admin_account:更改要使用 LAPS 管理的管理员帐户名称,默认使用 BUILTIN\Administrator 帐户
  • opt_laps_configure_gpo:设置为 True 并且 opt_laps_install_serverTrue 时,将创建一个 GPO 来强制应用 LAPS 配置,并将其链接到 man_laps_out_containers(默认:False
  • opt_laps_install_client:设置为 True 时,将安装客户端组件(默认:False
  • opt_laps_install_powershell:设置为 True 时,将安装 LAPS PowerShell 模块 AdmPwd.PS(默认:False
  • opt_laps_install_server:设置为 True 时,将安装和配置服务器端组件以及活动目录配置(默认:False
  • opt_laps_install_ui:设置为 True 时,将安装 LAPS UI 应用程序(默认:False
  • opt_laps_install_source:要安装的 LAPS msu 的路径或 URL,默认使用微软的下载 URL
  • opt_laps_product_id:指定用于幂等性检查的 LAPS 安装程序唯一产品 ID,默认情况下,如果 %ProgramFiles%\LAPS 已存在,则会跳过安装程序
  • opt_laps_skip_reboot:设置为 True 时,如果 LAPS 安装需要重启,则不重启主机;如果跳过重启,则将设置 out_laps_reboot_required(默认:False

以下可选变量可用于控制服务器配置:

  • opt_laps_domain_server:指定要向其添加 LAPS 配置的目标域控制器,默认使用 localhost
  • opt_laps_domain_username:覆盖用于配置活动目录的连接用户,该帐户应是 Schema Admins 组的成员
  • opt_laps_domain_passwordopt_laps_domain_username 的密码

以下可选变量可用于控制 GPO 配置:

  • opt_laps_enforce_password_expiry:对应于 “不允许密码过期时间长于政策要求” 的政策
  • opt_laps_gpo_name:包含 LAPS 配置的组策略对象名称
  • opt_laps_password_policy_age:密码最大有效天数(默认:30
  • opt_laps_password_policy_complexity:密码复杂性政策,可以是以下之一:
    • uppercase
    • uppercase,lowercase
    • uppercase,lowercase,digits
    • uppercase,lowercase,digits,symbols 默认
  • opt_laps_password_policy_length:生成的密码长度(默认:14

输出变量

  • out_laps_reboot_required:当 opt_laps_skip_rebootTrue 且需要重启以完成安装时,将设置为 True

角色依赖

示例剧本

- name: 安装带 UI  LAPS 客户端
  hosts: windows
  gather_facts: no
  roles:
  - role: jborean93.win_laps
    opt_laps_install_client: True
    opt_laps_install_ui: True

- name: 安装 LAPS 服务器并对 1  OU 进行配置
  hosts: windows
  gather_facts: no
  roles:
  - role: jborean93.win_laps
    man_laps_ou_containers:
    - OU=Workstations,DC=domain,DC=local
    - OU=Accounting,DC=domain,DC=local
    opt_laps_install_server: True

- name: 安装 LAPS 服务器并创建 GPO
  hosts: windows
  gather_facts: no
  roles:
  - role: jborean93.win_laps
    man_laps_ou_containers:
    - OU=Workstations,DC=domain,DC=local
    opt_laps_install_server: True
    opt_laps_configure_gpo: True

一旦运行了该角色,win_ad_dacl 模块和其他模块将可在 Ansible 路径中使用。此模块可用于为其他账户应用读取/写入密码和过期属性的访问权限。默认情况下,只有域管理员或实际计算机帐户可以修改这些值。要向 DACL 添加新用户或组,可以运行类似以下任务:

- name: 添加用户对密码属性的读取权限
  win_ad_dacl:
    # 最好使用 OU 的完整区别名称
    path: OU=Workstations,DC=ansible,DC=laps
    state: present
    # ACEs 包含要应用的权限列表
    aces:
    # 为密码属性添加读取权限
    - rights: ReadProperty
      inheritance_type: Descendents
      inherited_object_type: Computer
      object_type: ms-Mcs-AdmPwd
      access: allow
      account: ANSIBLE\PasswordUsers
    # 为密码过期属性添加读取和写入权限
    - rights: ReadProperty, WriteProperty
      inheritance_type: Descendents
      inherited_object_type: Computer
      object_type: ms-Mcs-AdmPwdExpirationTime
      access: allow
      account: ANSIBLE\ExpiryUsers

有关更多详细信息,请参见 library/win_ad_dacl.py

library 目录中的模块在每个角色版本中不保证保持不变。在升级角色版本之前,请务必阅读变更日志以了解这些模块的任何更改。

测试

此角色依赖于已设置的域,并在两台不同的主机上运行。这在免费 CI 环境中很难设置,因此唯一的测试将通过本地的 Vagrant 进行。要测试该角色,请执行以下操作:

pip install pypsrp

cd tests
vagrant up
ansible-playbook -i inventory.ini main.yml -vvv

根据 Vagrant box 是否已经下载,这些步骤可能需要一些时间。当前的测试套件只是将在域控制器上安装服务器组件,并在另一台服务器上安装客户端 CSE,以确保我们可以检索密码。

待办事项

  • 添加可选参数以控制每个 AD 属性的 SACL(审核) 欢迎任何功能请求。
关于项目

Install LAPS on a Windows host

安装
ansible-galaxy install jborean93.win_laps
许可证
mit
下载
1.4k
拥有者