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 文档

此条目有帮助吗?