概要
CodeDeployのデプロイで使うappspec.ymlの項目をちょっとだけ簡単に解説してみる。
対象のファイル
appspec.yml
version: 0.0
os: linux
files:
- source: ./
destination: /var/www/html/test
file_exists_behavior: OVERWRITE
hooks:
ApplicationStop:
- location: scripts/application_stop.sh
timeout: 60
runas: root
BeforeInstall:
- location: scripts/before_install.sh
timeout: 60
runas: root
AfterInstall:
- location: scripts/after_install.sh
timeout: 60
runas: root
ApplicationStart:
- location: scripts/application_start.sh
timeout: 60
runas: root
ValidateService:
- location: scripts/validate_service.sh
timeout: 60
runas: root
| キー | 内容の概要 | 備考 |
|---|---|---|
| version | appspec.ymlそのものの内容 | 初めて作ったときは0.0を記載 |
| os | 動作OSを記載 | 今回はAmazonLinux用なのでlinuxと記載 |
| files | デプロイするファイルの設定 | |
| ┗ - source | デプロイ元となるコードの階層指定 | Githubで管理されているリポジトリのルートがデプロイルートの場合./になる |
| ┗ destination | デプロイ先ディレクトリ指定 | EC2インスタンスのどこのディレクトリに- sourceで指定したファイル群を設置するのかを指定する |
| file_exists_behavior | インスタンス内のファイルのふるまい設定 |
OVERWRITEとすることで上書きしてデプロイが可能 |
| hooks | デプロイ時の詳細な命令郡 | |
| ┗ ApplicationStop | デプロイの最も最初に実行される処理郡 | サーバー停止処理などを記載 |
| ┗ BeforeInstall | コード取得直前に実行される処理郡 | キャッシュ削除やクリーンアップ処理などを記載 |
| ┗ AfterInstall | コード取得直後に実行される処理郡 | 関連パッケージの取得やサービスの初期化処理などを記載 |
| ┗ ApplicationStart | アプリケーション起動のための処理群 | サーバー起動処理などを記載 |
| ┗ ValidateService | デプロイの最も最後に実行される処理群 | ヘルスチェック処理などを記載 |
上記の各hooks内部の要素を簡単に下記に記載する。
-
location: スクリプトファイルを指定 -
timeout: 当該hooksのタイムアウトを指定 -
runas: スクリプト実行時のユーザー指定
参考文献