AWS CodeDeployでデプロイ対象のアプリケーションによって処理を制御する
AWS CodeDeployでアプリケーションをデプロイする際に、特定のサーバーのみスクリプトを実行したいケースがあり、AppSpecのフックセクションで環境変数を利用して解決したのでそのメモです。
AppSpecのフック(hooks)セクション
アプリケーションによる処理の分岐
今回は以下のように処理を制御しました。
appspec.yml
appspec.yml
version: 0.0 os: linux files: - (略) permissions: - (略) hooks: AfterInstall: - location: deploy/after-install.sh runas: root
after-install.sh
#!/bin/bash (略) if [ "$APPLICATION_NAME" == "batch-server" ] then sudo systemctl restart supervisord fi (略)
これにより、CodeDeployのアプリケーションがbatch-serverの場合にのみ、supervisordの再起動が実行されるようになりました。
Amazon Web ServiceAmazon Web ServicesApplicationAWSCode CommitCode DeployCode PipelineCodeCommitCodeDeployCodePipelinefooksifアプリケーションデプロイ
Tweet