RunDeck 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
RunDeck 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
RunDeck 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 Java 查看源码 »
操作系统 跨平台
软件类型 开源软件
所属分类 管理和监控系统监控
开源组织
地区 不详
投 递 者 dccte
适用人群 未知
收录时间 2014-01-24

软件简介

RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者web界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。

RunDeck的作用:

  1. 在浏览器中执行服务器上任何非交互命令,比如ps, /etc/init.d/xxx restart,注意ssh之类的要在执行中输入密码的肯定不支持

  2. 对接服务器上的一键运维脚本,变成一个Job, 执行时只要点击按钮Run

  3. 自动记录命令操作记录和输出。

预览一下官网的几张图片:

Share Standard Operating Procedures
输入图片说明

Job Scheduler
输入图片说明

Automated Deployment After a Build
输入图片说明

Self-Service Test Environments
输入图片说明

Data Processing Jobs in the Cloud
输入图片说明

注意: 上面的几张部署图中的rundeck方块,如果替换成“命令行运维脚本”,照样能完成各自的目的,但是命令行相比RunDeck,缺少了两样Rundeck特有的特性:
- 在浏览器上按钮操作
- 记录命令的执行记录和输出结果

再看看Rundeck执行Job时的屏幕截图:
输入图片说明

Rundeck与自动化工具Fabric的对比

Fabric 是一个 Python (2.5 或更高) 库和命令行工具,用于连接到 SSH 服务器并执行命令。

Rundeck服务运行的结点称为Server,Rundeck还可以添加其他结点叫node,只要设置自动登录所需的ssh帐号和密码,Rundeck就能涵盖Fabric的功能,但是不推荐这样使用,一旦Rundeck服务器无效,就连在命令行完成这些运维也不可能了。

建议的使用方式是:所有运维脚本都存放在Rundeck服务器上,提供命令行调用和RunDeck调用两种方式,为命令行调用提供交互输入帐号和密码的功能,为Rundeck调用提供参数输入帐号和密码的功能。

Rundeck的安全问题

在浏览器中打开Rundeck服务器,并登录后,执行命令的帐号和权限,就是启动Rundeck服务的帐号和权限。
所以如果以root启动Rundeck服务,那么在Rundeck中输入任何命令,都是以root执行,包括rm -rf /,init 0等危险操作都可执行。
建议专门建立rundeck帐号启动Rundeck服务,并控制rundeck帐号的权限。

RunDeck Web界面的登录帐号管理,默认管理员帐号是admin,密码admin,帐号和密码信息,只保存在配置文件中,可用的group是admin和user,可以设置user的权限,比如定义job,执行job等。更高级的权限得使用付费版的RunDeck Pro。

RunDeck服务器的资源消耗

RunDeck服务是一个standalone jar包,占用内存约500M。

RunDeck服务器上已定义Job的执行方式

  1. Web界面上点击Run人工执行

  2. 通过RunDeck的命令行工具run执行

  3. RunDeck中设置为周期执行,就像cron一样。

  4. 通过Rest API,由其他http client执行,比如curl命令。

上面第2种方式,用命令行工具run执行RunDeck job,好像有点多此一举,但正是此方式特别适用于手工或自动的服务器状态巡查。巡查必须要留下记录,不然只是巡查者的一面之辞。

RunDeck服务器上Job的执行如何判断成功或失败

很简单,执行后,如果rc是0,就是成功,否则就是失败。
rc(Return Code),可以这样查看rc:

shen@debian:~$ ls / 2>1 >/dev/null; echo $? 0 shen@debian:~$ ls /asdfsdf 2>1 >/dev/null; echo $? 2

RunDeck安装与使用实例

RunDeck,是我到现在为止,用过的Web服务器中,安装和使用最简单的。

第1步:在准备安装Rundeck服务的Linux机器上安装jre,推荐OpenJDK

Redhat/CentOS

sudo yum install openjdk-7-jre


Debian/Ubuntu 

sudo apt-get install openjdk-7-jre

下面是安装后的版本信息:

