使用 gcloud 建立 openSUSE Leap 15 GCE with startup-script 小記
上一篇 Blog 寫 AWS CLI with userdata, 這一篇來寫 使用 gcloud 建立 openSUSE Leap 15 的 GCE ( Google Compute Engine ) 加上 startup-script ( 開機指令碼 )
目的跟之前一樣, 就是建立 VM ( 就是 GCE ) 的同時, 設定建立完成要執行的指令
OS: Container with openSUSE Leap 15
GCE: openSUSE Leap 15 on GCP
==== 在主機上面 ====
啟動 container
> docker run -v ~/.aws:/root/.aws -v ~/.azure:/root/.azure -v ~/.config/gcloud:/root/.config/gcloud -v ~/.ssh:/root/.ssh -it sakana/ansible_opensuse15 /bin/bash
- 這邊我有透過 -v 把本機上面的三個平台的設定檔掛載到容器內, 還有 .ssh 目錄 也掛載上面, 因為 google 的 SSH 金鑰 也會存放在裡面
==== 在 container 內 ====
參考官方文件
可以使用 --metadata-from-file 以及 startup-script 方式來指定
建立一個 default_startup-script 內容如下
#!/bin/bash
# edit by sakana 2019/7/27
# Turn on password authentication for lab challenge
# not use passwd --stdin because some OS not support
#echo 'lab-password' | passwd ec2-user --stdin
#
# Use chpasswd to change password
#
# example: useradd -m ansible && echo "ansible:2016StudyArea" | chpasswd
useradd -m css-user
echo "css-user:20190727GCE" | chpasswd
# force user change password when first login
passwd -e css-user
#
sed -i 's|[#]*PasswordAuthentication no|PasswordAuthentication yes|g' /etc/ssh/sshd_config
systemctl restart sshd.service
- 這邊我有實驗過, 不可以將兩個指令用 && 串接, 會失敗, 所以就先拆開為兩行, 以後再找原因
使用 gcloud 指令建立 openSUSE Leap 15 的 GCE ( VM )
# gcloud compute --project=sakanatest instances create --zone=asia-east1-b --machine-type=n1-standard-1 --image-project=opensuse-cloud --image-family opensuse-leap --boot-disk-size=30GB --metadata-from-file startup-script=GCP/startup-script/default_startup-script test20190727
- --project 是因為我有多個 profile 所以指定那一個專案
- 使用指定 --image-family 方式來取得最新的 image, 而不是 --image 指定某個版本 image
接下來驗證是否成功
==== 在主機上面 ====
使用 ssh -l css-user@SERVER_IP
看看是否可以登入, 如果可以就是大功告成
~ enjoy it
Reference:
沒有留言:
張貼留言