使用 Ansible 远程部署 Windows 用户 ID 代理

使用 Ansible 远程部署 Windows 用户 ID 代理

30301
Created On 09/25/18 18:09 PM - Last Modified 06/02/23 08:29 AM


Resolution


Ansible 是一种配置管理工具, 通常用于在 IT 基础结构中强制执行服务器的状态. 它用于确保服务器确实处于与您希望的相同的状态。它确保了正确的软件包的安装, 正确的配置文件到位, 正确的服务运行与正确的权限..。 

 

管理员用简单的语言 (YAML) 编写规则, 格式为剧本.  Ansible 工作通过连接到您的节点和推出小程序, 称为 "Ansible 模块" 给他们. 更多关于如何 Ansible 工作的详细信息可以这里找到

 

管理员可以使用Windows Ansible 模块(http://docs.ansible.com/ansible/latest/list_of_windows_modules.html) 并远程安装和管理用户 ID 代理 (帕洛阿尔托网络管理指南)

 

默认情况下, Ansible 使用 SSH 管理 Linux。要管理 Windows, 使用 PowerShell 远程处理。对于 ansible 管理 Windows 计算机, ansible 站点中记录的步骤需要遵循

 

参考:http://docs.ansible.com/ansible/latest/intro_windows.html  

 

以下步骤展示了一些 Windows Ansible 模块, 用于编写 Ansible 脚本以远程部署用户 ID 代理.

  

Ansible 同时对基础结构中的多个系统进行工作。它通过选择 Ansible 清单中列出的部分系统来做到这一点, 默认情况下保存在位置 /等/Ansible/主机 中。

 

例如, 我在标记 (windows) 下定义了一个用户 ID 代理服务器 (uid1.palab.local)

 

windows
uid1.palab.local

 

下面的模块在 Windows 服务器上安装用户 ID 代理。win_package 模块的详细信息可以在这里 找到

在下面的示例中, 将在网络共享上承载用户 ID 代理安装程序 (*. msi).  

 

-主机: windows
任务:
-名称: 安装 UID
win_package:
路径: \n DC1 \ 用户 \ 管理员 \ 下载 \ UaInstall-8.0. 7-2. msi
product_id: 用户 id 代理
状态: 当前
以 "\: PALAB \ 管理员
user_password: MySuperSecretPass                                      

 

下面的命令将执行该操作手册:

 

ansible-剧本-vvv install_uid yml 

 

Ansible 附带了一个称为 Ansible 保险库 (跳马链接) 的工具来加密机密. 这些秘密可以在任务中使用。

 

创建一个秘密. yml 文件。

 

---
mysecret: MySuperSecretPass 

 

加密机密. yml 文件

 

# ansible 加密秘密 yml
新的保险存储密码: EnterASuperSecretPass
确认新的保险存储密码: EnterASuperSecretPass

加密成功

 

机密. yml 文件的内容将被加密, 并将显示如下所示 (您的环境中的内容将有所不同)

 

猫的秘密. yml 

$ANSIBLE _vault; 1.1;AES256

63303662393262633865366536333531383362633838316462313739306431656130383730303036
6433623639316439313565393430333430643930623266350a353533666432613438626331396636
32326366386361363363383335333135386364346466636533353434323261373739363533626238
3635613765383762380a306439383961336261316432376266386338643765313064376264633535
35616534613264353739333564633534353230623630653762373632323766643838

 

在秘密定义的变量 (例如: mysecret). yml 现在可以在剧本中使用, 如下所示:

 

-主机: windows
任务:
-名称: 安装 UID
win_package:
路径: \n DC1 \ 用户 \ 管理员 \ 下载 \ UaInstall-8.0. 7-2. msi
product_id: 用户 id 代理
状态: 当前
以 "\: PALAB \ 管理员
user_password: "{{mysecret}}"                                      

 

要执行上述操作手册, 请输入 folllowing 命令:

 

root@kali:/等/ansibleansible--问-跳马-通行证 install_uid_vault. yml
保险存储密码: EnterASuperSecretPass

 

有关保险存储的详细信息, 请 参阅 http://docs.ansible.com/ansible/latest/playbooks_vault.html.

 

 

注意: 如果专用服务帐户用于用户 ID 代理, 则需要在 windows 服务器上执行其他步骤 (如将帐户权限分配给安装文件夹、修改用户 id 代理注册表权限...... 等). 请参阅管理指南以授予正确的权限。

 

以下 ansible 模块可用于更改远程用户 ID 代理服务器上的权限。在下面的示例中, 已为用户 ID 代理创建了一个服务帐户 (uidagent@palab), 以供使用。

 

-主机: windows
任务:
-名称: 设置文件夹的权限
win_acl:
路径: C:\Program 文件 (x86) \n 帕洛阿尔托网络
权限: FullControl
类型: 允许
状态: 当前
继承: ContainerInherit,ObjectInherit
传播: "无"
用户: uidagent@PALAB. 本地

名称: 设置注册表项右
win_acl:
路径: HKLM:\Software\Wow6432Node\Palo 中音网络
用户: uidagent@PALAB. 本地
权限: FullControl
类型:允许
状态: 当前
继承: ContainerInherit, ObjectInherit
传播: ' 无 '                                                                                                  

 

屏幕截图2018-03-21 在 10.28.46. png

 

使用服务帐户将登录设置为服务的模块 

 

-主机: windows
任务:
-名称: 将登录用户设置为域帐户
win_service:
名称: 用户 ID 代理
状态: 重新启动用户
名: uidagent@PALAB. 本地
密码: MySuperSecretUIDPass                                

 

屏幕截图2018-03-21 在 10.43.56. png

 

在部署其他用户 id 代理之前, 请配置一个 windows 服务器的用户 id (让我们称它为主窗口服务器)。我们将从主窗口服务器复制配置, 并将其部署到其他服务器上。 

 

按照步骤 (管理指南) 在主控 windows 服务器上配置用户 ID 代理. 配置完成后, "UserIDAgentConfig" 文件将写入用户 ID 安装文件夹。将 UserIDAgentConfig 文件复制到您的 ansible 控制器。如果要为用户 ID 代理指定自定义证书以对防火墙进行身份验证, 请选中 (可选) 部分。完成这些步骤后, 复制 "UserIDAgentConfig" 文件。

 

root@ansible:/等/ansible# cd 文件/

root@kali:/等/ansible/文件# ltr UserIDAgentConfig. xml
-cd-rw r-1 根根 4559 3月14日 12: 01 UserIDAgentConfig xml

 

(可选):

 

要验证防火墙和用户 id 代理之间的 SSL 连接, 管理员可以在用户 id 代理上上载自定义证书。 

 

要在防火墙和用户 ID 代理之间启用相互身份验证, 请在主控 Windows 服务器上执行以下步骤, 并使用该服务器上的配置并远程推送到其他服务器。

 

  1. 在主控 Windows 服务器上安装用户 ID 代理
  2. 执行相关的用户 ID 代理配置 
  3. 在该服务器上上载自定义证书。
  4. 保存配置
  5. 不提交配置
  6. UserIDAgentConfig从 Windows 服务器复制到 Ansible 控制器
  7. 如果必须以这种方式远程配置多个用户 id 代理, 请转到步骤 3, 然后上载相关的用户 id 代理证书。执行步骤4、5和6。

 

屏幕截图2018-03-21 在 10.57.45. png

 

屏幕截图2018-03-21 在 10.58.52. png

 

屏幕截图2018-03-21 在 11.00.40. png

 

屏幕截图2018-03-21 在 11.06.29. png

 

模块将"UserIDAgentConfig" 文件复制到远程服务器.

"win_copy" (link) 用于将配置文件复制到远程代理服务器上的用户 ID 代理安装文件夹. 例如, 您将使用命令 "ansible-vvv copy_uid_config. yml" 执行以下任务。

 

-主机: windows
任务:
-名称: 复制保存文件名的单个文件
win_copy:
src: UserIDAgentConfig. xml 任务
: C:\Program 文件 (x86) \n 帕洛阿尔托网络 \ 用户 ID 代理 \                    

 

用户 id 代理可以使用用于安装用户 id 的相同模块进行升级。只需更改安装程序文件

 

-主机: windows
任务:
-名称: 安装 UID
win_package:
路径: \n DC1 \ 用户 \ 管理员 \ 下载 \ UaInstall-8.1. 0-66. msi
product_id: 用户 id 代理
状态: 当前
以 "\: PALAB \ 管理员
user_password: MySuperSecretPass                                      

 

升级完成后, 需要重新启动用户 ID 代理服务。

 

使用 "win_service" 模块 (link), 我们可以重新启动用户 ID 代理服务.  

 

-主机: windows
任务:
-名称: 重新启动服务
win_service:
名称: 用户 ID 代理
状态: 已重新启动

 

在防火墙上, 您可以注意到已在 (设备 >> 用户标识 > 连接安全性) 下配置了连接安全性。在此步骤中, 防火墙将验证签名了用户 ID 代理的证书的 CA 证书。 

 

 

屏幕截图2018-03-20 在 1.24.49 PM. png

 

屏幕截图2018-03-21 在 11.32.10. png

 

杂项︰

 

"忽略用户" 列表定义了哪些用户帐户不需要 IP 地址到用户名映射 (例如, 亭帐户)。更多详细信息可在管理指南 中找到

 

在 ansible 控制器中创建忽略列表文件 (将文件命名为 ignore_user_list .txt)

 

root@ansible:/等/ansible# cat 文件/ignore_user_list .txt 

palab \ 管理员

 

将忽略列表发送到远程用户 ID 代理服务器。此文件将被复制到安装文件夹。"win_copy" Ansible Windows 模块将用于实现此任务。

 

-主机: windows
任务:
-名称: 复制单个文件保留文件名
win_copy:
src: ignore_user_list:
C:\Program 文件 (x86) \ 帕洛阿尔托网络 \ 用户 ID 代理 \                    

 

要使忽略列表生效, 必须重新启动用户 ID 代理服务。使用前面提供的食谱重新启动用户 ID 代理服务。 

 

在忽略列表的应用之前:

 

屏幕截图2018-03-21 在 11.39.40. png

 

应用忽略列表后:

 

屏幕截图2018-03-21 在 11.41.52. png

 

屏幕截图2018-03-21 在 11.41.37. png

 

 

使用上述指南时应自行承担风险: 所概述的步骤反映了我们在实验室环境中进行的安装。

结果和配置参数可能因您的环境而异, 应在生产部署前进行检查和测试。



Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000ClNyCAK&lang=zh_CN&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language