ansible.builtin.psrp 连接 – 通过 Microsoft PowerShell 远程协议运行任务

注意

此连接插件是 ansible-core 的一部分,包含在所有 Ansible 安装中。在大多数情况下,您可以使用简短的插件名称 psrp。但是,我们建议您使用 完全限定的集合名称 (FQCN) ansible.builtin.psrp,以便轻松链接到插件文档并避免与可能具有相同连接插件名称的其他集合发生冲突。

Ansible 2.7 中的新功能

概述

  • 通过 PSRP(WinRM 插件)在目标上运行命令或执行放置/获取操作

  • 这类似于 ansible.builtin.winrm 连接插件,该插件使用相同的底层传输,但会在 PowerShell 解释器中运行。

要求

以下要求在执行此连接的本地控制器节点上是必需的。

  • pypsrp>=0.4.0, <1.0.0(Python 库)

参数

参数

注释

auth

字符串

在对远程用户进行身份验证时要使用的身份验证协议。

默认值,negotiate,将尝试使用 Kerberos (kerberos)(如果可用),如果不可用则回退到 NTLM (ntlm)。

选择

  • "basic"

  • "certificate"

  • "negotiate" ← (default)

  • "kerberos"

  • "ntlm"

  • "credssp"

配置

  • 变量:ansible_psrp_auth

ca_cert

别名:cert_trust_path

路径

在验证服务器证书时要使用的 PEM 证书链的路径。

如果 cert_validation 设置为 ignore,则忽略此值。

配置

  • 变量:ansible_psrp_cert_trust_path

  • 变量:ansible_psrp_ca_cert

cert_validation

字符串

是否验证远程服务器的证书。

设置为 ignore 表示不验证任何证书。

ca_cert 可以设置为 PEM 证书链的路径,在验证中使用该路径。

选择

  • "validate" ← (default)

  • "ignore"

配置

  • 变量:ansible_psrp_cert_validation

certificate_key_pem

路径

要与证书身份验证一起使用的 X509 证书密钥的本地路径。

配置

  • 变量:ansible_psrp_certificate_key_pem

certificate_pem

路径

要与证书身份验证一起使用的 X509 证书的本地路径。

配置

  • 变量:ansible_psrp_certificate_pem

configuration_name

字符串

要连接到的 PowerShell 配置端点的名称。

默认值: "Microsoft.PowerShell"

配置

  • 变量:ansible_psrp_configuration_name

connection_timeout

整数

对远程主机发出请求的连接超时时间。

以秒为单位。

默认值: 30

配置

  • 变量:ansible_psrp_connection_timeout

credssp_auth_mechanism

字符串

要与 CredSSP 身份验证一起使用的子身份验证机制。

当为 auto 时,将尝试 Kerberos 和 NTLM,优先使用 Kerberos。

选择

  • "auto" ← (default)

  • "kerberos"

  • "ntlm"

配置

  • 变量:ansible_psrp_credssp_auth_mechanism

credssp_disable_tlsv1_2

布尔值

禁用在 CredSSP 身份验证通道上使用 TLSv1.2。

除非处理不支持 TLSv1.2 的主机,否则不应将其设置为 yes

选择

  • false ← (default)

  • true

配置

  • 变量:ansible_psrp_credssp_disable_tlsv1_2

credssp_minimum_version

整数

将接受的最小 CredSSP 服务器身份验证版本。

设置为 5 以确保服务器已修补且不受 CVE 2018-0886 的影响。

默认值: 2

配置

  • 变量:ansible_psrp_credssp_minimum_version

ignore_proxy

布尔值

将禁用任何环境代理设置,并直接连接到远程主机。

如果 proxy 设置,则忽略此选项。

选择

  • false ← (default)

  • true

配置

  • 变量:ansible_psrp_ignore_proxy

max_envelope_size

整数

设置发送到远程主机的每个 WSMan 消息的最大大小。

以字节为单位。

默认值为 150KiB,以确保与旧主机兼容。

默认值: 153600

配置

  • 变量:ansible_psrp_max_envelope_size

message_encryption

字符串

控制消息加密设置,这与 protocolhttps 时的 TLS 加密不同。

只有身份验证协议 negotiatekerberosntlmcredssp 可以进行消息加密。其他身份验证协议仅在 protocol 设置为 https 时支持加密。

auto 表示仅在不使用 TLS/HTTPS 时才使用消息加密。

alwaysauto 相同,但即使在通过 TLS/HTTPS 运行时,也会始终使用消息加密。

never 禁用在通过 HTTP 运行时生效的任何加密检查,并禁用任何身份验证加密过程。

选择

  • "auto" ← (default)

  • "always"

  • "never"

配置

  • 变量:ansible_psrp_message_encryption

negotiate_delegate

