4m1*_*4j1 4 python jinja2 salt-stack
在saltstack文档中说,添加:
{% set node_type = salt['grains.get']('node_type', '') %}
{% if node_type %}
'node_type:{{ self }}':
- match: grain
- {{ self }}
{% endif %}
Run Code Online (Sandbox Code Playgroud)
至
/srv/salt/top.sls
Run Code Online (Sandbox Code Playgroud)
将创造一个叫做的谷物 node_type
我将下面的代码添加到顶层文件中,我想知道为什么我node_type在我的小兵中看不到:
myHost ~ # service salt-master restart; service salt-minion restart;
myHost ~ # salt '*' grains.get "node*"
Run Code Online (Sandbox Code Playgroud)
最后一个命令什么都不返回 我认为这是正常的,因为我还没有定义node_type的/etc/salt/grains
这让我提出一个问题:有什么区别:
top.sls文件中声明node_type和
/etc/salt/grains)或minion文件(/etc/salt/minion)您无法在顶部文件中创建纹理.你能指点我告诉你的文件吗?所有顶级文件都会定义应将哪些Salt状态(sls文件)应用于哪些服务器.
您可以在顶部文件中使用谷物匹配.您没有在顶级文件中声明谷物.
您可以创建一个Salt状态,为您的minion添加一个颗粒,并在您的顶级文件中引用它.文档:http://docs.saltstack.com/en/latest/ref/states/all/salt.states.grains.html#salt.states.grains.present
这是一个例子
$ cat /srv/salt/top.sls
base:
'server01':
- rolegrain
Run Code Online (Sandbox Code Playgroud)
$ cat /srv/salt/rolegrain.sls
role:
grains.present:
- value: application_server
Run Code Online (Sandbox Code Playgroud)
运行高位时,这将导致具有Salt id的服务器具有server01带键role和值的粒度application_server.
这看起来像这样:
salt server01 state.highstate
Run Code Online (Sandbox Code Playgroud)
要么
salt server01 state.sls rolegrain
Run Code Online (Sandbox Code Playgroud)
然后你会得到这个输出
salt server01 grains.item role
server01:
----------
role:
application_server
Run Code Online (Sandbox Code Playgroud)
为了完整起见,这里有一些文档.
顶部文件:http://docs.saltstack.com/en/latest/ref/states/top.html
谷物:http://docs.saltstack.com/en/latest/topics/targeting/grains.html
| 归档时间: |
|
| 查看次数: |
5115 次 |
| 最近记录: |