溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

DevOps自動(dòng)化組件RUNDECK開發(fā)部署使用的方法

發(fā)布時(shí)間:2022-03-02 09:11:34 來(lái)源:億速云 閱讀:189 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“DevOps自動(dòng)化組件RUNDECK開發(fā)部署使用的方法”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“DevOps自動(dòng)化組件RUNDECK開發(fā)部署使用的方法”文章能幫助大家解決問(wèn)題。

前言

RunDeck 是用 Java開發(fā)的自動(dòng)化部署持續(xù)集成的工具應(yīng)用,項(xiàng)目已開源。runDeck的產(chǎn)品屬性和jenkis類似。提供web界面和restapi來(lái)給用戶使用,Web界面主要提供給非開發(fā)人員使用,如項(xiàng)目組的測(cè)試和運(yùn)維人員,而它提供的豐富的api使得開發(fā)可以很容易的融合到DevOps平臺(tái)體系中。同時(shí)runDeck提供了完整的權(quán)限管理,開發(fā),運(yùn)維,測(cè)試可以在RunDeck中完成軟件交付的整個(gè)流程。

RunDeck的使用場(chǎng)景

(一).標(biāo)準(zhǔn)流程自動(dòng)化

DevOps自動(dòng)化組件RUNDECK開發(fā)部署使用的方法

rundeck的自動(dòng)化功能幫助你規(guī)范你的操作程序,設(shè)置訪問(wèn)控制,自動(dòng)化功能特征如下

1.自定義工作流

rundeck提供工具來(lái)定義、構(gòu)建、部署和管理自動(dòng)化。這些自動(dòng)化的過(guò)程在工作流程中定義。工作流作用于自動(dòng)化過(guò)程中的各個(gè)任務(wù)。工作流運(yùn)行失敗或者成功都會(huì)發(fā)出通知。當(dāng)錯(cuò)誤發(fā)生時(shí),你可以選擇立即失敗,或者觸發(fā)特定的錯(cuò)誤處理程序步驟。

2.端到端的業(yè)務(wù)流程在本地或遠(yuǎn)程服務(wù)器

rundeck工作流可以協(xié)調(diào)在本地或遠(yuǎn)程服務(wù)器的步驟。遠(yuǎn)程服務(wù)器是針對(duì)使用過(guò)濾器,查詢表達(dá)式匹配到屬性,和標(biāo)簽的服務(wù)器節(jié)點(diǎn)。

3.跨平臺(tái)

rundeck提高跨多個(gè)工具,系統(tǒng)的效率,并通過(guò)消除或跨越技術(shù)和組織流程結(jié)構(gòu)部門。rundeck工作流可以執(zhí)行在Windows和UNIX平臺(tái),使用節(jié)點(diǎn)插件可以將RunDeck擴(kuò)展到新的平臺(tái)(包括網(wǎng)絡(luò)設(shè)備)。

4.可擴(kuò)展

rundeck通過(guò)插件機(jī)制拓展功能。官方提供很多非常使用的插件,當(dāng)然你想開發(fā)符合自己公司特色的插件以及webui也是非常的簡(jiǎn)單

5.安全訪問(wèn)控制

工作流可以授權(quán)其他用戶提供自助服務(wù)如運(yùn)營(yíng)團(tuán)隊(duì)。rundeck提供細(xì)粒度的基于角色的訪問(wèn)控制策略安全。

6.和主流的DevOps組件集成

rundeck提供了豐富的restapi可以和主流的DevOps組件集成,如jenkins等

(二)作業(yè)調(diào)度

提供web界面定義調(diào)度任務(wù)執(zhí)行shell命令

DevOps自動(dòng)化組件RUNDECK開發(fā)部署使用的方法

作業(yè)調(diào)度是Rundeck的核心功能。使用場(chǎng)景如:自動(dòng)調(diào)度任務(wù),提供可視化的界面查看結(jié)構(gòu)反饋,支持的調(diào)度特征如:無(wú)代理、跨平臺(tái)(Windows需要插件支持)、文件傳輸、審計(jì)報(bào)告、等等

更多的使用場(chǎng)景詳情見(jiàn)官網(wǎng)。

