ssh - 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'}'
解决方案
你需要比这更复杂knife ssh
的东西。查看像 Fabric、Invoke 和 Capistrano 这样的脚本化 SSH 客户端。或者,您可以使用像 Ruby 的 net-ssh 之类的低级库(这knife ssh
是构建的)。
推荐阅读
- c# - Nethereum Wallet.GetAccount() 给出 EntryPointNotFound 异常
- python - 从 django 中的 API 获取数据
- javascript - 用于 React Native 的 Adyen Drop-In 支付网关库
- swift - 单击集合单元格时如何将数据过滤到表格中?
- python - 修改后的消费者/生产者的正确性
- github - github org 会员身份被锁定为私密
- python - 如何为 sklearn MultiOutputRegressor() 中的每个目标而不是整体 R2 获取 R2?
- sql - 在 SQL 中滚动 3 个月的总和
- python - 使用 python 中的 speech_recognition 模块进行语音识别
- youtube-api - 使用频道 ID 进行 YouTube 数据 API v3 搜索不会返回某些视频