前言
本篇記錄 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] |
為 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 可從官方文件 獲得
留言