Google Compute Engine SSH 操作符

先决条件任务

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

ComputeEngineRemoteInstanceSSHOperator

SSHOperatorComputeEngineSSHHook 一起使用,以在远程实例上执行命令。

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

要使用实例元数据,请确保在 Hook 中将 Cloud OS Login 参数设置为 False。

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

以下是创建操作符的代码

tests/system/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 的 Hook - 项目 ID 将从使用的 Google 凭据中检索

tests/system/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 Login API 文档 * Google Cloud API 文档 * Google Cloud OS Login API 文档

此条目是否有帮助?