Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
刀子ssh命令-X user:如何根据节点平台自动指定用户_Ssh_Chef Infra_Knife - Fatal编程技术网

刀子ssh命令-X user:如何根据节点平台自动指定用户

刀子ssh命令-X user:如何根据节点平台自动指定用户,ssh,chef-infra,knife,Ssh,Chef Infra,Knife,我有CentOS和UbuntuChef节点,由于OS部署过程,它们之间没有通用的ssh用户名(但它们接受通用的ssh用户私钥) 因此,要对它们运行ssh,我必须为它们指定不同的用户: knife ssh "platform:centos" "command" -x userX knife ssh "platform:ubuntu" "command" -x userY 如何让knife根据节点平台使用合适的ssh用户名,如下所示: knife ssh name:* "command" -x '

我有CentOS和UbuntuChef节点,由于OS部署过程,它们之间没有通用的ssh用户名(但它们接受通用的ssh用户私钥)

因此,要对它们运行ssh,我必须为它们指定不同的用户:

knife ssh "platform:centos" "command" -x userX
knife ssh "platform:ubuntu" "command" -x userY
如何让knife根据节点平台使用合适的ssh用户名,如下所示:

knife ssh name:* "command" -x '${node['platform']=='centos'?'userX':'userY'}'

为此,您需要比
ssh
更复杂的东西。查看脚本化SSH客户端,如Fabric、Invoke和Capistrano。或者您可以使用一个较低级别的库,比如Ruby的NetSSH(这就是
shove ssh
的基础)