Google Compute Engine SSH 運算子¶
先決條件任務¶
要使用這些運算子,您必須做一些準備工作
使用 Cloud Console 選擇或建立一個 Cloud Platform 專案。
為您的專案啟用計費功能,具體請參閱 Google Cloud 文件。
啟用 API,具體請參閱 Cloud Console 文件。
透過 pip 安裝 API 庫。
pip install 'apache-airflow[google]'有關 安裝 的詳細資訊請參閱。
ComputeEngineRemoteInstanceSSHOperator¶
將 SSHOperator 與 ComputeEngineSSHHook 一起使用,在遠端例項上執行命令。
此運算子使用 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 文件。