airflow.providers.ssh.operators.ssh

SSHOperator

SSHOperator 用于使用 ssh_hook 在指定的远程主机上执行命令。

模块内容

class airflow.providers.ssh.operators.ssh.SSHOperator(*, ssh_hook=None, ssh_conn_id=None, remote_host=None, command=None, conn_timeout=None, cmd_timeout=NOTSET, environment=None, get_pty=False, banner_timeout=30.0, skip_on_exit_code=None, **kwargs)[source]

基类: airflow.models.BaseOperator

SSHOperator 用于使用 ssh_hook 在指定的远程主机上执行命令。

参数::
  • ssh_hook (airflow.providers.ssh.hooks.ssh.SSHHook | None) – 预定义的 ssh_hook,用于远程执行。ssh_hook 或 ssh_conn_id 需要提供其中一个。

  • ssh_conn_id (str | None) – 来自 Airflow 连接中的 SSH 连接 ID。如果提供了 ssh_hook,则 ssh_conn_id 将被忽略。

  • remote_host (str | None) – 要连接的远程主机 (模板化) 可为空。如果提供,它将替换 ssh_hook 中定义或 ssh_conn_id 连接中预定义的 remote_host。

  • command (str | None) – 在远程主机上执行的命令。(模板化)

  • conn_timeout (int | None) – 保持连接的超时时间 (秒)。默认值为 10 秒。可为空。如果提供,它将替换 ssh_conn_id 连接中预定义的 conn_timeout。

  • cmd_timeout (int | airflow.utils.types.ArgNotSet | None) – 执行命令的超时时间 (秒)。默认值为 10 秒。可为空,None 表示无超时。如果提供,它将替换 ssh_conn_id 连接中预定义的 cmd_timeout。

  • environment (dict | None) – shell 环境变量字典。请注意,如果 SSH 配置中未设置 AcceptEnv,服务器将默默地拒绝它们。(模板化)

  • get_pty (bool) – 向服务器请求一个伪终端。设置为 True 会在任务超时时杀死远程进程。默认值为 False,但请注意,当 commandsudo 开头时,get_pty 会被强制设置为 True

  • banner_timeout (float) – 等待服务器横幅信息的超时时间 (秒)

  • skip_on_exit_code (int | collections.abc.Container[int] | None) – 如果命令以这个退出码退出,则将任务保留在 skipped 状态 (默认: None)。如果设置为 None,任何非零退出码都将被视为失败。

如果 do_xcom_pushTrue,则 SSH 会话发出的数字退出码将以 ssh_exit 为键推送到 XCom。

template_fields: collections.abc.Sequence[str] = ('command', 'environment', 'remote_host')[source]
template_ext: collections.abc.Sequence[str] = ('.sh', '.bash', '.csh', '.zsh', '.dash', '.ksh')[source]
template_fields_renderers[source]
ssh_conn_id = None[source]
remote_host = None[source]
command = None[source]
conn_timeout = None[source]
cmd_timeout[source]
environment = None[source]
get_pty = False[source]
banner_timeout = 30.0[source]
skip_on_exit_code = None[source]
property ssh_hook: airflow.providers.ssh.hooks.ssh.SSHHook[source]

创建 SSHHook 以在远程主机上运行命令。

property hook: airflow.providers.ssh.hooks.ssh.SSHHook[source]
get_ssh_client()[source]
raise_for_status(exit_status, stderr, context=None)[source]
run_ssh_client_command(ssh_client, command, context=None)[source]
execute(context=None)[source]

创建操作符时实现。

Context 是渲染 Jinja 模板时使用的相同字典。

请参考 get_template_context 以获取更多上下文信息。

tunnel()[source]

获取 SSH 隧道。

on_kill()[source]

关闭 SSH 客户端会话。

本条目有帮助吗?