airflow.providers.microsoft.winrm.hooks.winrm

用于 winrm 远程执行的 Hook。

WinRMHook

使用 pywinrm 进行 winrm 远程执行的 Hook。

模块内容

class airflow.providers.microsoft.winrm.hooks.winrm.WinRMHook(ssh_conn_id=None, endpoint=None, remote_host=None, remote_port=5985, transport='plaintext', username=None, password=None, service='HTTP', keytab=None, ca_trust_path=None, cert_pem=None, cert_key_pem=None, server_cert_validation='validate', kerberos_delegation=False, read_timeout_sec=30, operation_timeout_sec=20, kerberos_hostname_override=None, message_encryption='auto', credssp_disable_tlsv1_2=False, send_cbt=True)[source]

继承自: airflow.hooks.base.BaseHook

使用 pywinrm 进行 winrm 远程执行的 Hook。

另请参阅:

https://github.com/diyan/pywinrm/blob/master/winrm/protocol.py

参数:
  • ssh_conn_id (str | None) – 来自 airflow Connections 的连接 ID,从中可以获取所有必需参数,例如用户名和密码,不过优先级高于 init 期间传递的参数。

  • endpoint (str | None) – 如果未设置,端点将按如下方式构建:'http://{remote_host}:{remote_port}/wsman'

  • remote_host (str | None) – 要连接的远程主机。如果设置了 endpoint,则忽略。

  • remote_port (int) – 要连接的远程端口。如果设置了 endpoint,则忽略。

  • transport (str) – 传输类型,可选项包括 'plaintext' (默认)、'kerberos'、'ssl'、'ntlm'、'credssp'。

  • username (str | None) – 连接到远程主机的用户名。

  • password (str | None) – 连接到远程主机的用户密码。

  • service (str) – 服务名称,默认为 HTTP。

  • keytab (str | None) – 如果使用 keytab 文件,则为 keytab 文件的路径。

  • ca_trust_path (str | None) – 证书颁发机构信任路径。

  • cert_pem (str | None) – PEM 格式的客户端身份验证证书文件路径。

  • cert_key_pem (str | None) – PEM 格式的客户端身份验证证书密钥文件路径。

  • server_cert_validation (str) – 在支持的 Python 版本上是否应验证服务器证书;可选项包括 'validate' (默认)、'ignore'。

  • kerberos_delegation (bool) – 如果为 True,TGT 将发送到目标服务器以允许多跳。

  • read_timeout_sec (int) – HTTP 连接/读取超时前的最长等待秒数(默认 30)。此值应略高于 operation_timeout_sec,因为服务器至少可以阻塞那么长时间。

  • operation_timeout_sec (int) – 任何单个 wsman HTTP 操作的最长允许时间(以秒为单位,默认 20)。请注意,接收输出时的操作超时(这是唯一可能花费大量时间的 wsman 操作,也是预期会出现此类超时的地方)将无限期静默重试。

  • kerberos_hostname_override (str | None) – 用于 Kerberos 交换的主机名(默认为端点 URL 中的主机名)。

  • message_encryption (str | None) – 如果设置并且传输认证支持消息加密,则将加密 WinRM 消息。(默认 'auto')。

  • credssp_disable_tlsv1_2 (bool) – 是否禁用 TLSv1.2 支持并使用 TLSv1.0 等旧协议,默认为 False。

  • send_cbt (bool) – 将通过 HTTPS 通道发送通道绑定(默认值:True)。

ssh_conn_id = None[source]
endpoint = None[source]
remote_host = None[source]
remote_port = 5985[source]
transport = 'plaintext'[source]
username = None[source]
password = None[source]
service = 'HTTP'[source]
keytab = None[source]
ca_trust_path = None[source]
cert_pem = None[source]
cert_key_pem = None[source]
server_cert_validation = 'validate'[source]
kerberos_delegation = False[source]
read_timeout_sec = 30[source]
operation_timeout_sec = 20[source]
kerberos_hostname_override = None[source]
message_encryption = 'auto'[source]
credssp_disable_tlsv1_2 = False[source]
send_cbt = True[source]
winrm_protocol = None[source]
get_conn()[source]

返回 Hook 的连接。

run(command, ps_path=None, output_encoding='utf-8', return_output=True)[source]

运行命令。

参数:
  • command (str) – 在远程主机上执行的命令。

  • ps_path (str | None) – powershell 的路径,v5.1- 及之前版本使用 powershell,v6+ 及之后版本使用 pwsh。如果指定,将作为 powershell 脚本执行命令。

  • output_encoding (str) – 用于解码标准输出和标准错误的编码。

  • return_output (bool) – 是否累积并返回标准输出。

返回值:

按顺序返回包含返回码、标准输出和标准错误的元组。

返回类型:

tuple[int, list[bytes], list[bytes]]

本条目有帮助吗?