Rundeck部署和基本使用
rundeck 介紹
Rundeck 是一款能在數據中心或雲環境中的日常業務中使程序自己主動化的開源軟件。
Rundeck 提供了大量功能。能夠減輕耗時繁重的體力勞動。團隊能夠相互協作,分享怎樣過程自己主動化,查看業務活動或執行任務。Rundeck 同意您執行隨意數量的節點從一個基於 web 的任務或命令行界面。Rundeck 還包含其它功能,使其易於擴展,您自己主動化努力包含 ︰ 訪問控制、 工作流建設、 調度、 記錄和與外部源節點和選項數據集成。
詳細流程圖參照官網的例如以下:
安裝
Rundeck 是你主機系統的server應用程序你指定一個中央行政控制中心。
內部。Rundeck 將作業定義和運行歷史記錄存儲在關系數據庫中。
輸出從命令和工作處決保存在磁盤上,但能夠轉發到遠程存儲比如logstash。
Rundeck 分布式運行使用默覺得 SSH 但插件同意您使用其它手段如 MCollective、 Salt、 WinRM 或自己定義的方法的可插拔的節點運行層的命令。
Rundeck server配置包含定義同意的遠程主機的出站用戶的設置。
遠程計算機不須要回發到server進行連接。
1、安裝JDK
Rundeck 是一個基於 Java Servlet server。因此須要支持Java 執行環境
#java -version java version "1.7.0_79" Java(TM) SE Runtime Environment (build 1.7.0_79-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
2、安裝Rundeck
-
這裏使用的是rundeck的jar包安裝。讀者也能夠採用rpm包方式的安裝,這裏看個人喜好。版本號為眼下最新版本號,下載地址 http://rundeck.org/downloads.html
rundeck-launcher-2.6.3.jar
-
定義Rundeck的環境變量來進行下一步的安裝
#vim /etc/profile 在末尾加入 export RDECK_BASE=/opt/programs/rundeck_2.6.3 安裝文件夾能夠自定義 #source /etc/profile #echo $RDECK_BASE /opt/programs/rundeck_2.6.3
-
定義安裝文件夾後創建之後才幹安裝
#mkdir -p $RDECK_BASE
-
復制下載的jar包到安裝文件夾夾中
#cp rundeck-launcher-2.6.3.jar $RDECK_BASE
-
啟動jar包
#cd$RDECK_BASE #java -XX:MaxPermSize=256m -Xmx1024m -jar rundeck-launcher-2.6.3.jar
-
等待啟動成功的信息
2010-11-19 13:35:51.127::INFO: Started [email protected]:4440
當出現如上圖的信息,表示當前服務啟動成功。port監聽在默認port4440。初始用戶和password都是admin
啟動成功後。我們能夠看到rundeck的文件夾下有下面文件夾:
#ls etc libext projects rundeck-launcher-2.6.3.jar server tools var
-
啟動和關閉
在初始化jar包之後,下一次啟動和關閉能夠進行例如以下操作:
Startup
$RDECK_BASE/server/sbin/rundeckd start
Shutdown
$RDECK_BASE/server/sbin/rundeckd stop
我這裏採用的是普通用戶apprun登錄,RPM包默認的是rundeck用戶,讀者能夠定義啟動的用戶。詳細改動例如以下:
#vim /$RDECK_BASE/etc/framework.properties framework.ssh.keypath = /home/apprun/.ssh/id_rsa #ssh認證用戶的key存放文件夾 framework.ssh.user = apprun #啟動默認用戶 #chown apprun:apprun rundeck_2.6.3/ -R #改動完之後,別忘了改動rundeck文件夾的宿主
簡單使用Rundeck
1、幾個基本概念
-
Role-based Access Control Policies︰ Rundeck 訪問控制策略將授予用戶和用戶組某些權限運行權限限制訪問rundeck 資源,如項目、 工作、 節點、 命令和 API。
-
Projects ︰ 項目是分開管理活動的地方。全部的 Rundeck 活動發生在項目的上下文內。多個項目能夠保持同樣的 Rundeck server上。
-
Jobs ︰ 作業封裝步驟、 作業選項和節點在哪裏運行步驟的序列。
-
Nodes ︰ 節點是一種資源,是網絡訪問主機物理或虛擬實例。資源模型是在項目中的節點表示。
-
Commands ︰ 命令是在一個節點上運行單個可運行字符串。Rundeck 調用命令通過節點的遺囑運行人並計算命令字符串來運行它的節點上。
-
Executions ︰ 運行是活動的表示某一正在運行或已完畢的命令或工作。關於運行數據在 rundeck 用於監測進展的工作或命令和後來的報道發生了什麽事。
-
Plugins ︰ Rundeck 所做的大多數是通過其插件之中的一個。
插件的存在在節點上運行命令、 運行中的工作步驟、 發送關於作業狀態的通知,收集有關您的網絡中的主機的信息。將一個文件拷貝到遠程的server、 存儲和流日誌,或談到用戶文件夾。
在開始之前。簡述一下我的環境
rundeck-server:bd-stg-test-97
rundeck-node1:bd-stg-test-98
rundeck-node2:bd-stg-test-99
ssh認證已經做好。97上的apprun均能夠免password登錄到98和99
2、加入Project
-
點擊加入
-
加入項目名以及描寫敘述
-
選擇ssh認證key存放位置
-
點擊創建
-
創建完畢後能夠看到例如以下。此時並沒有不論什麽job和node:
3、加入Node
在創建完一個project之後,在rundeck的主文件夾以下,保存著它的一個配置。在node的配置文件裏加入節點例如以下:
#vim /opt/programs/rundeck_2.6.3/projects/Rundeck_Test/etc/resources.xml <?xml version="1.0" encoding="UTF-8"?> <project> <node name="bd-stg-test-97" description="Rundeck server node" tags="" hostname="bd-stg-test-97" osArch="amd64" osFamily="unix" osName="Linux" osVersion="2.6.32-573.el6.x86_64" username="apprun"/> <node name="bd-stg-test-98" description="Rundeck client node1" tags="" hostname="172.16.57.98" osArch="amd64" osFamily="unix" osName="Linux" osVersion="2.6.32-573.el6.x86_64" username="apprun"/> <node name="bd-stg-test-99" description="Rundeck client node2" tags="" hostname="172.16.57.99" osArch="amd64" osFamily="unix" osName="Linux" osVersion="2.6.32-573.el6.x86_64" username="apprun"/> </project>
加入完畢後。不須要重新啟動服務。刷新後,能夠看到node信息已經出如今web界面上:
我們來進行一個測試,能否在web界面上遠程控制操作兩臺node,這個過程類似於saltstack:
運行命令非常easy,每一臺的運行結果也清晰地展現出來了,說明服務端與節點之間的配置已經完畢了,假設出現了ssh認證錯誤,還要重現檢查一下文件夾權限和ssh認證配置有沒有錯誤。
4、加入Job
-
創建job
-
加入job的命名和描寫敘述,這裏僅僅是一個簡單的測試,所以還是用的上面的樣例
-
加入命令。這裏也能夠加入運行自己定義腳本。選擇運行的node
-
點擊創建
-
運行job
-
查看運行結果
rundeck的基本使用方法先到這,日後還會更新詳細的使用方法。
Rundeck部署和基本使用