Elastic Beanstalk でウェブサーバーを実行しており、ロギングに Papertrail を使用しています。デプロイ中に papertrail をセットアップするために公式の .ebextensions スクリプトを使用していますが、問題があります。remote_syslog がログを papertrail にアップロードするときに送信者として使用されるホスト名の一部として環境変数を使用します。これは展開中には問題なく機能しますが、01_set_logger_hostname
コンテナー コマンドがトリガーされると、環境の構成を変更して環境変数を変更するたびに問題が発生します。呼び出しはアプリケーション サーバーを再起動するだけであるように思われるためeb config
、ebextensions コンテナー コマンドを含む、展開中に実行されるスクリプトは実行されません。
"/tmp/set-logger-hostname.sh":
mode: "00555"
owner: root
group: root
encoding: plain
content: |
#!/bin/bash
logger_config="/etc/log_files.yml"
appname=`{ "Ref" : "AWSEBEnvironmentName" }`
instid=`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`
myhostname=${SOME_VARIABLE}_${appname}_${instid}
if [ -f $logger_config ]; then
# Sub the hostname
sed "s/hostname:.*/hostname: $myhostname/" -i $logger_config
fi
ご覧のとおり、私のホスト名は に依存しているため、が変更さ${SOME_VARIABLE}
れるたびにホスト名を更新する必要があります。${SOME_VARIABLE}
eb config
コマンドが実行されるたびに実行されるスクリプトをトリガーしてeb config
、Web アプリケーションを再起動するだけでなくremote_syslog
、更新されたホスト名で再構成して再起動できるようにする方法はありますか?