首页 文章

来自sqlite3外柱的盐堆粒数据

提问于
浏览
0

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

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

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

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

这是我用来创建grain文件的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环境变量 .

但我不确定如何从这里到达那里 .

任何帮助是极大的赞赏 .

1 回答

  • 0

    感谢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") %}
    

相关问题