前書
AWSのSystems Managerを使えば、サーバー内に入らなくても、サーバー内のバッチを実行できることがとても魅力的です!!
なので、早速バッチを作成して、Systems Managerから実行していきたいと思います。
バッチ作成
以下のバッチを作成しました。
このバッチを実行すると、バッチの実行したJST時間がログとして吐き出されます。
#!/bin/bash
timedatectl set-timezone Asia/Tokyo
current_date=$(date +"%Y-%m-%d %H:%M:%S")
echo "Hello world!! 実行時間:$current_date" >> test.log
EC2の作成
詳細の作り方はこちらで省きますが、
- IAMロール:
AmazonSSMManagedInstanceCore
- EC2 OS:
Amazon Linux 2
上記で作ったバッチは、test.sh
と名付けて、ssm-userのディレクトリに保存しておきました。
sh-4.2$ pwd
/home/ssm-user
sh-4.2$ vi test.sh
sh-4.2$ sudo chmod +x test.sh
sh-4.2$ cat test.sh
#!/bin/bash
timedatectl set-timezone Asia/Tokyo
current_date=$(date +"%Y-%m-%d %H:%M:%S")
echo "Hello world!! 実行時間:$current_date" >> test.log
sh-4.2$
Systems Managerから実行
「Systems Manager」->「Run Command」でAWS-RunShellScript
を検索します。
whoami
cd /home/ssm-user/
pwd
/home/ssm-user/test.sh
cat /home/ssm-user/test.sh
cat /home/ssm-user/test.log
バッチが実行されたことを確認できました。
Systems Managerからバッチを実行時になんとrootユーザーを使っていることがわかりましたwww