我有CentOS和Ubuntu主厨节点,由于操作系统部署过程,其中没有常见的ssh用户名(但是他们确实接受了常见的SSH用户私钥)
因此,为了向他们运行刀ssh,我必须为他们指定不同的用户:
knife ssh "platform:centos" "command" -x userX
knife ssh "platform:ubuntu" "command" -x userY
我怎样才能让刀根据节点平台使用适当的ssh用户名:
knife ssh name:* "command" -x '${node['platform']=='centos'?'userX':'userY'}'
答案 0 :(得分:0)
你需要比knife ssh
更复杂的东西。查看脚本化的SSH客户端,如Fabric,Invoke和Capistrano。或者您可以使用像Ruby的net-ssh这样的低级库(这是knife ssh
的基础)。