gpt4 book ai didi

amazon-ec2 - Salt-stack:在托管文件公式中将 minion 名称替换/添加到文件中

转载 作者:行者123 更新时间:2023-12-03 16:32:21 26 4
gpt4 key购买 nike

我正在使用 New Relic监控我的 Salt 管理的 EC2 服务器,我试图在 newrelic-sysmond confic 文件中插入一个“hostname=minion-name”,所以它们出现在 New Relic 的仪表板中,并带有一个可识别的名称,而不是 EC2 默认的“ip” -123-133...”。

我使用 salt-cloud 旋转我的实例,然后应用以下状态(通过顶部文件)以使 New Relic sysmond 运行:

newrelic-repo:
pkg:
- installed
- require:
- pkgrepo: <my private repo defined elsewhere, just convenient rpm storage>

newrelic-sysmond:
pkg:
- installed
- require:
- pkg: newrelic-repo
service:
- running
- watch:
- file: /etc/newrelic/nrsysmond.cfg

/etc/newrelic/nrsysmond.cfg:
file.managed:
- source: salt://newrelic/nrsysmond.cfg
- user: newrelic
- mode: 744
- require:
- pkg: newrelic-sysmond

症结是: /etc/newrelic/nrsysmond.cfg托管文件是一个带有我个人帐户 key 的版本,New Relic 设置需要,所以我所有的机器都是一样的。

有没有办法让我有类似 hostname=my_placeholder 的东西在该文件中,然后在我的 sls 配置中有它,以便在应用状态时 my_placeholder成为奴才的名字?

挖掘states.file 文档( http://docs.saltstack.com/ref/states/all/salt.states.file.html)我觉得这是可能的,但我缺少一些基础知识来弄清楚,因为我刚刚开始接触salt。主要是我认为我只需要在如何引用包含 minion 名称的变量/grain 以及使用中的默认值/上下文示例的方式上轻推一下。

最佳答案

首先,您必须启用此配置文件的模板:

/etc/newrelic/nrsysmond.cfg:
file.managed:
(...)
- template: jinja

然后这个文件被视为 jinja 模板:
hostname={{ grains.id }} 

minion 的名称在 grains.id 中可用. (你可以运行 salt-call grains.items查看
可用 Cereal 。如果您需要更灵活地分配变量,请阅读有关支柱的信息)。

关于amazon-ec2 - Salt-stack:在托管文件公式中将 minion 名称替换/添加到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19822927/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com