What
Solution Stack: 64bit Amazon Linux 2016.09 v2.2.2 running Docker 1.11.2
の場合
Why
環境別(本番、開発等)で環境変数の有無によってElastic Beanstalk上のホストで処理をしたい。例えば本番環境でのみnewrelic
をインストールするとか。
How
コンテナホスト(EC2)上では直接Elastic Beanstalkの環境変数が見れないのでget-config
を使う。
.ebextensionsnewrelic.config
packages:
yum:
newrelic-sysmond: []
rpm:
newrelic: http://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm
container_commands:
"01":
command: /opt/elasticbeanstalk/bin/get-config environment | jq -e -r '.NEWRELIC_KEY' && usermod -a -G docker newrelic || echo 'NEWRELIC_KEY not found'
"02":
command: /opt/elasticbeanstalk/bin/get-config environment | jq -e -r '.NEWRELIC_KEY' && nrsysmond-config --set license_key=$NEWRELIC_KEY || echo 'NEWRELIC_KEY not found'
"03":
command: /opt/elasticbeanstalk/bin/get-config environment | jq -e -r '.NEWRELIC_KEY' && /etc/init.d/newrelic-sysmond start || echo 'NEWRELIC_KEY not found'
この場合、NEWRELIC_KEY
が存在する場合のみ設定がされる。