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 指定文件。