我已经完成了salt和pillar的演练,总的来说,一切都可以按照我的设置进行。实际上,直到现在我还没有发现任何无法正常工作的信息。
这是我首次尝试使用支柱系统。我拥有要保护的访问密钥,因此我希望使用支柱,以便让我可以在选项卡上找到小仆从中获得的副本。
这是我的设置。
目录结构:
[root@master config-mgmt]# tree /srv/pillar
/srv/pillar
├── awscreds.sls
├── data.sls
├── dev
└── top.sls
/srv/pillar/top.sls
文件:
[root@master config-mgmt]# cat /srv/pillar/top.sls
dev:
'roles:*aws*':
- match: grain
- awscreds
'*':
- data
最终,我希望能够在“角色”谷物上进行匹配,但是为了进行此测试,为了使事情简单起见,我只关注全局匹配('*'
)。
对于所有小兵,它都应该运行data
状态,在这里:
[root@master config-mgmt]# cat /srv/pillar/data.sls
info: some data for poc
我从盐主那里运行refresh_pillar
:
[root@master config-mgmt]# salt '*salttest*' saltutil.refresh_pillar
slave-salttesting-01.eng.example.com:
True
似乎还可以。但是,无论是奴隶还是主人,支柱属性都不以任何形式出现。
在母版上:
[root@master config-mgmt]# salt '*salttest*' pillar.ls
slave-salttesting-01.eng.example.com:
关于奴才:
[root@slave-salttesting-01 ~]# salt-call pillar.ls
local:
我正在运行最新版本的salt:
[root@master config-mgmt]# salt --version
salt 2018.3.3 (Oxygen)
有什么主意为什么我的仆从没有选择任何属性吗?
答案 0 :(得分:1)
我找到了解决方案。直到同事建议我检查它之前,我对/etc/salt/master
文件并不熟悉。 salt_pillar
部分有一个dev
的错字(定义为/sr/salt/dev
,而不是/srv/salt/dev
,并且base
被定义为指向默认位置以外的位置。确保将base
设置为/srv/salt
,将dev
设置为/srv/salt/dev
,然后我必须回到/srv/salt
并确保{{1 }}位于top.sls
的位置,我也将/srv/salt
和data.sls
移到了awscreds.sls
,因为我希望它们成为/srv/salt/dev
的一部分。
此后,一切都按预期进行。它表明,不要将任何事情视为理所当然。我以为我们的支柱在起作用,但事实证明它们没有起作用。