shen@debian:~$ java -version
java version "1.7.0_79" OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-1~deb7u1)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

第2步:下载rundeck jar包,并启动服务器

http://rundeck.org/downloads.html

下载 rundeck-launcher-2.5.1.jar,官方说明如下:

Put it in a directory named ~/rundeck
Execute:
java -jar rundeck-launcher-2.5.1.jar


下载有点慢(晚上下载速度5KB/s,早上7点893KB/s),我已下载并放在百度云盘上: http://pan.baidu.com/s/1i3EMcNb

我放在目录/home/shen/rundeck下运行:

cd /home/shen/rundeck
java -jar rundeck-launcher-2.5.1.jar

输入图片说明

最行一行输出的:Started表示已启动完成,:4440表示服务的端口为4440

浏览器中输入网址: http://localhost:4440
输入图片说明

输入帐号admin,密码admin,登录:
输入图片说明

第3步:创建一个Project,比如adhoc,先体验一下在Web输入和执行命令。

输入图片说明

输入图片说明
因为只在Rundeck服务器上运行本地命令,所以Resource Model Source删除yml文件,Default Node Executor选择Stub,Default Node File Copier也选择Stub。

输入图片说明

进入顶上Tab: Commands
输入图片说明

执行本地命令 pwd,应该输出:/home/shen/rundeck
输入图片说明
输入图片说明
输入图片说明
输入图片说明
点击Run on 1 Node:
输入图片说明
pwd命令的输出:/home/shen/rundeck正是rundeck服务启动位置。

执行 whoami,应该输出:shen
输入图片说明

上面两条命令返回状态都是绿色Successed,表示执行成功(rc=0),
接下去尝试一个返回失败的命令ls /asdfsdf

输入图片说明
第3条命令返回状态都是红色Failed,表示执行失败(rc!=0),上图中输出的第1行是运行stderr输出,第2,3,4行是Rundeck额外输出,提示出错原因:**Return code was 2**

接下去看看已经执行的3条命令的执行记录和输出,这里体现了Rundeck的最重要的特性。直接在Terminal下执行命令,是不可能事后找回命令输出的。

点击网页第一行右上角的Activity:
输入图片说明
上图展示了3条已执行命令的执行编号,命令输入、执行时间、执行者,成功或失败状态。

点击#3,进去查看第3条命令的执行详情:
输入图片说明

点击标签页(Summary | Report | Log Output | Definition)中的Log Output,可以看到执行的输出,包括stdout和stderr:
输入图片说明

点击View Options,可以设置某些选项:
输入图片说明

下面点击网页右上角的Run Again:
输入图片说明

更改命令为ls /asdfsdf /,并点击Run on 1 Node:
输入图片说明
上图中只显示了输出结果的最后20行,点击#4进去看执行详情:
输入图片说明
上图中列出了执行的所有stdout与stderr输出。

第4步:创建另一个Project,比如jobs(乔布斯, ),体验job的定义和一键执行。

输入图片说明

点击“Create a new job”,或者点击右上角的Create Job > +New Job…
输入图片说明

按下图输入Job Name和Description
输入图片说明

输入图片说明
在Add a Step中点击Execute an inline script
输入图片说明
如上图,Enter the entire script to execute中输入ls /abcd1234 /
点击Save,保存Step定义,一个Job中可以有多个Step,我们的第一个Job是最简单的定义,只有一个步骤,该步骤中直接包含1个命令。

输入图片说明
点击Create完成Job定义:
输入图片说明
点击Run Job Now:
输入图片说明
查看Log Output:
输入图片说明

点击网页左上角的RUNDECK,回到首页:
输入图片说明

点击Project jobs的链接“1 Execution In the last day”:
输入图片说明
可以看到此Project的最近Job或Command的执行历史。

点击网页第一行的Jobs可以看到该Project的Job列表:
输入图片说明

下面在添加一个Job: how,探索一下Rundeck是怎么执行Job的。
输入图片说明

Step定义为如下脚本:

