有没有办法在文件中提供的主机上运行刀ssh?

时间:2015-02-18 23:42:40

标签: ssh chef knife

在向现有角色添加一堆新主机时,我想在新主机上运行chef-client。

有没有办法做刀ssh并在本地文件中提供主机列表? 因为如果我引用该角色,它将在所有(新的+现有的)主机上运行。

2 个答案:

答案 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。