【问题标题】:RabbitMQ : How to set and use custom environment variable in RabbitMQ Advance config fileRabbitMQ:如何在 RabbitMQ Advance 配置文件中设置和使用自定义环境变量
【发布时间】:2022-08-09 20:46:12
【问题描述】:

我们已配置 RabbitMQ 服务器与 LDAP 服务器通信以进行身份​​验证按预期工作.但是我们面临一个挑战,我们需要将一个值从配置外部化到环境变量。

所以下面是advance.config 文件中的当前配置

{other_bind, {\"CN=Service_Account,OU=Service Accounts,DC=XYZ,DC=com\",{string,\"123456\"}}},

并想做这样的事情

{other_bind, {\"CN=Service_Account,OU=Service Accounts,DC=XYZ,DC=com\",{string,\"${RABBITMQ_SERVICE_ACCOUNT_PASSWORD}\"}}},

因此,我们希望将密码外部化到某个环境变量,并在advance.config 文件中使用相同的密码。

我尝试在 rabbitmq-env.conf 文件中设置值,但没有运气。

另外根据这篇文章,我们不能在rabbitmq-env.conf 文件中设置自定义环境变量,对吗?如果是,那么我们可以在哪里设置这个值?

https://riptutorial.com/rabbitmq/example/14032/configuring-rabbitmq-on--nix-systems

  • 我能问一下为什么需要“外部化”密码吗?在 rabbitmq-env.conf 中而不是在另一个配置文件中可以归结为几乎相同的事情。
  • “支持”环境变量的完整列表是here。我不知道它们是否可以在高级配置文件中使用,或者您是否可以添加自定义的。首先,我将通过将列出的变量之一设置为任意值并查看它是否反映在配置中来检查是否正确考虑了rabbitmq-env.conf,然后检查是否可以使用(扩展)相同的变量advanced.config。然后我会尝试使用自定义变量,知道它可能不会自动以 \"RABBITMQ_\" 为前缀...
  • 感谢 EricLavault,我们想在启动时从 Cyber​​Arc 获取此服务帐户密码并将其放入 env 文件中,然后使用相同的 advance.conf 文件,这就是计划。

标签: rabbitmq ldap


【解决方案1】:

不,不支持:

{other_bind, {"CN=Service_Account,OU=Service Accounts,DC=XYZ,DC=com",{string,"${RABBITMQ_SERVICE_ACCOUNT_PASSWORD}"}}},

一种选择是在 RabbitMQ 启动之前从模板生成advanced.config。如果 RabbitMQ 在您的环境中通过systemd 启动,您可以使用ExecStartPre 挂钩来运行自定义脚本或程序。

要为 RabbitMQ systemd 单元创建一个直接覆盖(并添加 ExecStartPre),请按照以下说明操作:

https://wiki.archlinux.org/title/systemd#Editing_provided_units


笔记:RabbitMQ 团队监控 rabbitmq-users mailing list 并且有时只回答 StackOverflow 上的问题。

【讨论】:

    猜你喜欢
    • 2019-12-22
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 2021-03-29
    • 2021-07-07
    • 1970-01-01
    • 2022-12-02
    • 2018-03-01
    相关资源
    最近更新 更多