使用案例分析

  • John D'Esposito Implements ChatOps for Financial Services

開發(fā)部署服務(wù)

(1)如何二次開發(fā)RunDeck

RunDeck開發(fā)需要的環(huán)境包括:java、grials(工程自帶了)、IDEA、IDEA Lombok插件、gradle

第一步:git clong https://github.com/rundeck/rundeck.git 

第二步:用IDEA打開項(xiàng)目,安裝Lombok插件,使用gradle構(gòu)建

RunDeck工程主要有核心模塊,插件模塊,啟動(dòng)器模塊,app模塊,我們二次開發(fā)主要關(guān)注插件模塊,和app模塊就差不多了。

(2)怎么部署RunDeck環(huán)境

1.獲得部署jar

自己使用gradle構(gòu)建,在rundeck\rundeck-launcher\build\libs會(huì)生成rundeck-launcher-2.10.5-SNAPSHOT.jar。

2.新建rundeck目錄

將jar包移到此目錄,執(zhí)行java -jar rundeck-launcher-2.10.5.jar 服務(wù)便啟動(dòng)了

服務(wù)啟動(dòng)后,會(huì)在rundeck目錄生成如下相關(guān)目錄:

  • var:存放遠(yuǎn)程主機(jī)key信息,如ssh的密碼,服務(wù)私鑰。保存新建項(xiàng)目的日志信息,生命周期數(shù)據(jù)等。存儲(chǔ)項(xiàng)目節(jié)點(diǎn)資源模型緩存信息,等

  • tools:存放項(xiàng)目依賴的jar包,相關(guān)指令集

  • server:存儲(chǔ)RunDeck配置信息(用戶體系,數(shù)據(jù)庫(kù)連接)。RunDeckserver本身的日志信息、項(xiàng)目元數(shù)據(jù)庫(kù)信息、webui項(xiàng)目信息、web容器的依賴(jetty)

  • projects:存儲(chǔ)新建的項(xiàng)目信息,包括項(xiàng)目節(jié)點(diǎn)信息等

  • libext: 存儲(chǔ)插件依賴jar

  • etc:存儲(chǔ)RunDeck使用的到的框架配置信息,如日志框架log4j,以及指定其他所有配置的磁盤存儲(chǔ)路徑,如以上所示目錄,都可在etc中的配置文件指定

3.訪問(wèn)RunDeck服務(wù)

默認(rèn)的web端口為4440,所以打開:http://localhost:4440,即可看到如下頁(yè)面

DevOps自動(dòng)化組件RUNDECK開發(fā)部署使用的方法

ps:注意我截圖的地址,yudian-pc:4440,是因?yàn)镽unDeck啟動(dòng)的時(shí)候默認(rèn)獲取了計(jì)算機(jī)名稱設(shè)置了framework.server.hostname = yudian-PC,這會(huì)導(dǎo)致雖然我們用localhost可以訪問(wèn)到服務(wù),但是提交表單跳轉(zhuǎn)的時(shí)候,都會(huì)被定向到y(tǒng)udian-pc:4440。解決方法如下:

  • 1.設(shè)置你本機(jī)的host,如,設(shè)置yudian-pc定向到localhost。

  • 2.修改配置文件/etc/framework.properties,自己指定如下的配置文件

framework.server.name = yudian-PC
framework.server.hostname = yudian-PC
framework.server.port = 4440
framework.server.url = http://yudian-PC:4440

4.用戶指定的配置?

RunDeck有很多的數(shù)據(jù)可以由用戶自己來(lái)配置,如上面的server.url端口等,當(dāng)然很多的配置使用默認(rèn)的就好了,不需要改動(dòng)。其他的如數(shù)據(jù)庫(kù),初始化密碼等還是可以改下的,RunDeck的信息的存儲(chǔ)體系包括數(shù)據(jù)庫(kù)系統(tǒng)和文件系統(tǒng),其中數(shù)據(jù)庫(kù)默認(rèn)使用的h3數(shù)據(jù)庫(kù),當(dāng)使用久數(shù)據(jù)一多性能就會(huì)下降了,當(dāng)然,我們可以配置其他的支持jdbc的數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)數(shù)據(jù)。

