1.Rundeck介紹
RunDeck是用Java/Grails寫的開源工具,幫助用戶在數據中心或者雲環境中自動化各種操作和流程。通過命令行或者web界面,用戶可以對任意數量的服務器進行操作,大大降低了對服務器自動化的門檻。RunDeck提供如下功能:
- 1. 提供web界面和命令行來執行shell命令和job
- 2. 自定義job步驟
- 3. 設置shell命令/job運行周期(類似cron table的功能)
- 4. 用戶權限控制,支持LDAP/ActiveDirectory
- 5. 保存歷史日志
- 6. 提供web API
通過以上功能,RunDeck可以在任意數量的服務器上批量執行不同的任務,降低對自動化的部署、執行、維護的工作。
2.Rundeck概要
2.1Rundeck架構圖
Rundeck Web GUI就是配置好rundeck后通過Browser登錄進去的那個界面
2.2基礎概念
介紹它主要的幾個概念:
看不清的話可以點擊連接放大看
Rundeck Gui介紹:http://images2017.cnblogs.com/blog/1189489/201708/1189489-20170805124631944-1629947656.png
resources.xml介紹:http://images2017.cnblogs.com/blog/1189489/201708/1189489-20170805125133631-1558816288.png
在rundeck的主目錄下我的是rundeck_t/projects/PhiProTest/etc/resources.xml中可以對Project進行配置
----用project和tag對服務器進行分類
根據服務器資源的不同作用,可以將服務器組分成不同的項目類別,方便不同用戶操作。比如我們就有一個專門的project是管理push功能的服務器。通過配置文件,可以賦予用戶不同的權限,有些用戶只能查看push組的服務器資源,有些用戶可以操作。
雖然用project可以對不同服務器進行分組,但是同一個project的服務器有不同的作用。比如在push組的服務器項目中,又可以分數據庫服務器,下載服務器,日志服務器等等。對於這種情況,通過給服務器打不同tag,這樣需要對一批服務器執行相同操作,就非常方便。
----通過job來管理任務
RunDeck提供一個非常強大的功能,就是可以自己定義job。job由命令、腳本、其它的job組成。比如對於服務器上的各種web server,可以定義不同的job,執行不同的操作。實際配置中,我們就對apache服務器定義了三個job,分別對應啟動、停止、重啟apache服務。對於nginx服務器,定義job來配置nginx的端口號。通過job機制,用戶可以定義、管理、維護各種腳本、操作,極大的提高自動化效率。
3.Rundeck的典型應用場景(Popular Uses)
3.1.標准化服務器操作過程(Share Standard Operating Procedures)
通過Rundeck定義日常標准的服務器操作過程,對服務器的操作通過Rundeck進行,便於可視化、權限控制、與審計。
可視化是第一位的也是Rundeck提供后續服務的一個基礎。
3.2.任務調度(Job Scheduler)
通過Rundeck實現任務的自動調度
3.3.事故響應(Incident Response)
3.4.自動化部署(Automated Deployment After a Build)
通過持續集成系統(Jenkins)調用Rundeck實現不同環境的自動化部署和部署驗證
3.5.自助化測試環境(Self-Service Test Environments)
通過Rundeck可以為開發和測試提供自助化的測試環境,很方便基於不同版本的構件進行部署
3.6.雲端流程化數據處理(Data Processing Jobs in the Cloud)
AWS(Amazon Web Services )提供了一整套雲計算服務,讓您能夠構建復雜、可擴展的應用程序。如今,成千上萬各種規模的客戶都在使用這些雲計算服務,它們涉及各個行業,包括醫療保健、傳媒、金融服務、保險、房地產和零售行業以及教育和公共部門。
Amazon EC2是一個IaaS雲服務,主要提供彈性的計算資源。通俗的講,就是提供多種類型的虛擬機。
3.7.基於Rundeck的API和插件機制構建運維平台(Custom Platforms "Powered By Rundeck")
參考資料:
http://udn.yyuap.com/forum.php?mod=viewthread&tid=30567&typeid=343
http://blog.jiguang.cn/rundeck_server_maintenance_command_script/