一、RunDeck介绍RunDeck是用Java/Grails写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或 者web界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。RunDeck提供如下功能:1.1?提供web界 面和命令行来执行shell命令和job1.2?自定义job步骤1.3?设置shell命令/job运行周期(类似cron?table 的功能)1.4?用户权限控制,支持LDAP/ActiveDirectory1.5?保存历史日志1.6?提供web?API通过以上功 能,RunDeck可以在任意数量的服务器上批量执行不同的任务,降低对自动化的部署、执行、维护的工作。二、RunDeck架构RunD eck是基于Java的webapp服务,运行在Servlet容器里。用户登陆RunDeck,在web界面进行操作,请求对远程服务器 进行操作。web通过HTTP(s)与RunDeck服务进行通信,RunDeck服务接受服务请求后,从配置文件里面读取用户权限,以及 服务器资源的一些信息。结合权限以及资源信息,RunDeck服务通过ssh对远程的服务器进行操作,并将操作结果存放在数据库中。三、R unDeck的应用推送后台需要大量的服务器做支撑,也就有需求对服务器做各种配置,安装,升级等操作。通过RunDeck,可以很方便、 快速的完成这些任务。为了更好的利用RunDeck,我们主要从以下2个方面来配置,规划,管理我们的服务器资源和脚本资源。3.1?用p roject和tag对服务器进行分类根据服务器资源的不同作用,可以将服务器组分成不同的项目类别,方便不同用户操作。比如我们就有一个 专门的project是管理push功能的服务器。通过配置文件,可以赋予用户不同的权限,有些用户只能查看push组的服务器资源,有些 用户可以操作。虽然用project可以对不同服务器进行分组,但是同一个project的服务器有不同的作用。比如在push组的服务器 项目中,又可以分数据库服务器,下载服务器,日志服务器等等。对于这种情况,通过给服务器打不同tag,这样需要对一批服务器执行相同操作 ,就非常方便。3.2?通过job来管理任务RunDeck提供一个非常强大的功能,就是可以自己定义job。job由命令、脚本、其它的 job组成。比如对于服务器上的各种web?server,可以定义不同的job,执行不同的操作。实际配置中,我们就对apache服务 器定义了三个job,分别对应启动、停止、重启apache服务。对于nginx服务器,定义job来配置nginx的端口号。通过job 机制,用户可以定义、管理、维护各种脚本、操作,极大的提高自动化效率。LNMP是Linux+Nginx+MySQL+PHP的简称,是 一套完整的PHP网站服务器架构环境。所用Linux发行版为Ubuntu14.04,所有需要的软件均使用Ubuntu自带apt源下 载安装。Ubuntu默认登录不是root用户;所以要加sudo命令才能执行某些命令;root用户不用加sudo就可以执行命令;如 :普通用户:sudo?apt-getupdateroot用户:apt-getupdate安装rundeck第一步:下载rund eck?jar包创建rundeck目录;并进入rundeck目录mailto:root@zhangyu1root@zhangyu1 :~#?mkdir?-p?/usr/local/rundeck?&&?cd?/usr/local/rundeck/rundeck下 载地址mailto:root@zhangyu1root@zhangyu1:/usr/local/rundeck#?wget?htt p://download.rundeck.org/jar/rundeck-launcher-2.6.1.jarhttp://dow nload.rundeck.org/jar/rundeck-launcher-2.6.1.jar#安装java(需要1.6及以上版 本支持)mailto:root@zhangyu1root@zhangyu1:/usr/local/rundeck#?apt-get ?install-yopenjdk-7-jdk第二步:第一次启动rundeckmailto:root@zhangyu1root @zhangyu1:/usr/local/rundeck#?java?-jar?rundeck-launcher-2.6.1.ja r运行java?-jar?rundeck-launcher-2.6.1.jar会在/usr/local/rundeck目录生成几个 目录;(CTRL+C退出)mailto:root@zhangyu1root@zhangyu1:/usr/local/rundeck #?lsetc??libext??projects??rundeck-launcher-2.6.1.jar??server??to ols??var第三步:修改localhost把这个里面的localhost改成你的域名或者ip地址(用户名密码也在这里面192. 168.0.50)mailto:root@zhangyu1root@zhangyu1:/usr/local/rundeck#?vi m?/usr/local/rundeck/etc/framework.propertiesframework.server.nam e?=?192.168.0.50framework.server.hostname?=?192.168.0.50framework .server.port?=?4440??????????????????《----这里是ru ndeck的端口framework.server.url?=?http://192.168.0.50:4440?《----这里是r undeck的访问地址这里面的grailsurl中localhost改成你的域名或者ipmailto:root@zhangyu 1root@zhangyu1:/usr/local/rundeck#?vim?/usr/local/rundeck/server/ config/rundeck-config.propertiesgrails.serverURL=http://192.168.0 .50:4440/http://192.168.0.50:4440第四步:设置环境变量在profile文件后面加入两句变量mail to:root@zhangyu1root@zhangyu1:/usr/local/rundeck#?sed?-i?''$a?RDEC K_BASE="/usr/local/rundeck"''?/etc/profilemailto:root@zhangyu1root @zhangyu1:/usr/local/rundeck#?sed?-i?''$a?export?RDECK_BASE''?/etc/ profile执行完上面两句后;在/etc/profile最后两行会有变量语句mailto:root@zhangyu1root@z hangyu1:/usr/local/rundeck#?cat?/etc/profileRDECK_BASE="/usr/loca l/rundeck"export?RDECK_BASE使环境变量生效mailto:root@zhangyu1root@zhangy u1:/usr/local/rundeck#?source?/etc/profile第五步:启动脚本启动rundeckmailto :root@zhangyu1root@zhangyu1:/usr/local/rundeck#?/usr/local/rundec k/server/sbin/rundeckd?restart查看rundeck运行状态mailto:root@zhangyu1ro ot@zhangyu1:/usr/local/rundeck#?ps?-ef?|grep?rundeckzhangyu+?1075 9?????1?52?11:54?pts/3????00:00:35?/usr/lib/jvm/java-7-openjdk-am d64/jre/bin/java?-Xmx1024m?-Xms256m?-XX:MaxPermSize=256m?-server? -Dserver.http.port=4440?-jar?/usr/local/rundeck/rundeck-launcher- 2.6.1.jarzhangyu+?10822??3337??0?11:55?pts/3????00:00:00?grep?--c olor=auto?rundeck第六步:登陆rundeck?web?界面在浏览器输入rundeck地址?http://192.1 68.0.50:4440/http://192.168.0.50:4440默认账户及密码:admin/admin创建项目点击Cre ate?a?new?Project先创建个项目;叫shenghai点击顶部的Commands(命令);在Command里输入pwd 命令;在Nodes里选showallnodes(显示所有节点);点击右上角;在下面显示/usr/local/rundeck正 是rundeck服务启动位置;第七步:增加用户添加用户kaifa;密码123456;输入完命令下面会显示相应的用户信息mailto :root@zhangyu1root@zhangyu1:/usr/local/rundeck#?java?-cp?server/l ib/jetty-all-7.6.0.v20120127.jar?org.eclipse.jetty.util.security. Password?kaifa?123456123456OBF:19iy19j019j219j419j619j8MD5:e10adc 3949ba59abbe56e057f20f883eCRYPT:kavwkWooObi8c注释:kaifa为用户名123456为密 码生成密码有四种格式:明文,OBF,MD5,CRYPT将MD5值添加至realm.properties配置文件mailto:roo t@zhangyu1root@zhangyu1:/usr/local/rundeck#?vim?server/config/rea lm.properties?kaifa:MD5:e10adc3949ba59abbe56e057f20f883e,user,adm in注释:realm.properties?格式如下:用户名:加密方法及密码,所属角色名,所属角色组角色组可添加多个以“,”分隔第 八步:给用户权限复制admin.aclpolicy命名为kaifa.aclpolicymailto:root@zhangyu1ro ot@zhangyu1:/usr/local/rundeck/etc#?cp?admin.aclpolicy?kaifa.aclp olicy编辑权限文件kaifa.aclpolicy;输入下面内容mailto:root@zhangyu1root@zhangyu 1:/usr/local/rundeck/etc#?vim?kaifa.aclpolicydescription:?kaifa.c ontext:?project:?''.''for:?resource:?-?allow:?read?job:?-?match:?g roup:?''.''?name:?''.''?allow:?[run,read]by:?username:?kaifa---desc ription:?kaifa.context:?application:?''rundeck''for:?resource:?-?al low:?read?project:?-?allow:?read?storage:?-?allow:?readby:?userna me:?kaifa重启rundeck生效mailto:root@zhangyu1root@zhangyu1:/usr/local/ rundeck#?/usr/local/rundeck/server/sbin/rundeckd?restart第九步:备份pro ject(项目)及jobs(工作)创建备份目录/usr/local/rundeck/backup/mailto:root@zhan gyu1root@zhangyu1:/usr/local/rundeck#?mkdir?backup备份project到/usr/ local/rundeck/backup/目录mailto:root@zhangyu1root@zhangyu1:/usr/loc al/rundeck#?cp?-r?/usr/local/rundeck/project?/usr/local/rundeck/b ackup/创建工作记录文件/usr/local/rundeck/backup/jobs.xmlmailto:root@zhang yu1root@zhangyu1:/usr/local/rundeck#?touch?backup/jobs.xml备份jobs? mailto:root@zhangyu1root@zhangyu1:/usr/local/rundeck#?/usr/local/ rundeck/tools/bin/rd-jobs?list?-f?/usr/local/rundeck/backup/jobs. xml?-p?shenghai-tomcat备份data/logs?(需要先停止rundeck)mailto:root@zhang yu1root@zhangyu1:/usr/local/rundeck#?/usr/local/rundeck/server/sb in/rundeckd?stopmailto:root@zhangyu1root@zhangyu1:/usr/local/rund eck#?cp?-r?/usr/local/rundeck/server/data/?~/backupmailto:root@zh angyu1root@zhangyu1:/usr/local/rundeck#?cp?-r?/usr/local/rundeck/ var/logs/?~/backupmailto:root@zhangyu1root@zhangyu1:/usr/local/ru ndeck#?/usr/local/rundeck/server/sbin/rundeckd?start第十步:还原项目和工作导入 项目mailto:root@zhangyu1root@zhangyu1:/usr/local/rundeck#?cp?-r?/us r/local/rundeck/backup/projects/?/usr/local/rundeck/projects/导入工作mailto:root@zhangyu1root@zhangyu1:/usr/local/rundeck#/usr/local/rundeck/tools/bin/rd-jobs?load?-f?/usr/local/rundeck/backup/jobs.xml?-pshenghai-tomcat重启rundeck生效mailto:root@zhangyu1root@zhangyu1:/usr/local/rundeck#?/usr/local/rundeck/server/sbin/rundeckd?restart本文出自?“&思远晨曦”?博客,请务必保留此出处http://kling.blog.51cto.com/3320545/1340829http://kling.blog.51cto.com/3320545/1340829 |
|