在向现有角色添加一堆新主机时,我想在新主机上运行chef-client。
有没有办法做刀ssh并在本地文件中提供主机列表? 因为如果我引用该角色,它将在所有(新的+现有的)主机上运行。
答案 0 :(得分:2)
正如@Tejay所提到的,你的食谱应该是幂等的,所以你不必担心"不需要"厨师在一些节点上运行。
在服务器的确切列表上运行ssh knife ssh的Soulution是使search query与所有节点匹配,例如:
knife ssh 'name:server01 OR name:server02 OR ..'
或使用manual-list
标志(请查看knife ssh doc)
-m, --manual-list
Use to define a search query as a space-separated list of servers.
If there is more than one item in the list, put quotes around the
entire list. For example: --manual-list "server01 server 02 server 03 .."
答案 1 :(得分:0)
你可以拥有一个文件,例如。 server.txt,包含服务器列表
你的命令应该是这样的
knife ssh -m "$(cat servers.txt)" "chef-client" -P
应循环文件并在每个节点中执行chef-client。