更新日: 2017-06-30 (金) 18:48:23 (170d)

:AWS

えー、前回下記のような投稿をしましたが、

CodePipeline Githubにコミットしたら自動的にデプロイするまでの道のり①
CodePipeline Githubにコミットしてテスト環境で確認の後デプロイする

今回はみんなやりたい!環境やサーバー、テスト、リリースなどによって「何か」を変えたいというのをやります。

たとえば、テスト環境ではこのファイル表示したい、とか、エラーログレベルを調整したいとか、そういうのですね。
これを自動でやるのが、デプロイツールのだいご味ではないでしょうか!!

さて、わかってしまえば単純な仕組みですが、AWSのドキュメントの場所がわからず悩みました。

ずばり、下記を見ればそれができます。

AppSpec 'hooks' Section

CodeDeployで作った、デプロイグループの名前を変数として使えます。

まずは、超単純ですが、テスト環境の場合、index2.htmlというファイルを作って、aaabbbという文字列を表示します。

  • テスト環境へのデプロイを、"DeployTest"という名前のデプロイグループに保存します。
  • change_as_serverというファイル名で下記を書いて保存します。
#!/bin/bash
if [ "$DEPLOYMENT_GROUP_NAME" == "DeployTest" ]
then
   echo aaabbb > /var/www/html/index2.html
fi

CodeDeployで利用する、appspec.ymlで、

hooks:
  BeforeInstall:

に、上記で作ったスクリプトを走らせるように書きます。
アプリケーションのインストール前に何をするかってことですね。
appspec.ymlの全体が下記です。

version: 0.0
os: linux
files:
 - source: /
   destination: /var/www/html/
hooks:
 BeforeInstall:
   - location: scripts/start_server
     timeout: 300
     runas: root
   - location: scripts/change_as_server
     timeout: 300
     runas: root
 ApplicationStop:
   - location: scripts/stop_server
     timeout: 300
     runas: root
codepipeline2.png
  • StagingでのCodeDeployにはDeployTestのデプロイを、ReleaseでのCodeDeployにはDeployReleaseのデプロイを利用します。
  • appspec.ymlとscripts/change_as_serverをGithubにコミットすると、ちょうどCodePipelineが走り始めます。
  • テスト環境だけ、index2.htmlができていると思います!⊂(^-^)⊃
  • 今回、bashでやりましたけども、Pythonとかも使えるようなので、柔軟にいろんなことができると思います。

選択肢 投票
役に立った 0  
役に立たなかった 0  
どちらでもない 0  
このページが参照された数
Total: 173, 今日: 1, 昨日: 0

添付ファイル: filecodepipeline2.png 28件 [詳細]

でじうぃきは神奈川県横浜市の位置情報システム・スマホアプリ開発の株式会社オンラインコンサルタントが運営しています。
投稿
トップ   このページを編集する 再編集不可にする 差分 バックアップ 添付 複製 名前変更 リロード   新しいページを作る 一覧 検索する 最新の更新   ヘルプ   最終更新のRSS
Last-modified: 2017-06-30 (金) 18:48:23 (170d)