RunDeck是用Java/Grails写的开源工具,帮助用户在数据中心或者云环境中自动化各类操做和流程。经过命令行或者web界面,用户能够对任意数量的服务器进行操做,大大下降了对服务器自动化的门槛。RunDeck提供以下功能:java
经过以上功能,RunDeck能够在任意数量的服务器上批量执行不一样的任务,下降对自动化的部署、执行、维护的工做。nginx
RunDeck是基于Java的webapp服务,运行在Servlet容器里。用户登录RunDeck,在web界面进行操做,请求对远程服务器进行操做。web经过HTTP(s)与RunDeck服务进行通讯,RunDeck服务接受服务请求后,从配置文件里面读取用户权限,以及服务器资源的一些信息。结合权限以及资源信息,RunDeck服务经过ssh对远程的服务器进行操做,并将操做结果存放在数据库中。web
在咱们公司,推送后台须要大量的服务器作支撑,也就有需求对服务器作各类配置,安装,升级等操做。经过RunDeck,能够很方便、快速的完成这些任务。shell
为了更好的利用RunDeck,咱们主要从如下2个方面来配置,规划,管理咱们的服务器资源和脚本资源。数据库
根据服务器资源的不一样做用,能够将服务器组分红不一样的项目类别,方便不一样用户操做。好比咱们就有一个专门的project是管理push功能的服务器。经过配置文件,能够赋予用户不一样的权限,有些用户只能查看push组的服务器资源,有些用户能够操做。apache
虽然用project能够对不一样服务器进行分组,可是同一个project的服务器有不一样的做用。好比在push组的服务器项目中,又能够分数据库服务器,下载服务器,日志服务器等等。对于这种状况,经过给服务器打不一样tag,这样须要对一批服务器执行相同操做,就很是方便。vim
RunDeck提供一个很是强大的功能,就是能够本身定义job。job由命令、脚本、其它的job组成。好比对于服务器上的各类web server,能够定义不一样的job,执行不一样的操做。实际配置中,咱们就对apache服务器定义了三个job,分别对应启动、中止、重启apache服务。对于nginx服务器,定义job来配置nginx的端口号。经过job机制,用户能够定义、管理、维护各类脚本、操做,极大的提升自动化效率。安全
# cd /apps/rundeck 服务器
# wget http://download.rundeck.org/jar/rundeck-launcher-1.6.2.jar架构
# java -jar rundeck-launcher-1.6.2.jar
#[root@test02 rundeck]#sed -i '$a RDECK_BASE="/apps/rundeck"' /etc/profile
# [root@test02 rundeck]# sed -i '$a export RDECK_BASE' /etc/profile
默认帐户及密码:admin/admin
[root@test02 rundeck]# sh server/sbin/rundeckd restart
4.6 建立project及jobs
点击Create a new Project
命令行建立:
# [root@test02 rundeck]# /apps/rundeck/tools/bin/rd-project -a create -p apps
4.6.4 建立jobs
点击New job....
# 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为密码
生成密码有四种格式:明文,OBF,MD5,CRYPT
realm.properties 格式以下:
用户名:加密方法及密码,所属角色名,所属角色组
角色组可添加多个以“,”分隔
cp -r /apps/rundeck/project 备份路径
# /app/rundeck/tools/bin/rd-jobs list -f ~/backup/jobs.xml -p apps
[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
# /apps/rundeck/tools/bin/rd-jobs load -f ~/backup/jobs.xml -p apps