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

注意

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

Ansible 2.7 新增功能

概要

  • 通过 PSRP (WinRM 插件) 在目标上运行命令或执行 put/fetch 操作

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

需求

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

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

参数

参数

注释

auth

字符串

用于对远程用户进行身份验证的身份验证协议。

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

选项

  • "basic"

  • "certificate"

  • "negotiate" ← (默认)

  • "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" ← (默认)

  • "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" ← (默认)

  • "kerberos"

  • "ntlm"

配置

  • 变量:ansible_psrp_credssp_auth_mechanism

credssp_disable_tlsv1_2

布尔值

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

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

选项

  • false ← (默认)

  • 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 ← (默认)

  • true

配置

  • 变量:ansible_psrp_ignore_proxy

max_envelope_size

整数

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

以字节为单位。

默认为 150KiB,以与较旧的主机兼容。

默认值: 153600

配置

  • 变量:ansible_psrp_max_envelope_size

message_encryption

字符串

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

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

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

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

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

选项

  • "auto" ← (默认)

  • "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 攻击的额外保护。

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

选项

  • 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

流水线

布尔值

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

启用此功能可以显著提高性能。

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

选项

  • false ← (默认)

  • true

配置

  • INI条目

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

  • 变量:ansible_pipelining

端口

整数

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

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

配置

  • 变量:ansible_port

  • 变量:ansible_psrp_port

  • 关键字:port

协议

字符串

设置用于连接的协议。

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

选项

  • "http"

  • "https"

配置

  • 变量:ansible_psrp_protocol

代理

字符串

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

配置

  • 变量:ansible_psrp_proxy

读取超时

整数

Ansible 2.8中添加

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

此值必须始终大于operation_timeout

此选项需要pypsrp >= 0.3。

以秒为单位。

默认值: 30

配置

  • 变量:ansible_psrp_read_timeout

重连回退

整数

Ansible 2.8中添加

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

以秒为单位。

Ansible 2.9中添加了ansible_psrp_reconnection_backoff变量。

默认值: 2

配置

  • 变量:ansible_psrp_connection_backoff

  • 变量:ansible_psrp_reconnection_backoff

重连重试次数

整数

Ansible 2.8中添加

连接错误的重试次数。

默认值: 0

配置

  • 变量:ansible_psrp_reconnection_retries

远程地址

字符串

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

默认值: "inventory_hostname"

配置

  • 变量:inventory_hostname

  • 变量:ansible_host

  • 变量:ansible_psrp_host

远程密码

别名:password

字符串

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

配置

  • 变量:ansible_password

  • 变量:ansible_winrm_pass

  • 变量:ansible_winrm_password

远程用户

字符串

要登录的用户。

配置

  • 变量:ansible_user

  • 变量:ansible_psrp_user

  • 关键字:remote_user

作者

  • Ansible核心团队

提示

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