简化在 Percona Monitoring and Management AMI 中使用 ENV 变量的方法

简化在 Percona Monitoring and Management AMI 中使用 ENV 变量的方法

💡 原文英文,约400词,阅读约需2分钟。
📝

内容提要

本文介绍了在Percona Monitoring and Management (PMM) Amazon Machine Image (AMI)中使用ENV变量的方法,通过在/srv/.env文件中添加ENV变量,并使用systemctl edit命令设置环境文件,可以在升级后重新应用这些变量。这种方法可以保护修改,并提供更干净和可维护的配置。PMM是一个开源的数据库监控解决方案,可以帮助简化复杂性,优化性能,并提高关键业务数据库环境的安全性。

🔎

延伸解读

为何不直接修改服务文件

文章明确指出,直接修改 /usr/lib/systemd/system/supervisord.service 文件存在风险:PMM 在每次升级时会重写该文件,导致自定义配置丢失。因此,采用 systemctl edit 创建覆盖文件是更可持续的做法,能避免升级带来的配置重置问题。

升级后配置如何保留

使用 systemctl edit 生成的覆盖文件独立于原始服务文件,因此即使 PMM 升级重写了 supervisord.service,通过覆盖文件设置的 EnvironmentFile 仍然有效。这意味着 ENV 变量在升级后无需重新配置,保持了配置的持久性和可维护性。

操作步骤中的关键点

文章给出了三个步骤:首先在 /srv/.env 中集中定义变量;然后通过 systemctl edit 添加 EnvironmentFile 指向该文件;最后执行 daemon-reload 并重启 supervisord 服务。注意,重启服务是使变量生效的必要操作,且需使用 sudo 权限执行相关命令。

❓

Q&A

PMM AMI 目前支持 ENV 变量吗?

PMM AMI 目前原生不支持 ENV 变量,但可以通过特定方法使用。

如何在 PMM AMI 中添加 ENV 变量?

首先将 ENV 变量添加到 /srv/.env 文件中,然后使用 systemctl edit 命令为 supervisord.service 创建覆盖文件,设置 EnvironmentFile=/srv/.env,最后重启 supervisord 服务。

为什么建议使用 systemctl edit 而不是直接修改 supervisord.service 文件?

直接修改 /usr/lib/systemd/system/supervisord.service 文件可能在系统升级时被覆盖,而使用 systemctl edit 创建的覆盖文件在升级后仍会被保留,从而保护修改。

升级 PMM 后,之前设置的 ENV 变量会丢失吗?

不会。虽然 PMM 在每次升级时会重写 /usr/lib/systemd/system/supervisord.service,但通过 systemctl edit 所做的修改会被保护,ENV 变量设置保持不变。

设置 ENV 变量后需要执行什么命令使更改生效?

需要执行 sudo systemctl daemon-reload 和 sudo systemctl restart supervisord 来重新加载配置并重启 supervisord 服务。

PMM 是什么?

PMM 是 Percona Monitoring and Management 的缩写,是一个开源数据库监控解决方案,旨在简化复杂性、优化性能并提高关键业务数据库环境的安全性。

🏷️

标签

➡️

继续阅读