盐堆:替换/添加工作节点名称到托管文件公式中的文件


我正在使用New Relic来

监控我的Salt托管EC2服务器,并且我正在尝试在newrelic-sysmond confic文件中插入"hostname=minion-name",因此它们以可协调的名称显示在New Relic的仪表板中,而不是EC2默认的"ip-123-133..."。

我用盐云旋转我的实例,然后应用以下状态(通过顶部文件)来运行新遗物系统蒙德:

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 文档挖掘 (http://docs.saltstack.com/ref/states/all/salt.states.file.html) 我感觉这是可能的,但我缺少一些基础知识来弄清楚它,因为我刚刚开始使用盐。主要是我认为我只需要以某种方式推动如何引用保存小黄鼠名称的变量/颗粒,以及正在使用的默认值/上下文的示例。

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

/etc/newrelic/nrsysmond.cfg:
  file.managed:
    - source: salt://newrelic/nrsysmond.cfg
    - user: newrelic
    - mode: '0744'
    - template: jinja
    - require:
      - pkg: newrelic-sysmond

然后这个文件被视为jinja模板:

hostname={{ grains["id"] }}

工作节点的名称在 grains["id"] 中可用。您可以运行salt-call grains.items以查看可用的粒度。

相关内容

  • 没有找到相关文章

最新更新