我试图了解如何将Salt与诸如Chef之类的角色一起使用,但是我的理解还有些空洞,因为目前无法阅读大量文档。
原则上的问题是,我想像Chef一样尝试用Salt管理角色,但是我不知道如何适当地设置支柱值。我想要做的是通过脚本或手工将角色分配给一个无聊的盒子,然后让机器在上面安装适当的文件。
我不了解的是,我如何设置可以告诉Salt-master特定角色的盒子上要安装什么。我尝试设置一个
salt.pillar('site' => 'my_site1')
在Vagrantfile中,然后在盐状态top.sls
文件中使用
{{ pillar.get('site') == 'my_site1'
-<do some stuff>
但这是行不通的。正确的方法是什么?
python大神给出的解决方案
因此,匹配支柱中的ID变得更加容易。首先,将minion_id设置为可识别的名称,例如test-mysite1-db
(并且首先是唯一的。因此,以用户名首字母结尾)为例。
在top.sls
中的/srv/pillar
中
base:
'<regex_matching_id1>':
- webserver.mysite1
'<regex_matching_id2>':
- webserver.mysite2
然后放入webserver.mysite1
role : mysiteid1
例如。
然后在/srv/state/top.sls
中,您可以与jinja或仅与
base:
'role:mysiteid1':
- match: pillar
- state
- state2
因此,角色是从id派生的。为我工作。