布尔值

允许远程用户将凭据委派给另一台服务器,即凭据委派。

仅在 Kerberos 是协商的身份验证或显式设置为身份验证时才有效。

在 NTLM 是协商的身份验证时被忽略。

选择

  • false

  • true

配置

  • 变量:ansible_psrp_negotiate_delegate

negotiate_hostname_override

字符串

在 Kerberos 查找中搜索主机时,覆盖远程主机名。

这允许 Ansible 通过 IP 连接,但使用远程服务器的 DNS 名称进行身份验证。

仅在 Kerberos 是协商的身份验证或显式设置为身份验证时才有效。

在 NTLM 是协商的身份验证时被忽略。

配置

  • 变量:ansible_psrp_negotiate_hostname_override

negotiate_send_cbt

布尔值

在进行身份验证时发送通道绑定令牌 (CBT) 结构。

CBT 用于通过将外部传输通道绑定到身份验证通道来提供针对中间人攻击 (MitM) 的额外保护。

当仅使用 HTTP 时,不使用 CBT,仅使用 HTTPS

选择

  • false

  • true ← (默认)

配置

  • 变量: ansible_psrp_negotiate_send_cbt

negotiate_service

字符串

覆盖 Kerberos 身份验证期间使用的 SPN 的服务部分。

仅在 Kerberos 是协商的身份验证或显式设置为身份验证时才有效。

在 NTLM 是协商的身份验证时被忽略。

默认: "WSMAN"

配置

  • 变量: ansible_psrp_negotiate_service

operation_timeout

整数

设置每个操作的 WSMan 超时。

以秒为单位。

这应该不超过 connection_timeout 的值。

默认: 20

配置

  • 变量: ansible_psrp_operation_timeout

路径

字符串

要连接到的 URI 路径。

默认: "wsman"

配置

  • 变量: ansible_psrp_path

pipelining

布尔值

流水线操作减少了在远程服务器上执行模块所需的连接操作数量,通过执行许多 Ansible 模块而无需实际文件传输。

启用后,这可能会导致性能大幅提升。

但是,这可能会与权限提升 (become) 冲突。例如,使用 sudo 操作时,必须先在目标主机的 sudoers 文件中禁用 requiretty,这就是此功能默认情况下禁用的原因。

选择

  • false ← (default)

  • true

配置

  • INI 条目

    [defaults]
    pipelining = false
    
    [connection]
    pipelining = false
    
  • 环境变量: ANSIBLE_PIPELINING

  • 变量: ansible_pipelining

port

整数

PSRP 在远程目标上连接的端口。

如果 protocol 未定义或为 https,则默认为 5986,否则端口为 5985

配置

  • 变量: ansible_port

  • 变量: ansible_psrp_port

  • 关键词: port

protocol

字符串

设置连接使用的协议。

如果 port 未定义或 port 不是 5985,则默认为 https

选择

  • "http"

  • "https"

配置

  • 变量: ansible_psrp_protocol

proxy

字符串

设置连接到远程主机时使用的代理 URL。

配置

  • 变量: ansible_psrp_proxy

read_timeout

整数

在 Ansible 2.8 中添加

从远程主机接收数据的读取超时。

此值必须始终大于 operation_timeout

此选项需要 pypsrp >= 0.3。

以秒为单位。

默认值: 30

配置

  • 变量: ansible_psrp_read_timeout

reconnection_backoff

整数

在 Ansible 2.8 中添加

重新连接尝试之间使用的回退时间。(第一次休眠 X,然后休眠 2*X,然后休眠 4*X,……)

以秒为单位。

变量 ansible_psrp_reconnection_backoff 是在 Ansible 2.9 中添加的。

默认值: 2

配置

  • 变量: ansible_psrp_connection_backoff

  • 变量: ansible_psrp_reconnection_backoff

reconnection_retries

整数

在 Ansible 2.8 中添加

连接错误的重试次数。

默认: 0

配置

  • 变量: ansible_psrp_reconnection_retries

remote_addr

字符串

远程主机的主机名或 IP 地址。

默认: "inventory_hostname"

配置

  • 变量: inventory_hostname

  • 变量: ansible_host

  • 变量: ansible_psrp_host

remote_password

别名: password

字符串

用于 remote_user 的身份验证密码。可以作为 CLI 选项提供。

配置

  • 变量: ansible_password

  • 变量: ansible_winrm_pass

  • 变量: ansible_winrm_password

remote_user

字符串

要登录的用户。

配置

  • 变量: ansible_user

  • 变量: ansible_psrp_user

  • 关键词: remote_user

作者

  • Ansible 核心团队

提示

每种条目类型的配置条目具有从低到高的优先级顺序。例如,列表中较低的变量将覆盖列表中较高的变量。