Rundeck部署和基本使用
rundeck 介绍
Rundeck 是一款能在数据中心或云环境中的日常业务中使程序自己主动化的开源软件。
Rundeck 提供了大量功能。能够减轻耗时繁重的体力劳动。团队能够相互协作,分享怎样过程自己主动化,查看业务活动或执行任务。Rundeck 同意您执行随意数量的节点从一个基于 web 的任务或命令行界面。Rundeck 还包含其它功能,使其易于扩展,您自己主动化努力包含 ︰ 訪问控制、 工作流建设、 调度、 记录和与外部源节点和选项数据集成。
详细流程图參照官网的例如以下:
安装
Rundeck 是你主机系统的server应用程序你指定一个中央行政控制中心。
内部。Rundeck 将作业定义和运行历史记录存储在关系数据库中。
输出从命令和工作处决保存在磁盘上,但能够转发到远程存储比如logstash。
Rundeck 分布式运行使用默觉得 SSH 但插件同意您使用其它手段如 MCollective、 Salt、 WinRM 或自己定义的方法的可插拔的节点运行层的命令。
Rundeck server配置包含定义同意的远程主机的出站用户的设置。
远程计算机不须要回发到server进行连接。
1、安装JDK
Rundeck 是一个基于 Java Servlet server。因此须要支持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
当出现如上图的信息,表示当前服务启动成功。port监听在默认port4440。初始用户和password都是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 server上。
-
Jobs ︰ 作业封装步骤、 作业选项和节点在哪里运行步骤的序列。
-
Nodes ︰ 节点是一种资源,是网络訪问主机物理或虚拟实例。资源模型是在项目中的节点表示。
-
Commands ︰ 命令是在一个节点上运行单个可运行字符串。Rundeck 调用命令通过节点的遗嘱运行人并计算命令字符串来运行它的节点上。
-
Executions ︰ 运行是活动的表示某一正在运行或已完毕的命令或工作。关于运行数据在 rundeck 用于监測进展的工作或命令和后来的报道发生了什么事。
-
Plugins ︰ Rundeck 所做的大多数是通过其插件之中的一个。
插件的存在在节点上运行命令、 运行中的工作步骤、 发送关于作业状态的通知,收集有关您的网络中的主机的信息。将一个文件拷贝到远程的server、 存储和流日志,或谈到用户文件夹。
在開始之前。简述一下我的环境
rundeck-server:bd-stg-test-97
rundeck-node1:bd-stg-test-98
rundeck-node2:bd-stg-test-99
ssh认证已经做好。97上的apprun均能够免password登录到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:
运行命令非常easy,每一台的运行结果也清晰地展现出来了,说明服务端与节点之间的配置已经完毕了,假设出现了ssh认证错误,还要重现检查一下文件夹权限和ssh认证配置有没有错误。
4、加入Job
-
创建job
-
加入job的命名和描写叙述,这里仅仅是一个简单的測试,所以还是用的上面的样例
-
加入命令。这里也能够加入运行自己定义脚本。选择运行的node
-
点击创建
-
运行job
-
查看运行结果
rundeck的基本使用方法先到这,日后还会更新详细的使用方法。