【问题标题】:Salt stack grains data from sqlite3 external pillar来自 sqlite3 外部支柱的盐堆颗粒数据
【发布时间】:2017-08-24 17:31:45
【问题描述】:

我正在尝试从 sqlite3 数据库中提取结果(设置为外部盐柱)并使用 jinja 模板来设置谷物数据。

这是我的盐主文件的相关部分:

sqlite3:
    database: '/var/lib/salt/stations.db'
    timeout: 5.0

ext_pillar:
    - sqlite3:
        fromdb:
            query: 'SELECT * FROM table;'

这里是我用来创建grains文件的init.sls文件的相关部分:

{% set station_id = salt['grains.filter_by']({
    {% for row in query_result %}
    {% hostname = station_id %}
}, default="UNKNOWN", grain="host") %}

我确认外部支柱通过运行产生结果

salt '*' sqlite3.fetch /var/lib/salt/stations.db 'SELECT * FROM test;'

但我不知道如何将结果放入 jinja 文件中。

我想要类似的东西

'SELECT * FROM table WHERE hostname=station_id LIMIT 1;'

并使用结果设置名为'hostname'的grain环境变量。

但我不知道如何从这里到达那里。

非常感谢任何帮助。

【问题讨论】:

    标签: sqlite jinja2 salt-stack


    【解决方案1】:

    感谢 Saltstack IRC 中的好人,这个问题得到了解决。

    大师:

    - sqlite3:
        station_map:
            query: 'SELECT hostname, id
                      FROM stations
                    WHERE hostname like ?'
    

    init.sls:

    {% set station_id = salt['grains.filter_by']({
        {% for row in station_map %}
        {{ hostname }} : {{ station_id }}
    }, default="UNKNOWN", grain="host") %}
    

    【讨论】:

      猜你喜欢
      • 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
      相关资源
      最近更新 更多