首页 > 解决方案 > Knife ssh 命令 -X 用户:如何根据节点平台自动指定用户

问题描述

我有 CentOS 和 Ubuntu chef 节点,由于操作系统部署过程,它们之间没有通用 ssh 用户名(但它们确实接受通用 SSH 用户私钥)

所以要对他们运行knife 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'}'

标签: sshchef-infraknife

解决方案


你需要比这更复杂knife ssh的东西。查看像 Fabric、Invoke 和 Capistrano 这样的脚本化 SSH 客户端。或者,您可以使用像 Ruby 的 net-ssh 之类的低级库(这knife ssh是构建的)。


推荐阅读