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

pipelining

布尔值

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

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

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

选项

  • false ← (默认)

  • 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 2.9 中添加了 ansible_psrp_reconnection_backoff 变量。

默认值: 2

配置

  • 变量:ansible_psrp_connection_backoff

  • 变量:ansible_psrp_reconnection_backoff

reconnection_retries

整数

Ansible 2.8 中添加

连接错误的重试次数。

默认: 0

配置

  • 变量:ansible_psrp_reconnection_retries

remote_addr

字符串

远程主机的 hostname 或 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 核心团队

提示

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