cheetsheet/aws/runcommand

SSMエージェントがインストール済みのサーバに対して、あるコマンド、スクリプトを実行できる仕組みを構築した。

エージェントが入っているインスタンス一覧

aws ssm describe-instance-information --output text --query "InstanceInformationList[*]" 

コマンド実行

aws ssm send-command --document-name "AWS-RunShellScript" --instance-ids i-1111111111111 --parameters '{"commands":["/etc/init.d/gitpull start"],"executionTimeout":["300"]}'

複数サーバにコマンドを実行する

aws ssm send-command --document-name "AWS-RunShellScript" --instance-ids $(aws ssm describe-instance-information --output text --query "InstanceInformationList[*]" |grep -E 'i-.*' | awk '{print $2}' ) --parameters '{"commands":["/etc/init.d/gitpull start"],"executionTimeout":["300"]}'

githubへの接続が上手く行かなかったら、アップデートもresetもしない

git remote show origin > /dev/null 2>&1