rundeck 介绍

Rundeck 是一款能在数据中心或云环境中的日常业务中使程序自动化的开源软件。Rundeck 提供了大量功能,可以减轻耗时繁重的体力劳动。团队可以相互协作,分享如何过程自动化,查看业务活动或执行任务。Rundeck 允许您运行任意数量的节点从一个基于 web 的任务或命令行界面。Rundeck 还包括其他功能,使其易于扩展,您自动化努力包括 ︰ 访问控制、 工作流建设、 调度、 记录和与外部源节点和选项数据集成。具体流程图参照官网的如下:

安装

Rundeck 是你主机系统的服务器应用程序你指定一个中央行政控制中心。内部,Rundeck 将作业定义和执行历史记录存储在关系数据库中。输出从命令和工作处决保存在磁盘上,但可以转发到远程存储例如logstash。

Rundeck 分布式执行使用默认为 SSH 但插件允许您使用其他手段如 MCollective、 Salt、 WinRM 或自定义的方法的可插拔的节点执行层的命令。Rundeck 服务器配置包括定义允许的远程主机的出站用户的设置。远程计算机不需要回发到服务器进行连接。

1、安装JDK

Rundeck 是一个基于 Java Servlet 服务器,因此需要支持Java 运行环境

#java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

2、安装Rundeck

  • 这里使用的是rundeck的jar包安装,读者也可以采用rpm包方式的安装,这里看个人喜好,版本为目前最新版本,下载地址 http://rundeck.org/downloads.html
rundeck-launcher-2.6.3.jar
  • 定义Rundeck的环境变量来进行下一步的安装
#vim /etc/profile 在末尾添加
export RDECK_BASE=/opt/programs/rundeck_2.6.3 安装目录可以自己定义
#source /etc/profile
#echo $RDECK_BASE
/opt/programs/rundeck_2.6.3
  • 定义安装目录后创建之后才能安装
#mkdir -p $RDECK_BASE
  • 复制下载的jar包到安装目录夹中
#cp rundeck-launcher-2.6.3.jar $RDECK_BASE
  • 启动jar包
#cd $RDECK_BASE
#java -XX:MaxPermSize=256m -Xmx1024m -jar rundeck-launcher-2.6.3.jar
  • 等待启动成功的信息
2010-11-19 13:35:51.127::INFO:  Started SocketConnector@0.0.0.0:4440

当出现如上图的信息,表示当前服务启动成功,端口监听在默认端口4440,初始用户和密码都是admin

启动成功后,我们可以看到rundeck的目录下有以下目录:

#ls
etc libext projects rundeck-launcher-2.6.3.jar server tools var
  • 启动和关闭

    在初始化jar包之后,下一次启动和关闭可以进行如下操作:
#Startup
$RDECK_BASE/server/sbin/rundeckd start
#Shutdown
$RDECK_BASE/server/sbin/rundeckd stop

我这里采用的是普通用户apprun登录,RPM包默认的是rundeck用户,读者可以定义启动的用户,具体修改如下:

#vim /$RDECK_BASE/etc/framework.properties
framework.ssh.keypath = /home/apprun/.ssh/id_rsa #ssh认证用户的key存放目录
framework.ssh.user = apprun #启动默认用户
#chown apprun:apprun rundeck_2.6.3/ -R #修改完之后,别忘了修改rundeck目录的宿主

简单使用Rundeck

1、几个基本概念

  • Role-based Access Control Policies︰ Rundeck 访问控制策略将授予用户和用户组某些权限执行权限限制访问rundeck 资源,如项目、 工作、 节点、 命令和 API。

  • Projects ︰ 项目是分开管理活动的地方。所有的 Rundeck 活动发生在项目的上下文内。多个项目可以保持相同的 Rundeck 服务器上。

  • Jobs ︰ 作业封装步骤、 作业选项和节点在哪里执行步骤的序列。

  • Nodes ︰ 节点是一种资源,是网络访问主机物理或虚拟实例。资源模型是在项目中的节点表示。

  • Commands ︰ 命令是在一个节点上执行单个可执行字符串。Rundeck 调用命令通过节点的遗嘱执行人并计算命令字符串来执行它的节点上。

  • Executions ︰ 执行是活动的表示某一正在运行或已完成的命令或工作。关于执行数据在 rundeck 用于监测进展的工作或命令和后来的报道发生了什么事。

  • Plugins ︰ Rundeck 所做的大多数是通过其插件之一。插件的存在在节点上执行命令、 执行中的工作步骤、 发送关于作业状态的通知,收集有关您的网络中的主机的信息,将一个文件复制到远程的服务器、 存储和流日志,或谈到用户目录。

在开始之前,简述一下我的环境:

rundeck-server:bd-stg-test-97

rundeck-node1:bd-stg-test-98

rundeck-node2:bd-stg-test-99

ssh认证已经做好,97上的apprun均可以免密码登录到98和99

2、添加Project

  • 点击添加

  • 添加项目名以及描述

  • 选择ssh认证key存放位置

  • 点击创建

  • 创建完成后可以看到如下。此时并没有任何job和node:

3、添加Node

在创建完一个project之后,在rundeck的主目录下面,保存着它的一个配置,在node的配置文件中添加节点如下:

