如何加入两个Salt支柱文件并合并数据?

Tom*_*far 11 salt-stack

有没有办法加入两个支柱文件?

我有一个用户支柱.它是这样的:

users:
  joe:
    sudouser: True
  jack:
    sudouser: False
Run Code Online (Sandbox Code Playgroud)

现在我需要为某些服务器设置不同的用户(即将一些用户添加到一台服务器).所以我创建了新的支柱文件:

users:
  new_user:
    sudouser: True
Run Code Online (Sandbox Code Playgroud)

并将此topfile分配给服务器.但因为键是相同的,它会覆盖第一个键.如果我改变它,我需要更新状态文件(我真的不想要).我该如何处理这个问题?有没有办法告诉盐"合并"文件?

uvs*_*tid 11

有可能至少根据最新的Salt文件关于支柱(截至5188d6c)说明:

需要注意的是,只要避免冲突,支柱命名空间就可以在单个密钥下合并来自多个支柱文件的内容......

我在Salt Helium(2014.7.0)下进行了测试,它按预期工作.


你的例子

支柱档案user_set_a.sls:

users:
  joe:
    sudouser: True
  jack:
    sudouser: False
Run Code Online (Sandbox Code Playgroud)

支柱档案user_set_b.sls:

users:
  new_user:
    sudouser: True
Run Code Online (Sandbox Code Playgroud)

运行pillar.items以确认所有用户在同一个users键下合并:

salt-call pillar.items
...
    users:
    ----------
    jack:
        ----------
        sudouser:
            False
    joe:
        ----------
        sudouser:
            True
    new_user:
        ----------
        sudouser:
            True
...
Run Code Online (Sandbox Code Playgroud)

也可以看看: