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