gcloud CLI 用法

前言

本篇記錄 gcloud CLI 用法






compute

instance

  • 建立一台虛擬機

    gcloud compute instances create example-instance-1 \
    --image-project=ubuntu-os-cloud \
    --image-family=ubuntu-1804-lts \
    --boot-disk-size=10GB \
    --boot-disk-type=pd-standard \
    --machine-type=f1-micro \
    --tags=example-instance-1,http-server,https-server \
    --zone=asia-east1-c
  • 由自己建立的 image 建一台 VM

    gcloud compute instances create example-instance-1 \
    --image-project=yourProject \
    --image=yourImage \
    --boot-disk-size=10GB \
    --boot-disk-type=pd-standard \
    --machine-type=f1-micro \
    --tags=example-instance-1,http-server,https-server \
    --zone=asia-east1-c
  • 停止 instance

    gcloud compute instances stop instanceName1 instanceName2 instanceName3
  • 啟動 instance

    gcloud compute instances start instanceName1 instancesName2 instanceName3
  • 刪除 instance

    gcloud compute instances delete instanceName
  • 列出 instances 列表

    gcloud compute instances list
  • 列出特定 instance 細節資料

    gcloud compute instances describe instanceName
  • 查詢執行個體的 ssh 金鑰

    gcloud compute instances describe instanceName | grep -A 5 ssh-keys
  • 移除或新增執行個體 ssh 金鑰

    gcloud compute instances add-metadata instanceName --metadata-from-file ssh-keys=fileName

指令如上,以下是 fileName 的格式

[USERNAME_2]:ssh-rsa [EXISTING_KEY_VALUE_2] [USERNAME_2]
[USERNAME_3]:ssh-rsa [NEW_KEY_VALUE] [USERNAME_3]

  • 為 instance 增加 tags

    gcloud compute instances add-tags instanceName \
    --tags tag1,tag2,tag3...
  • 封鎖全專案公開 SSH 金鑰

    gcloud compute instances add-metadata [INSTANCE_NAME] --metadata block-project-ssh-keys=TRUE
  • 允許全專案公開 SSH 金鑰

    gcloud compute instances add-metadata [INSTANCE_NAME] --metadata block-project-ssh-keys=FALSE


firewall-rules

  • 增加防火牆規則
    gcloud compute firewall-rules create firewallRuleName --allow tcp:50005,port2,port3 --target-tags targetTags

文件連結


images

  • 查詢可用的 images 相關資訊

    gcloud compute images list
  • 從現有的 disk 創立 image

    gcloud compute images create shadowsocks \
    --source-disk test-shadowsock \
    --source-disk-zone asia-east1-a \
    --family ubuntu-1804-lts


project

  • 查詢全專案公開 ssh 金鑰並且顯示 5 行資料

    gcloud compute project-info describe | grep -A 5 ssh-keys
  • 移除或新增全專案公開 ssh 金鑰

    gcloud compute project-info add-metadata --metadata-from-file ssh-keys=fileName

指令如上,以下是 fileName 的格式

[USERNAME_2]:ssh-rsa [EXISTING_KEY_VALUE_2] [USERNAME_2]
[USERNAME_3]:ssh-rsa [NEW_KEY_VALUE] [USERNAME_3]


addresses

  • 將現有 VM 使用的 IP 轉為靜態

    gcloud compute addresses create addressName \
    --addresses IP \
    --region regionName
  • 列出 IP

    gcloud compute addresses list
  • 刪除 IP

    gcloud compute addresses delete ip1 ip2 ip3


regions

  • 取得 regions 列表
    gcloud compute regions list


backend-service

  • 更新 draining-time-out
    gcloud compute backend-services update [BACKEND_SERVICE] \
    --connection-draining-timeout [CONNECTION_TIMEOUT_SECS]






DNS

record-sets

顯示區域的當前 DNS 紀錄

gcloud dns record-sets list --zone="myzonename"

此指令會以含有前 100 筆記錄的資源記錄集,輸出 JSON 回應。您可以指定下列額外參數:

  • limit:要列出的記錄集數目上限。
  • name:只列出含有這個確切網域名稱的記錄集。
  • type:只列出這個類型的記錄。如果有這類記錄,則必須同時使用 –name 參數。


新增 A record

  • 開始 transaction

    gcloud dns record-sets transaction start --z zoneName
  • 增加 A 紀錄

    gcloud dns record-sets transaction add 'ip' --name 'domainName' --ttl 5 --type A --zone 'zoneName'
  • 增加 cname 紀錄

    gcloud dns record-sets transaction add -z=zoneName --type=CNAME --name="www.ray.com" --ttl 5 "ray.com."
  • 增加 MX 紀錄

    gcloud dns record-sets transaction add --z=zoneName --name="ray.com" --ttl 5 --type MX "10 mail1.ray.com." "20 mail2.ray.com."
  • 執行

    gcloud dns record-sets transaction execute -z 'zoneName'


managed-zones

列出所有 zone 列表

gcloud dns managed-zones list

config

  • 切斷 project

    gcloud config set projectID
  • 取得 config 的 zone 的值

    gcloud config get-value compute/zone
  • 取得 config 的 account 的值

    gcloud config get-value account






projects

取得 project list

gcloud projects list






gsutil

Cloud Storage


mb

建立儲存區, 命名規格請參考

gsutil mb gs://YOUR-BUCKET-NAME


cp

上傳檔案

gsutil cp ada.jpg gs://YOUR-BUCKET-NAME

下載檔案

gsutil cp -r ada.jpg gs://YOUR-BUCKET-NAME

-r: recursive

複製檔案

gsutil cp gs://YOUR-BUCKET-NAME/ada.jpg gs://YOUR-BUCKET-NAME/image-folder/


ls

列出物件

gsutil ls gs://YOUR-BUCKET-NAME

列出物件細節

gsutil ls -l gs://YOUR-BUCKET-NAME/ada.jpg

-l: list


acl

增加公開存取權限

gsutil acl ch -u AllUsers:R gs://YOUR-BUCKET-NAME/fileName

移除公開存取權限

gsutil acl ch -d AllUsers gs://YOUR-BUCKET-NAME/fileName


rm

刪除物件

gsutil rm gs://YOUR-BUCKET-NAME/fileName






container

cluster

  • 建立集群, 並且限定集群內 instance 可存取的 API 範圍

    gcloud container clusters create jenkins-cd \
    --num-nodes 3 \
    --machine-type n1-standard-2 \
    --scopes "https://www.googleapis.com/auth/source.read_write,cloud-platform"
    • –num-nodes: 集群含有三台機器, 最少三台
    • –machine-type: 機器類型
    • –scopes: instance 可存取的 API 範圍, API 可從官方文件 獲得

Q&A

SSH 學習筆記 利用 Gitlab CI/CD 部署專案到 GCP virtual machine

留言

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×