#vim /opt/programs/rundeck_2.6.3/projects/Rundeck_Test/etc/resources.xml
<?xml version="1.0" encoding="UTF-8"?>
<project>
<node name="bd-stg-test-97" description="Rundeck server node" tags="" hostname="bd-stg-test-97" osArch="amd64" osFamily="unix" osName="Linux" osVersion="2.6.32-573.el6.x86_64" username="apprun"/>
<node name="bd-stg-test-98" description="Rundeck client node1" tags="" hostname="172.16.57.98" osArch="amd64" osFamily="unix" osName="Linux" osVersion="2.6.32-573.el6.x86_64" username="apprun"/>
<node name="bd-stg-test-99" description="Rundeck client node2" tags="" hostname="172.16.57.99" osArch="amd64" osFamily="unix" osName="Linux" osVersion="2.6.32-573.el6.x86_64" username="apprun"/>
</project>

添加完成后,不需要重启服务,刷新后,可以看到node信息已经出现在web界面上:

我们来进行一个测试,是否能在web界面上远程控制操作两台node,这个过程类似于saltstack:

执行命令很简单,每一台的执行结果也清晰地展现出来了,说明服务端与节点之间的配置已经完成了,如果出现了ssh认证错误,还要重现检查一下目录权限和ssh认证配置有没有错误。

4、添加Job

  • 创建job

  • 添加job的命名和描述,这里只是一个简单的测试,所以还是用的上面的例子

  • 点击创建

  • 执行job

  • 查看执行结果

Rundeck部署和基本使用的更多相关文章

  1. gitLab服务器搭建+ rundeck自动化部署

    git服务器搭建 https://blog.csdn.net/gx_1_11_real/article/details/79406427 rundeck   部署 https://blog.csdn. ...

  2. SSH免密码登录,实现数据传输备份

    简单来说,就是通过ssh-keygen -t rsa命令来产生一组公私钥,私钥是id_rsa,公钥是id_rsa.pub,把公钥上传到另一台服务器对应账号的.ssh/authorized_keys,即 ...

  3. 【自动部署】服务器自动化操作 RunDeck

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

  4. Rundeck概况

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

  5. [原]CentOS7.2部署node-mapnik

    转载请注明表作者think8848及出处(http://think8848.cnblogs.com) node-mapnik依赖项中要求g++ >= 5, toolchain (>= GL ...

  6. 使用Visual Studio 2015 开发ASP.NET MVC 5 项目部署到Mono/Jexus

    最新的Mono 4.4已经支持运行asp.net mvc5项目,有的同学听了这句话就兴高采烈的拿起Visual Studio 2015创建了一个mvc 5的项目,然后部署到Mono上,浏览下发现一堆错 ...

  7. 通过Jexus 部署 dotnetcore版本MusicStore 示例程序

    ASPNET Music Store application 是一个展示最新的.NET 平台(包括.NET Core/Mono等)上使用MVC 和Entity Framework的示例程序,本文将展示 ...

  8. 结合Jexus + Kestrel 部署 asp.net core 生产环境

    ASP.NET Core 是微软的全新的框架.这一框架的目标 ︰ 跨平台 针对云应用优化 解除 System.Web 的依赖. 获得下面三个方面的优势,你可以把它认为是一个C# 版本的NodeJS: ...

  9. 4.Windows Server2012 R2里面部署 MVC 的网站

    网站部署之~Windows Server | 本地部署:http://www.cnblogs.com/dunitian/p/4822808.html#iis 后期会在博客首发更新:http://dnt ...

随机推荐

  1. Android binder机制---概述

    1.进程间通讯的原因 目前操作系统都使用虚拟存储技术,管理内存. 假设是32位机器,0-3G是用户空间,3-4G是系统使用.虚拟内存和逻辑内存都按4K分页.这样虚拟内存和逻辑内存就存在对应关系. 一个 ...

  2. java Io流中FileInputStream和BufferedInputStream的速度比较

    首先是对FileInputStream 加上 FileOutputStream 对文件拷贝的应用 我这里拷贝的是一个视频.当然,你们拷贝什么都可以,当文件越大时效果越明显 下面是对BufferedIn ...

  3. java HashSet改用

    写的一个Student类如下: 上面是直接使用的HashSet集合,系统会把new Student()  当做地址不用来出来,所以结果如下: 然后我在Student类中重写了hashCode()和eq ...

  4. Microsoft .Net Remoting系列专题之二

    Microsoft .Net Remoting系列专题之二 一.远程对象的激活 在Remoting中有三种激活方式,一般的实现是通过RemotingServices类的静态方法来完成.工作过程事实上是 ...

  5. Hash表分析

    http://baike.baidu.com/link?url=Ua74895uGf1NuPxB4pawmuAXedi427jJvM6aSLh_V1-23ptlMc7XIrr_cylIBn5d

  6. python 每日一练: 读取log文件中的数据,并画图表

    之前在excel里面分析log数据,简直日了*了. 现在用python在处理日志数据. 主要涉及 matplotlib,open和循环的使用. 日志内容大致如下 2016-10-21 21:07:59 ...

  7. 201521123122 《java程序设计》 第三周学习总结

    1. 本章学习总结 你对于本章知识的学习总结 链接点击此处 2. 书面作业 代码阅读 public class Test1 { private int i = 1;//这行不能修改 private s ...

  8. 201521123006 《java程序设计》 第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出 ...

  9. 201521123059 《Java程序设计》第十三周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 1.协议 --网络中为了进行数据交换(通信)而建立的规则.标准或约定(=语义+语法+规则),比如http, ...

  10. java课程设计---计算器(201521123020 邱伟达)

    1.团队课程设计博客链接 http://www.cnblogs.com/br0823/p/7064407.html 2.个人负责模板或任务说明 1.初始化按键 2.实现加减乘除开方乘方等运算 3.每个 ...