我试图从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环境变量。
但我不确定如何从这里到达那里。
非常感谢任何帮助。
答案 0 :(得分: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") %}