将主机IP地址传递到cmd.run和ini文件

时间:2019-01-24 23:17:47

标签: salt-stack

我目前正尝试在SaltStack的帮助下将Log-thythm部署到由100多台服务器组成的环境中:

虽然我可以使用file.managed将文件复制到Windows minion,但在获取minion服务器的IP地址并将其添加到.ini文件和cmd的过程中却遇到了一些困难.run文件。 我希望能够对连接到Salt的每个爪牙执行此操作:

运行盐时-G'roles:logging'state.apply。我似乎收到以下错误: 渲染SLS'base:pacakage-logrhythm'失败:Jinja变量'dict object'没有属性'fqdn_ip4':

更新:

我能够解决ini文件中的问题:通过放置以下内容 ClientAddress = {{grains ['fqdn_ip4'] [0]}}

当前在将谷物传递到程序的cmd.run部分时遇到问题:

create_dir:
  file.directory:
    - name: C:\logrhythm

/srv/salt/logrhythm/proxy1.ini:
  file.managed:
    - source: salt://logrhythm/proxy1.ini
    - name: c:\logrhythm\proxy1.ini
    - template: jinja

/srv/salt/logrhythm/proxy2.ini:
  file.managed:
    - source: salt://logrhythm/proxy2.ini
    - name: c:\logrhythm\proxy2.ini
    - tempalte: jinja

LRS_File:
  file.managed:
    - name: c:\logrhythm\LRSystemMonitor_64_7.4.2.8003.exe
    - source: salt://logrhythm/LRSystemMonitor_64_7.4.2.8003.exe

LRS_Install:
  cmd.run:
    - name: 'LRSystemMonitor_64_7.4.2.8003.exe /s /v" /qn ADDLOCAL=System_Monitor,RT_FIM_Driver HOST=<> SERVERPORT=443 CLIENTADDRESS={{ grains[''fqdn_ip4''][0] }} CLIENTPORT=0"'
    - cwd: C:\logrhythm

1 个答案:

答案 0 :(得分:0)

我认为它应该起作用。您可能对使用的多个引号有疑问:简单然后再加倍然后再简单。尝试删除包含所有命令的简单引号和用于访问谷物字典的两个简单引号。

    - name: LRSystemMonitor_64_7.4.2.8003.exe /s /v" /qn ADDLOCAL=System_Monitor,RT_FIM_Driver HOST=<> SERVERPORT=443 CLIENTADDRESS={{ grains['fqdn_ip4'][0] }} CLIENTPORT=0"