如何为Fabric2设置默认主机以省略-H参数?
解决Fabric 2默认省略
-H参数的方案 我来帮你搞定这个问题!其实Fabric 2是支持预设默认目标主机的,可能你之前没挖到正确的配置路径,下面给你几个实用的方案,按需选择:
方案1:使用Fabric配置文件(推荐)
Fabric 2会自动读取项目根目录或用户主目录下的fabric.yml(或config.yml)配置文件,你可以在里面预设默认主机:
- 在你的项目根目录创建
fabric.yml文件,写入以下内容:
# 单主机配置 hosts: web1 # 如果是多主机,写成列表形式: # hosts: # - web1 # - web2
- 保存后,直接运行
fab2 upload_and_unpack,Fabric会自动加载配置里的主机参数,不用再手动加-H了。
小贴士:如果用户主目录和项目目录都有配置文件,项目目录的配置会优先生效,方便不同项目用不同的默认主机。
方案2:Shell别名快速搞定
如果不想折腾配置文件,直接给fab2设置shell别名是最快捷的方式:
- 根据你使用的shell,编辑对应的配置文件:
- Bash:编辑
~/.bashrc - Zsh:编辑
~/.zshrc
- Bash:编辑
- 在文件末尾添加一行:
alias fab2='fab2 -H web1'
- 执行以下命令让配置生效:
# Bash用户 source ~/.bashrc # Zsh用户 source ~/.zshrc
之后你输入fab2 upload_and_unpack,shell会自动替你补上-H web1参数。不过这个方案的缺点是切换主机时需要修改别名,适合固定使用单一主机的场景。
方案3:通过环境变量预设
Fabric 2也支持通过环境变量传递默认主机参数:
- 同样在shell配置文件(
~/.bashrc或~/.zshrc)里添加:
export FABRIC_HOSTS=web1 # 多主机的话用逗号分隔:export FABRIC_HOSTS=web1,web2
- 执行
source命令生效后,运行fab2命令时就会自动读取这个环境变量作为默认主机。
内容的提问来源于stack exchange,提问作者zwidny
相关产品推荐
相关产品推荐

