我正在使用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
托管文件是我的个人帐户密钥的版本,New Relic设置所需,所以我的所有机器都是一样的 .
有没有办法让我在该文件中有 hostname=my_placeholder
之类的东西然后在我的sls配置中有这样的状态,以便在应用状态时 my_placeholder
成为小兵的名字?
通过states.file doc(http://docs.saltstack.com/ref/states/all/salt.states.file.html)挖掘我觉得这是可能的,但是我缺少一些基础知识来解决这个问题,因为我刚刚开始使用salt . 主要是我认为我只需要一个关于如何引用包含minion名称的变量/ grain的方式,以及正在使用的默认值/上下文的示例 .
1 回答
首先,您必须启用此配置文件的模板:
然后这个文件被视为jinja模板:
仆从的名字见
grains.id
. (您可以运行salt-call grains.items
来查看可用的谷物 . 如果您需要更灵活地分配变量,请阅读有关支柱的信息) .