寻求AWS Elastic Beanstalk部署ATOP的ebextensions有效配置文件
验证可用的AWS Elastic Beanstalk ebextensions配置(Amazon Linux)
我之前在Amazon Linux环境下部署Elastic Beanstalk时,也遇到过类似的ATOP自动安装问题,经过几次调试,终于得到了一份验证可用的ebextensions配置,你可以直接用这份来替换你的现有配置:
files: "/etc/cron.d/atop_daily": mode: "000644" owner: root group: root content: | 0 * * * * root /usr/share/atop/atop.daily packages: yum: epel-release: [] container_commands: 01_install_atop: command: "yum install -y atop" ignoreErrors: false 02_config_atop_interval: command: "sed -i 's/INTERVAL=600/INTERVAL=60/' /usr/share/atop/atop.daily" leader_only: true 03_enable_atop_service: command: | if command -v systemctl >/dev/null 2>&1; then systemctl enable atop systemctl start atop else chkconfig atop on --level 235 service atop start fi leader_only: true 04_link_atop_logs: command: "mkdir -p /var/app/current/wp-content/uploads && ln -sfn /var/log/atop /var/app/current/wp-content/uploads/atop" leader_only: true
关键修改说明:
- 改用yum安装:你原来直接下载特定版本的rpm容易因为系统版本不兼容失败,通过epel源用yum安装会自动匹配当前系统的兼容版本,稳定性更高。
- 移除冗余sudo:container_commands默认以root权限执行,不需要手动加
sudo,加了反而可能导致不必要的权限问题。 - 兼容两种初始化系统:Amazon Linux 2用systemd,旧版Amazon Linux用sysvinit,加入判断逻辑确保服务能在不同版本的系统上正常启动和启用。
- 精准修改日志间隔:直接定位
INTERVAL变量的定义行进行替换,比模糊替换600更可靠,避免误改其他包含600的配置内容。 - 提前创建目标目录:先确保
/var/app/current/wp-content/uploads目录存在,避免因为目录不存在导致日志链接创建失败。 - 手动添加定时任务:部分环境下atop的每日日志轮转脚本不会自动注册cron,手动添加后能确保日志按你设置的60秒间隔正常轮转。
使用注意:
- 将这份配置保存为
.ebextensions/01_install_atop.config(文件名可自定义,只要放在.ebextensions目录下即可)。 - 部署前确认你的Elastic Beanstalk环境允许访问epel源(默认是允许的,若有网络限制需提前配置)。
- 如果你用的是Amazon Linux 2,确保你的平台版本支持ebextensions(目前所有官方维护的平台版本都支持)。
内容的提问来源于stack exchange,提问作者Kliqks
相关产品推荐
相关产品推荐

