fab命令详解

Fabric安装后,会为系统安装一个fab命令,这个命令和java命令一样,具有非常多的功能。


fab命令

fab作为Fabric的命令行入口,提供了丰富的参数调用,命令格式如下:

fab [options] – [shell command]
  • options 可选参数,预定义了一些选项,事项不同的功能,呆会介绍
  • shell command 是一些shell命令

options参数

optioins可以取下面的参数,含义如下:

-I:显示定义好的任务函数名 -f:指定fab入口文件,默认入口文件名为fabric.py,如果当前目录不存在fabric.py,则必须用-f参数指定一个新的文件,不然会报错。 -g:指定网关设备,比如跳板机环境,填写跳板机IP即可。 -H:指定目标主机,多台主机用“,”分隔。 -P:已异步的方式运行多个主机任务,默认为串行运行。 -R:指定角色(role),已角色区分不同的业务组设备。 -t:设置设备连接超时时间。 -T:设置远程主机命令执行超时时间。 -w:当命令执行失败,发出警告,而非默认终止任务。

-l #显示定义好的任务函数名 -f #指定fab入口文件,默认入口文件名为fabfile.py -f #指定网关(中转)设备,比如堡垒机环境,填写堡垒机IP即可 -H #指定目标主机,多台主机用‘,’号分隔 -p #远程账号的密码,fab执行时默认使用root账户 -P #以异步并行方式运行多主机任务,默认为串行运行 -R #指定role(角色),以角色名区分不同业务组设备 -t #设置设备连接超时时间(秒) -T #设置远程主机命令执行超时时间(秒) -w #当命令执行失败,发出警告,而非默认中止任务。

命令选项 含义
-h, --help 显示帮助信息
-d NAME, --display=NAME 显示一个任务的详细信息,如有无参数,有无任务说明
-F FORMAT, --list-format=FORMAT formats --list, choices: short, normal, nested
-I, --initial-password-prompt 在fab命令中添加此选项后,最开始就要求你录入远程主机密码
--initial-sudo-password-prompt 同上
-l, --list 列出文件中的所有命令
--set=KEY=VALUE,... 设置环境变量的值,多个值用逗号分隔
--shortlist -F 的别名
-V, --version 显示fabric的版本
-a, --no_agent 不使用ssh代理
-A, --forward-agent forward local agent to remote end
--abort-on-prompts abort instead of prompting (for password, host, etc)
-c PATH, --config=PATH 指定配置文件的路径
--colorize-errors 让输出的内容有颜色
-D, --disable-known-hosts 不加载未知的host文件
-e, --eagerly-disconnect 完成任务后,尽可能快的断开与主机的连接
-f PATH, --fabfile=PATH 指令任务所在的python文件
--gss-auth Use GSS-API 授权
--gss-deleg Delegate GSS-API client credentials or not
--gss-kex Perform GSS-API Key Exchange and user authentication
--hide=LEVELS 需要被隐藏的日志等级s
-H HOSTS, --hosts=HOSTS comma-separated list of hosts to operate on
-i PATH SSH private key file的路径
-k, --no-keys 不从 ~/.ssh/ 这里加载ssh key文件
--keepalive=N 每N秒检查一下连接状态
--linewise 以行为单位,打印日志
-n M, --connection-attempts=M 放弃连接前,做M次重试
--no-pty 在伪终端中不能使用 run/sudo 命令,伪终端一般指远程连接的终端
-p PASSWORD, --password=PASSWORD 指定密码
-P, --parallel 在几台机器上并行执行某个任务
--port=PORT ssh连接的端口,默认是22
-r, --reject-unknown-hosts 拒绝未知的主机
--sudo-password=SUDO_PASSWORD 超级管理员密码
--system-known-hosts=SYSTEM_KNOWN_HOSTS load system known_hosts file before reading user known_hosts
-R ROLES, --roles=ROLES 角色定义
-s SHELL, --shell=SHELL 指定远程的shell, 默认是 '/bin/bash -l -c'
--show=LEVELS 输出日志的等级
--skip-bad-hosts 跳过不能ping通的主机
--skip-unknown-tasks 跳过位置的任务
--ssh-config-path=PATH 如果使用ssh文件连接,制定ssh配置文件的路径
-t N, --timeout=N 设置几秒后连接超时
-T N, --command-timeout=N 设置远程执行的命令多久超时
-u USER, --user=USER 连接远程主机的用户名
-w, --warn-only 当命令失败时,只警告,但是会继续执行后面的语句
-x HOSTS, --exclude-hosts=HOSTS 不连接的主机
-z INT, --pool-size=INT 并行模式下,使用的最大进程数量

举几个例子

学习上面options选项参数,我们举几个例子。


查看帮助

fab -h

会列出所有帮助信息。


列出某个py文件中可用的命令

下面的命令,列出fabfile.py中的命令

fab -l

结果

Available commands:

    hello

其他选项,大家可以看一下选项的解释,很快就能理解。

如果执行目录下,没有 fabfile.py 文件,那么需要 -f 指定文件。