Fabric 2如何配置默认主机?
Fabric 2如何配置默认主机?
嗨,我来帮你搞定这个问题!你遇到的情况其实挺常见的,Fabric 2的配置逻辑和Fabric 1确实有点不一样,之前的配置文件写法可能没踩对点子,我给你一步步讲清楚:
1. 修正你的fabric.yml配置格式
你之前写的配置键名有点问题,Fabric 2识别的默认主机配置应该用hosts(复数),或者更细致地在connection节点下配置。给你两个可行的写法:
写法一:直接指定完整的主机地址
default: hosts: "user@host"
写法二:分开配置用户名和主机
default: connection: user: user host: host
这样Fabric就能正确识别默认的远程主机了,不会再跑到本地执行任务。
2. 确认配置文件的位置
Fabric 2会优先读取当前工作目录下的fabric.yml,如果找不到才会去读用户主目录下的~/.fabric.yml。所以你要确保这个配置文件放在你运行fab命令的那个项目目录里,不然配置不会生效哦。
3. 验证配置是否生效
你可以跑个简单的命令确认配置有没有被加载:
fab --info
在输出里找default.hosts或者default.connection相关的内容,要是能看到你设置的主机信息,就说明配置没问题了。这时候再跑fab my_task,就会自动连接到你配置的远程主机啦。
4. 临时替代方案:用环境变量
如果你不想写配置文件,也可以用环境变量临时指定默认主机,比如:
FABRIC_HOSTS=user@host fab my_task
要是想永久生效,把这个环境变量加到你的shell配置文件里(比如~/.bashrc或者~/.zshrc)就行:
export FABRIC_HOSTS=user@host
这样既不用在fabfile里硬编码主机信息,还能让任务在不同项目里复用,完全符合你的需求~
备注:内容来源于stack exchange,提问作者Martin Massera




