我的 Fabric无法识别我在 ~/.ssh/config中的宿主。
我的 fabfile.py如下:
from fabric.api import run, env
env.hosts = ['lulu']
def whoami():
run('whoami')
运行 $ fab whoami的结果是:
跑,哇哦
致命错误: 名称查找失败 露露
lulu的名字在我的 ~/.ssh/config里,像这样:
Host lulu
hostname 192.168.100.100
port 2100
IdentityFile ~/.ssh/lulu-key
我解决这个问题的第一个想法是向 /etc/hosts添加类似于 lulu.lulu的东西(我在 Mac 上) ,但是之后我还必须将身份文件传递给 Fabric ——我宁愿将身份验证(即 ~/.ssh/config)与部署(即 fabfile.py)分开。
另外,顺便说一句,如果你试图连接到主机文件中的主机,fabric.contrib.projects.rsync_project似乎不承认 hosts.env中的“端口”(即,如果你使用 hosts.env = [lulu:2100],一个对 rsync_project的调用似乎试图连接到 lulu:21)。
为什么 Fabric 不认识这个 lulu的名字?