我在 Elastic Beanstalk 上运行我的 Web 服务器,并使用 Papertrail 进行日志记录。我正在使用官方 .ebextensions 脚本在部署期间设置 papertrail,但我遇到了问题。当 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
使用更新的主机名重新启动?