Rundeck的命令行工具

Rundeck也提供了命令行下的操作方式,根据官方文档做了一些总结如下
dispatch

-V :打开debug调试信息
-q, --quiet :只显示error级别的日志
-C, --threadcount *COUNT* : 指定执行命令时的线程数
-K, --keepgoing :即使出现错误信息也继续执行
-F, --filter *FILTER* :设置一个node过滤的字符串
-filter-exclude-precedence *true|false* : Set the exclusion filter to have precedence or not.
-p *NAME* : 指定project名称,只有这一个参数时,dispatch将显示project下的所有node
-- *COMMAND_STRING* :指定所要执行的命令
-s, --script *SCRIPT* :指定要执行的脚本文件
-u, --url *URL* :从url中获取脚本文件并执行
-S, --stdin : 从标准输入读取脚本
-f, --follow :将命令输出同步到console,可与-q配合使用
-r, --progress :在follow模式下显示执行进度
 
执行结果
0 : 所有命令执行成功
1 : 一个或多个命令执行失败
127 : 未知的错误

示例

dispatch -F 'tags: web' -- sudo apachectl restart
dispatch -F 'hostname: web.*' -K -- apachectl status
dispatch -F 'tags: dev' -K -C 3 -- sh -c update.sh
dispatch -F 'tags: web' -s myscript.sh
dispatch -F 'tags: dev' -u http://ops.example.com/scripts/myscript.sh
echo "uname -a" | dispatch -F 'os-family: unix' --stdin
dispatch -F 'os-family: unix' -- uptime
dispatch -F 'os-family: unix' -f -- uptime
rd-jobs
rd-jobs [*action*] [*action options*]...
list : 默认的action,列出所有node
-g, --group *GROUP* : Group Name。列出group里的jobs
-i, --idlist *ID* : Job ID List. 根据jobid列出jobs,逗号分隔
-n, --name *NAME* : Job Name. 根据job name列出jobs.
-f, --file *FILE* : File path. 将jod的定义存储在文件中
-F, --format *FORMAT* : File Format. 在存储时定义文件格式,YAML或XML,默认XML
load : 上传job文件到服务器
-d, --duplicate *update|skip|create* : 上传job文件时选择update更新现有job,skip忽略已存在的job,create创建job,默认update
-r, --remove-uuids : 上传job文件时设置去掉UUID,默认值false
-f, --file *FILE* : 设置需要上传的job文件路径
-F, --format *FORMAT* : 设置需要上传的job文件格式,YAML或XML,默认xml
purge : 删除job
同list的action

示例

rd-jobs -p demo
rd-jobs -i 123 -p demo
rd-jobs -i 1,23,4 --file out.xml -p demo
rd-jobs -i 1,23,4 --file out.yaml --format yaml -p demo
rd-jobs load -f jobs.xml
rd-jobs load -f jobs.yaml -F yaml
rd-jobs load -f jobs.xml -d skip
rd-project
-a    create. 当前只支持create操作
-p    project名称,必需项
--property=value    设置project属性的值,可设置多个

示例

rd-project -a create -p production
rd-project -a create -p production --project.ssh-keypath=/path/to/keyfile --resources.source.1.config.file=/path/to/resources
rd-queue

rd-queue [*action*] [-h] [-e id] [-p project]
list : 列出正在执行的jobs,默认选项
-m, --max    设置最多结果数,默认20.
-o, --offset   取消第一个结果的展示,默认0,没看懂
follow : 根据id查看正在执行的jobs的输出
kill : 根据id杀掉正在执行的jobs
 
-e, --eid  正在执行的job id,用于kill和follow
-p    Project名称,用于list

run
run [-h] [-v] [-l level] [-F nodefilters] [-i id] [-j group/name][-- arguments]
-v : 以详细模式执行.
-l, --loglevel *LEVEL* : 设置日志级别,verbose, info, warning, error.
-F, --filter *FILTER* : node的过滤字符串
-C *COUNT* : 线程数,默认1.
-K : 当有node执行失败时继续执行下面的node.
-N : 当有node执行失败时停止执行.
-j, --job *NAME* : 指定job name或group eg: 'group/name'.
-i, --id *IDENTIFIER* : 指定job id
-- *ARGUMENTS* : Pass the specified ARGUMENTS as options to the job
-f, --follow : 跟踪执行过程中的日志输出
-r, --progress : 打印进度,follow模式可用
-q, --quiet : 安静模式,不打印输出,follow模式可用.

发表评论

电子邮件地址不会被公开。 必填项已用*标注