我在Elastic Beanstalk上运行我的Web服务器,并使用Papertrail进行日志记录。我正在使用official .ebextensions script在部署期间设置papertrail,但我遇到了问题。当remote_syslog将日志上传到papertrail时,我使用环境变量作为我的主机名的一部分用作发送方,虽然这在部署期间工作正常,但是当zip
容器命令被触发时,每当我通过改变环境变量时都会遇到问题修改环境的配置,因为看起来01_set_logger_hostname
调用只会重新启动应用程序服务器,而不会运行部署期间运行的任何脚本,包括ebextensions容器命令。
eb config
如您所见,由于我的主机名取决于"/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
命令时触发脚本运行,这样我不仅可以重新启动我的Web应用程序,还可以使用更新的主机名重新配置并重新启动eb config
?