rundeck 部署及使用

1、RunDeck介绍

RunDeck是用Java/Grails写的开源工具,帮助用户在数据中心或者云环境中自动化各类操做和流程。经过命令行或者web界面,用户能够对任意数量的服务器进行操做,大大下降了对服务器自动化的门槛。RunDeck提供以下功能:java

1.1 提供web界面和命令行来执行shell命令和job

1.2 自定义job步骤

1.3 设置shell命令/job运行周期(相似cron table的功能)

1.4 用户权限控制,支持LDAP/ActiveDirectory

1.5 保存历史日志

1.6 提供web API

经过以上功能,RunDeck能够在任意数量的服务器上批量执行不一样的任务,下降对自动化的部署、执行、维护的工做。nginx

2、RunDeck架构

RunDeck是基于Javawebapp服务,运行在Servlet容器里。用户登录RunDeck,在web界面进行操做,请求对远程服务器进行操做。web经过HTTP(s)RunDeck服务进行通讯,RunDeck服务接受服务请求后,从配置文件里面读取用户权限,以及服务器资源的一些信息。结合权限以及资源信息,RunDeck服务经过ssh对远程的服务器进行操做,并将操做结果存放在数据库中。web

152849626.png

3、RunDeck的应用

在咱们公司,推送后台须要大量的服务器作支撑,也就有需求对服务器作各类配置,安装,升级等操做。经过RunDeck,能够很方便、快速的完成这些任务。shell

为了更好的利用RunDeck,咱们主要从如下2个方面来配置,规划,管理咱们的服务器资源和脚本资源。数据库

3.1 projecttag对服务器进行分类

根据服务器资源的不一样做用,能够将服务器组分红不一样的项目类别,方便不一样用户操做。好比咱们就有一个专门的project是管理push功能的服务器。经过配置文件,能够赋予用户不一样的权限,有些用户只能查看push组的服务器资源,有些用户能够操做。apache

虽然用project能够对不一样服务器进行分组,可是同一个project的服务器有不一样的做用。好比在push组的服务器项目中,又能够分数据库服务器,下载服务器,日志服务器等等。对于这种状况,经过给服务器打不一样tag,这样须要对一批服务器执行相同操做,就很是方便。vim

3.2 经过job来管理任务

RunDeck提供一个很是强大的功能,就是能够本身定义jobjob由命令、脚本、其它的job组成。好比对于服务器上的各类web server,能够定义不一样的job,执行不一样的操做。实际配置中,咱们就对apache服务器定义了三个job,分别对应启动、中止、重启apache服务。对于nginx服务器,定义job来配置nginx的端口号。经过job机制,用户能够定义、管理、维护各类脚本、操做,极大的提升自动化效率。安全

4、rundeck安装

4.1 下载rundeck jar

# cd /apps/rundeck 服务器

# wget http://download.rundeck.org/jar/rundeck-launcher-1.6.2.jar架构

4.2 第一次启动rundeck

# java -jar rundeck-launcher-1.6.2.jar

4.3 设置环境变量

#[root@test02 rundeck]#sed -i '$a RDECK_BASE="/apps/rundeck"' /etc/profile

# [root@test02 rundeck]# sed -i '$a export RDECK_BASE' /etc/profile

4.4 登录rundeck web 界面

http://192.168.1.102:4440

默认帐户及密码:admin/admin

4.5  启动脚本

[root@test02 rundeck]# sh  server/sbin/rundeckd restart

4.6 建立projectjobs

4.6.1 建立项目

点击Create a new Project

命令行建立:

# [root@test02 rundeck]# /apps/rundeck/tools/bin/rd-project -a create -p apps

4.6.4  建立jobs

点击New job....

4.7 安全认证配置

4.7.1 增长用户

# cd /apps/rundeck

# java -cp server/lib/jetty-6.1.21.jar:server/lib/jetty-util-6.1.21.jar org.mortbay.jetty.security.Password test test123

4.7.2 MD5值添加至realm.properties配置文件

# vim server/config/realm.properties

4.7.3 重启rundeck生效

[root@test02 rundeck]# sh  server/sbin/rundeckd restart

注释:

Test为用户名

Test123为密码

生成密码有四种格式:明文,OBFMD5CRYPT

realm.properties 格式以下:

用户名:加密方法及密码,所属角色名,所属角色组

角色组可添加多个以“,”分隔

5、备份projectjobs

5.1 备份project

cp -r /apps/rundeck/project 备份路径

5.2 备份jobs (好比备份apps项目)

# /app/rundeck/tools/bin/rd-jobs list -f ~/backup/jobs.xml -p apps

5.3 备份data/logs (须要先中止rundeck

[root@test02 rundeck]# sh  server/sbin/rundeckd stop

[root@test02 ~]# cp -r  /apps/rundeck/server/data/ ~/backup

[root@test02 ~]# cp -r  /apps/rundeck/var/logs/ ~/backup

[root@test02 rundeck]# sh  server/sbin/rundeckd start

6、还原jobs

# /apps/rundeck/tools/bin/rd-jobs load -f ~/backup/jobs.xml -p apps

相关文章
相关标签/搜索