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