AWS CLI 指令建立 EC2 機器 with Userdata 小記
之前有使用 aws cli 建立 EC2, 但是建立 EC2 之後會有後續想要進行的動作, 例如安裝套件或是其他的要求, 這個部份其實可以在安裝的時候透過 userdata 來指定, 這一篇小記就是紀錄 aws-cli 建立 EC2 加上 userdata 作法.
一樣使用之前建立的 Container with 雲平台工具
OS: Container with openSUSE Leap 15
==== 在主機上面 ====
啟動 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
==== 在 container 內 ====
參考官方文件
官方文件提到可以搭配 --user-data 參數使用 run-instances
先來看看這次要實驗的 defaul_userdata 檔案內容
#!/bin/bash
# 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
echo "ec2-user:2019TestEC2" | chpasswd
sed -i 's|[#]*PasswordAuthentication no|PasswordAuthentication yes|g' /etc/ssh/sshd_config
systemctl restart sshd.service
- 將 ec2-user 密碼設定為 lab-password
- 開啟 sshd 使用密碼驗證, 重啟 sshd 服務讓設定生效
- 在容器內中文註解有問題, 所以我先把註解用英文
接下來準備建立 EC2, 參考之前的文章
這邊有些需要的資訊, 可以使用指令的方式, 也可以使用 console 方式來取的
- Image-id
- # aws ec2 describe-images --filters 'Name=name,Values=openSUSE*'
- Subnet-id
- # aws ec2 describe-subnets
- Security-group-id
- # aws ec2 describe-security-groups
- Key-name
- # aws ec2 describe-key-pairs
執行 aws 指令建立 EC2
# aws ec2 run-instances --image-id ami-026fef571e7830801 --subnet-id subnet-92dfe4fb --security-group-ids sg-090a6648734644255 --instance-type t2.micro --key-name test-key --count 1 --user-data file://AWS/user-data/default_userdata
接下來驗證是否成功
==== 在主機上面 ====
使用 ssh -l ec2-user@SERVER_IP
看看是否可以登入, 如果可以就是大功告成
~ enjoy it
Reference:
沒有留言:
張貼留言