Google Compute Engine SSH 运算符

先决任务

要使用这些运算符,您必须执行以下几项操作

ComputeEngineRemoteInstanceSSHOperator

使用 SSHOperatorComputeEngineSSHHook 在远程实例上执行命令。

此操作员使用 Cloud OS 登录或实例元数据来管理 SSH 密钥。要使用 Cloud OS 登录,服务帐号必须具有 compute.osAdminLogin IAM 角色,并且实例元数据必须启用 Cloud OS 登录。可以通过设置实例元数据 - enable-oslogin=TRUE 来完成此操作

要使用实例元数据,请确保在钩子中将 Cloud OS 登录参数设置为 False。

请注意,目标实例必须允许端口 22 上的 tcp 流量。

以下是创建操作员的代码

tests/system/providers/google/cloud/compute/example_compute_ssh.py[源代码]

metadata_without_iap_tunnel1 = SSHOperator(
    task_id="metadata_without_iap_tunnel1",
    ssh_hook=ComputeEngineSSHHook(
        user="username",
        instance_name=GCE_INSTANCE_NAME,
        zone=LOCATION,
        project_id=PROJECT_ID,
        use_oslogin=False,
        use_iap_tunnel=False,
        cmd_timeout=1,
    ),
    command="echo metadata_without_iap_tunnel1",
)

您还可以创建没有项目 ID 的钩子 - 项目 ID 将从所用的 Google 凭据中检索

tests/system/providers/google/cloud/compute/example_compute_ssh.py[源代码]

metadata_without_iap_tunnel2 = SSHOperator(
    task_id="metadata_without_iap_tunnel2",
    ssh_hook=ComputeEngineSSHHook(
        user="username",
        instance_name=GCE_INSTANCE_NAME,
        zone=LOCATION,
        use_oslogin=False,
        use_iap_tunnel=False,
        cmd_timeout=100,
    ),
    command="echo metadata_without_iap_tunnel2",
)

更多信息

请参阅 Google Compute Engine API 文档和 Cloud OS 登录 API 文档 * Google Cloud API 文档 * Google Cloud OS 登录 API 文档

此条目是否有用?