如何刷新 Chef Vault 的客户端列表并删除与搜索查询不匹配的节点?
How do I refresh a chef vault's client list and remove nodes not matched by the search query?
我有一个 chef_vault search_query role:myrole
。
我希望 Chef 服务器定期刷新库的搜索查询,添加新节点并删除 任何不再应用角色的节点。
为了测试这一点,将角色应用到节点并且 运行:
knife vault update mevault item1 -S "role:myrole" --mode client
该节点出现在保险库客户端列表中。
然后我从节点中删除了角色并再次 运行 命令,但该节点仍然出现在保险库客户端列表中。我也用 --clean 开关尝试了这个命令,但是没有从客户端列表中删除节点它似乎不适用于刷新命令。
带清理开关的保险库更新命令有效,但我必须将搜索查询硬编码到其中,我只想刷新已应用于保险库项目的搜索查询。
您必须 运行 knife rotate
,这将更新共享密钥并删除所有与搜索查询不匹配的主机:
knife vault rotate keys VAULT ITEM
秘密本身使用共享密钥加密,所有节点都可以通过 ITEM_keys
数据包项对其进行解密。因此,需要轮换此密钥。
好的,所以我想我有一个可能的解决方案,但我不喜欢它。
clean 开关在刷新时不起作用,而带有 --clean 的更新命令会删除节点,如果不在命令中对查询进行硬编码,它不会添加新节点(我只想重新 运行保险库配置的查询)所以这就是我想要的:
knife vault update vault123 item1 --mode client --clean
knife vault refresh vault123 item1 --mode client
尽管删除整个客户端列表并重新添加它们我并不害怕,但我也担心这对许多节点来说有多安全。我可以安排并完成它,但我认为这可能很愚蠢。
或者我可以让脚本将搜索查询从保险库中提取出来,并用它来 运行 保险库更新。
有人可以建议更好的方法...
我有一个 chef_vault search_query role:myrole
。
我希望 Chef 服务器定期刷新库的搜索查询,添加新节点并删除 任何不再应用角色的节点。
为了测试这一点,将角色应用到节点并且 运行:
knife vault update mevault item1 -S "role:myrole" --mode client
该节点出现在保险库客户端列表中。 然后我从节点中删除了角色并再次 运行 命令,但该节点仍然出现在保险库客户端列表中。我也用 --clean 开关尝试了这个命令,但是没有从客户端列表中删除节点它似乎不适用于刷新命令。
带清理开关的保险库更新命令有效,但我必须将搜索查询硬编码到其中,我只想刷新已应用于保险库项目的搜索查询。
您必须 运行 knife rotate
,这将更新共享密钥并删除所有与搜索查询不匹配的主机:
knife vault rotate keys VAULT ITEM
秘密本身使用共享密钥加密,所有节点都可以通过 ITEM_keys
数据包项对其进行解密。因此,需要轮换此密钥。
好的,所以我想我有一个可能的解决方案,但我不喜欢它。
clean 开关在刷新时不起作用,而带有 --clean 的更新命令会删除节点,如果不在命令中对查询进行硬编码,它不会添加新节点(我只想重新 运行保险库配置的查询)所以这就是我想要的:
knife vault update vault123 item1 --mode client --clean
knife vault refresh vault123 item1 --mode client
尽管删除整个客户端列表并重新添加它们我并不害怕,但我也担心这对许多节点来说有多安全。我可以安排并完成它,但我认为这可能很愚蠢。
或者我可以让脚本将搜索查询从保险库中提取出来,并用它来 运行 保险库更新。
有人可以建议更好的方法...