echo '`pwd` ->' pwd echo '$0 ->' echo $0 echo '`ps` ->' ps


输入图片说明

Job执行结果:
输入图片说明
Job执行时,创建了一个/tmp/下的临时脚本文件:
/tmp/1-6-debian-dispatch-script.tmp.sh

ps列出的是ps进程及它的祖先进程,其他java就是rundeck服务。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(4) 发布并加入讨论🔥
发表了资讯
2019/02/24 07:04

运维利器 RunDeck v3.0.15 发布, 服务器自动化操作

运维利器 RunDeck v3.0.15 已发布。RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 Web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 3.0.15 代号为 "jalapeño popper olivedrab lamp",新版更新主要是社区新闻侧边栏的风格的修正,相关的 Issues 有: exclusively css fixes for the community news and version notificatio...

0
20
发表了资讯
2019/01/25 07:12

运维利器 RunDeck 3.0.13 发布, 服务器自动化操作

运维利器 RunDeck v3.0.13 已发布。RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 Web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 更新内容如下: potential stored XSS vulnerability (https://github.com/rundeck/rundeck/pull/4406) add Content-Security-Policy and other security HTTP headers to responses (see more...

0
26
发表了资讯
2018/08/28 08:21

运维利器 RunDeck v3.0.4 发布, 服务器自动化操作

运维利器 RunDeck v3.0.4 已发布。RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 Web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 3.0.4 代号为 "jalapeño popper chartreuse bullhorn" 更新内容主要是修复 bug: 修复:GUI 中删除过期的令牌按钮 修复 #3921项目描述返回菜单/主页上的项目列表 rd ui : 侧边栏覆盖 - 遗漏 ...

0
15
发表了资讯
2018/08/19 07:10

运维利器 RunDeck v3.0.2 发布, 服务器自动化操作

运维利器 RunDeck v3.0.2 已发布。RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 Web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 3.0.2 代号为 "jalapeño popper brown book" 更新内容: System prop -Dserver.web.context doesn't work. (nginx is broken after upgrade 3.0.1) Fix #3828 node names with / break GUI out...

0
7
发表了资讯
2018/08/05 07:05

运维利器 RunDeck v3.0.1 发布, 服务器自动化操作

运维利器 RunDeck v3.0.1 已发布。RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 Web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 3.0.1 代号为"jalapeño popper blue bell" 更新内容: Add jetty password encoding compatibility to spring security password validation Allow runtime i18n message substitutes. Authent...

0
12
发表了资讯
2018/07/28 07:58

运维利器 RunDeck v3.0.0 正式版发布, 服务器自动化操作

运维利器 RunDeck v3.0.0 正式版已发布。RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 Web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 3.0.0 代号为"jalapeño popper aquamarine apple" 更新日志显示,Rundeck 3.0 包括底层的更改(升级底层应用程序框架)和可视化更改(改进的UI)。新的用户界面进一步提升可用性和灵活性...

1
14
发表了资讯
2018/07/08 08:08

运维利器 RunDeck v3.0.0-beta1,服务器自动化操作

RunDeck v3.0.0-beta1 已发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 该版本暂未提供更新内容,你可以查看 ChangeLog 关注更新动态。 下载地址: Source code (zip) Source code (tar.gz)...

1
12
发表了资讯
2018/07/07 06:06

运维利器 RunDeck 2.11.5 发布,服务器自动化操作

RunDeck 2.11.5 已发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 该版本暂未提供更新内容,你可以查看 ChangeLog 关注更新动态。 下载地址: Source code (zip) Source code (tar.gz)...

1
6
发表了资讯
2018/06/09 07:35

运维利器 RunDeck 2.11.4 发布,服务器自动化操作工具

RunDeck 2.11.4 已发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 该版本暂未提供更新内容,你可以查看 ChangeLog 关注更新动态。 下载地址: Source code (zip) Source code (tar.gz)...

1
14
发表了资讯
2018/05/12 07:35

运维利器 RunDeck 2.11.3 发布,服务器自动化操作

RunDeck 2.11.3 已发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 该版本暂未提供更新内容,你可以查看 ChangeLog 关注更新动态。 下载地址: Source code (zip) Source code (tar.gz)...

1
12
发表了资讯
2018/05/11 06:54

运维利器 RunDeck 2.11.2 发布,服务器自动化操作

RunDeck 2.11.2 已发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 根据更新日志,本次更新主要是修复 bug 以及添加一个 API(从执行和失败节点中重试作业)。 Issues Milestone 2.11.2 API: Run job based on execution (retryExecId) Updating py-winrm plugin to 1.0....

1
15
发表了资讯
2018/05/06 06:53

运维利器 RunDeck 2.11.1 发布,服务器自动化操作

RunDeck 2.11.1 已发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 发布说明显示本次的更新集中在错误修复、国际化和法语翻译的改进这几个方面。 Issues Milestone 2.11.1 i18n translation of you i18n French Date/Time Format Problem with cascade delete of executio...

2
17
发表了资讯
2018/04/28 07:49

RunDeck v2.11.0发布,带来大量新特性与 bug 修复

RunDeck v2.11.0发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 新特性: SCM/Git 插件: 工作在集群模式 增强 jobs page 加载速度 可以在 GUI 中关闭 SCM 状态检测 Projects: 设置一个标签来显示而不是名称 新的默认值:projectsStorageType 默认为 db Job Options: 设置...

0
2
发表了资讯
2018/03/26 07:51

运维利器 RunDeck 2.10.8 发布,服务器自动化操作

RunDeck 2.10.8 已发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 修复: 修复导致 Vault key storage 插件无法正常工作的问题 修复使用 MSSQL 或 Oracle DB 字段类型的集群模式问题 改进: SCM git 插件改进 #3192: 导入时刻删除已从 git 中移除的作业 更新 API 以包含作...

3
26
发表了资讯
2018/03/06 07:19

运维利器 RunDeck 2.10.7 发布,服务器自动化操作

RunDeck 2.10.7 已发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 暂未发现该版本的更新内容,点此保持关注。上个版本 2.10.6 解决了一些社区报告的 issue: ${config.*} plugin variables not resolving after upgrade to 2.1.1 Fix issue: stacktrace if missing input...

0
12
发表了资讯
2018/02/04 07:31

运维利器 RunDeck 2.10.6 发布,服务器自动化操作

RunDeck 2.10.6 已发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 更新内容: Job Reference by UUID Scm cluster config Upgrading ansible plugin version to 2.2.2 Fix #3012 admin access required to modify project config/nodes in gui Adjustments for rundeck p...

1
13
发表了资讯
2018/01/27 07:46

运维利器 RunDeck 2.10.5 发布,服务器自动化操作

RunDeck 2.10.5 已发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 该版本暂未提供更新内容,更新情况请关注发布主页或提交记录 下载地址: Source code (zip) Source code (tar.gz)

9
21
发表了资讯
2018/01/18 07:32

运维利器 RunDeck 2.10.3 发布,服务器自动化操作

RunDeck 2.10.3 已发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 暂未发现该版本的更新内容,点此保持关注。上个版本 2.10.2 是一个 bug 修复版本,修复了众多由社区报告的 bug。 源码下载 Source code (zip) Source code (tar.gz)...

1
18
发表了资讯
2017/12/20 07:18

RunDeck 2.10.2 发布,服务器自动化操作

Rundeck 2.10.2 已发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 该版本的名字为"cafe mocha violet tent",是一个 bug 修复版本,修复了众多由社区报告的 bug: Issues Milestone 2.10.2 Fix starting rundeck in /var/log/rundeck for debian Missing plugin icon fo...

1
11
发表了资讯
2017/11/24 06:50

Rundeck 2.10.1 发布,服务器自动化操作

Rundeck 2.10.1 已发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 该版本的名字为“cafe mocha tomato knight”,更新内容包括主要的 bug 修复,以及一些功能增强: Enhancements: New: Global Variable step plugin: copy captured data values into a global context ...

0
18
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
4 评论
334 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部