【问题标题】:Read from SaltStack pillar files从 SaltStack 支柱文件中读取
【发布时间】:2018-01-19 00:11:10
【问题描述】:

我刚刚安装了一个普通的 SaltStack master 和 minions。我正在尝试按照https://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html 上的说明创建一个非常基本的 PHP 状态。

/srv/salt/php.sls:

php_ini:
  file.managed:
    - name: /etc/php.ini
    - source: salt://php.ini.tmpl
    - template: jinja
    - context:
        php_ini_settings: {{ salt.pillar.get('php_ini', {}) | json() }}

/srv/pillar/php.sls:

php_ini:
  PHP:
    engine: 'On'
    short_open_tag: 'Off'
    error_reporting: 'E_ALL & ~E_DEPRECATED & ~E_STRICT'

/srv/salt/php.ini.tmpl:

{% macro php_ini_serializer(data) %}
{% for section_name, name_val_pairs in data.items() %}
[{{ section_name }}]
{% for name, val in name_val_pairs.items() -%}
{{ name }} = "{{ val }}"
{% endfor %}
{% endfor %}
{% endmacro %}

; File managed by Salt at <{{ source }}>.
; Your changes will be overwritten.

{{ php_ini_serializer(php_ini_settings) }}

输出文件如下所示:

VVV File starts on the next line


; File managed by Salt at <salt://php.ini.tmpl>.
; Your changes will be overwritten.



^^^ File ends on the previous line

我添加了额外的行,以便 Stack Overflow 可以正确显示输出文件中的空白行。

我希望它看起来像链接这个:

VVV File starts on the next line


; File managed by Salt at <salt://php.ini.tmpl>.
; Your changes will be overwritten.

[PHP]
engine = "On"
short_open_tag = "Off"
error_reporting = "E_ALL & ~E_DEPRECATED & ~E_STRICT"


^^^ File ends on the previous line

Salt 似乎根本没有读取支柱文件。我做错了什么?

【问题讨论】:

    标签: salt-stack


    【解决方案1】:

    看起来php_ini_settings: {{ salt.pillar.get('php_ini', {}) | json() }} 没有将任何数据添加到您的 jinja 模板 salt://php.ini.tmpl 的上下文中。

    要调试检查支柱数据是否可用,请使用pillar module

    salt 'minionid' pilar.ls  # to check the existence of keys
    salt 'minionid' pilar.items  # to explore whole the pillar data of your minion 
    

    支柱数据needs to be applied to minions 类似于使用top.sls 文件的状态。我的猜测是您没有将支柱数据应用于您的奴才。 /srv/pillar/top.sls 是否包含类似的东西?

    base:
      'minionid':
        - php
    

    【讨论】:

    • 文档没有提到添加/srv/pillar/top.sls 文件。添加它并将/srv/pillar/php.sls 文件称为php 使其工作。
    • 我已经链接了涵盖该主题的文档以供进一步阅读。在那里找到东西需要一些时间 - salt 包含许多功能,并且文档有时缺少交叉引用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多