1.修改默認(rèn)的用戶名密碼:

/server/config/realm.properties

2.修改數(shù)據(jù)庫(kù)連接:

/server/config/rundeck-config.properties,如

dataSource.url = jdbc:mysql://localhost:3306/rundeckdb?autoReconnect=true  

dataSource.username = root  

dataSource.password = sasa

dataSource.driverClassName=com.mysql.jdbc.Driver 

3.添加郵箱通知配置:

/server/config/rundeck-config.properties,如

grails.mail.host=smtp.sina.com.cn  
grails.mail.port=25  
grails.mail.username=xxx
grails.mail.password=xxx

RunDeck的使用

RunDeck使用過(guò)程中會(huì)涉及到五大模塊概念,分別如Project,Nodes,Jobs,Commands,Activity,其他還有key倉(cāng)庫(kù),用戶權(quán)限管理等等。

Project是最基礎(chǔ)的模塊,Nodes,Jobs,Commands等都關(guān)聯(lián)了Project,下面我們從創(chuàng)建項(xiàng)目,到執(zhí)行命名,走一個(gè)完整的流程實(shí)例。

 (1) 創(chuàng)建Project

輸入項(xiàng)目名稱(項(xiàng)目名稱好像不支持中文),項(xiàng)目描述,選好ssh權(quán)限校驗(yàn)的方式(私鑰 or password),提交

DevOps自動(dòng)化組件RUNDECK開發(fā)部署使用的方法

(2)添加節(jié)點(diǎn)信息

默認(rèn)的節(jié)點(diǎn)配置信息,存儲(chǔ)在RunDeck/projects/下的。這里以項(xiàng)目名稱ca為例,打開projects/ca/etc/resources.xm文件,添加節(jié)點(diǎn)信息

  添加node節(jié)點(diǎn):屬性如下

 name="ca" description="newca server node" tags="" hostname="106.75.60.xxx" osArch="amd64" osFamily="unix" osName="Linux" osVersion="10.0" username="root"

回到文本控制臺(tái),刷新Nodes模塊就會(huì)看到新增的節(jié)點(diǎn)信息,如

DevOps自動(dòng)化組件RUNDECK開發(fā)部署使用的方法

(3)新增用于節(jié)點(diǎn)服務(wù)器權(quán)限驗(yàn)證的key

入口從,右上角用戶標(biāo)志的左邊那個(gè)配置按鈕key storage進(jìn)入,注意的我的url為http://yudian-pc:4440/menu/storage。創(chuàng)建好后在項(xiàng)目ssh屬性password中選中創(chuàng)建好的key

DevOps自動(dòng)化組件RUNDECK開發(fā)部署使用的方法

(4)新增job,添加查看日志的命令,在ca節(jié)點(diǎn)執(zhí)行

新增一個(gè)可執(zhí)行的job,添加tail -f xxx.log用來(lái)查看遠(yuǎn)程服務(wù)器輸出的日志信息,操作如下,注意如下箭頭標(biāo)注,可以指定篩選到的服務(wù)器,這里是ca,也可以配置命令執(zhí)行失敗后的處理流程等等。

DevOps自動(dòng)化組件RUNDECK開發(fā)部署使用的方法

DevOps自動(dòng)化組件RUNDECK開發(fā)部署使用的方法

執(zhí)行job后,會(huì)不斷地輸出目標(biāo)節(jié)點(diǎn)服務(wù)器的日志信息,如

DevOps自動(dòng)化組件RUNDECK開發(fā)部署使用的方法

(5)Activity中查看歷史執(zhí)行記錄

DevOps自動(dòng)化組件RUNDECK開發(fā)部署使用的方法

(6)其他相關(guān)使用

如下圖,還有用戶權(quán)限控制,插件管理,報(bào)表導(dǎo)出等等功能,考慮篇幅這里就不一一列舉了

DevOps自動(dòng)化組件RUNDECK開發(fā)部署使用的方法

關(guān)于“DevOps自動(dòng)化組件RUNDECK開發(fā)部署使用的方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI