中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用Jenkins自動化構建工具進行敏捷開發

發布時間:2022-04-06 13:53:41 來源:億速云 閱讀:219 作者:iii 欄目:開發技術

這篇“怎么使用Jenkins自動化構建工具進行敏捷開發”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“怎么使用Jenkins自動化構建工具進行敏捷開發”文章吧。

    一、序言

    Jenkins 是一款自動化構建工具,能夠基于 Maven 構建后端 Java 項目,也能夠基于 nodejs 構建前端 vue 項目,并且有可視化 web 界面。

    所謂自動化構建是按照一定的策略執行打包腳本,相對于普通腳本構建,Jenkins 有如下優勢:

    • 構建隊列中能夠同時構建多個項目,包含前端和后端項目;

    • 定時構建;

    • 代碼倉庫觸發構建(普通腳本無法實現);

    Jenkins 體現一種項目管理思維:開發人員的貼心助理,集中精力專注于業務開發;盡早的實現代碼集成(包含前后端)以便盡早發現問題;構建環境與開發環境隔離,為向生產環境遷移做好充足的準備。

    構建過程全程自動化進行,無人工參與,配合 Docker 容易實現高效的項目部署與遷移。

    二、安裝與使用

    Jenkins 是一個工具,既然是一個工具,便有相應的替代方案,因此不需要花工作的時間琢磨這個工具是如何工作的,將精力放在如何利用 Jenkins 提高敏捷開發效率上更有意義。

    實踐過程中,將項目的腳本化構建用 shell 編寫成命令腳本,并附加在項目中,即使不使用 Jenkins,通過執行 shell 腳本也能夠實現項目的自動化構建。這么做主要有如下考慮:

    增強拓展性

    即使沒有 Jenkins,項目也能完成構建,增加構建的拓展性

    減少對 Jenkins 的依賴

    讓 Jenkins 承擔實踐調度的角色,具體構建過程由標準化的腳本來完成。

    既然 shell 腳本能夠完成自動化構建,那么還需要用到 Jenkins 嗎,是否沖突?答案是不沖突。shell 腳本配合 Jenkins 使用有兩大方面優勢:

    使用 shell 腳本必須登錄目標服務器,擁有相應的權限后,方能執行 shell 腳本,Jenkins 能夠實現在不登錄目標服務器的基礎上,使用一對賬號和密碼,管理可視化的 Web 操作界面觸發構建事件。

    按需構建,開發者在提交完代碼后,向 Jenkins 服務器發送一個信號,便可觸發構建。

    (一)安裝

    使用傳送門快捷安裝,啟動后使用安裝推薦插件,內置國內插件源,安裝速度較快。

    1、查看初始密碼
    cat ~/.jenkins/secrets/initialAdminPassword
    2、修改默認工作空間

    默認工作空間路徑為~/.jnkins,運行 Jenkins 程序的用戶空間下,構建完成后的項目,如果要放在第三方容器中運行時,有可能會出現找不到路徑的情況,修改默認工作空間或者給予資源目錄可執行權限都能解決此問題。

    安裝完成之后,暫時啟動程序,先確認是否需要修改Jenkins_HOME變量,后續初始化以及插件的安裝與此路徑有關。此變量修改方式有多種,顆粒度較大的是配置在 PATH 環境變量中,顆粒度較小的是配置在運行 Jenkins 項目的容器中。

    修改 Tomcat 的配置文件 context.xml,增加一行配置

    <!-- 創建一個jenkins,并將其用戶空間設置為JENKINS_HOME -->
    <Environment name="JENKINS_HOME" value="/home/jenkins" type=java.lang.String/>

    注意:JENKINS_HOME默認值為啟動進程用戶對應的用戶空間,在啟動前修改后即變成新的路徑。

    (二)使用

    如果在配置遠程 APiToken 觸發不生效,請閱讀免密登錄章節。

    1、構建配置

    用腳本的方式構建 Jenkins 項目配置非常簡單,盡管內置了很多花里胡哨的配置,這里用不到,不需要關心。

    怎么使用Jenkins自動化構建工具進行敏捷開發

    只需要在構建中添加執行 shell 腳本命令即可。附錄中列舉的環境配置統一在宿主機上完成,不在 Jenkins 服務內部配置,使用默認值即可。

    2、添加項目

    在宿主機上將待構建項目的源代碼克隆到本地,執行 shell 腳本完成手動構建。在 Jenkins 管理工作臺新建一個同名的空項目,將克隆的源代碼整體復制到 Jenkins 的工作空間下,默認位置為/root/.jenkins/workspace,委托給 Jenkins 代為自動管理該項目。

    (三)免密登錄

    使用 URL 觸發構建事件,需要配置免密登錄,即在不需要輸入用戶名和密碼的情況下,通過遠程調用 shell 腳本觸發構建事件,此 shell 腳本本質上是 GET 的方式請求某個指定的路徑。操作過程如下:

    (1)安裝插件

    安裝Build Authorization Token Root Plugin插件,如果已經存在,則忽略此步驟。此插件的作用是給當前登錄的用戶生成 Token,方便后續認證使用,一個用戶可以配置多個 token。

    (2)項目配置

    在指定的項目中添加 token 配置,項目可以復用一個 token 或者每個項目單獨設置一個 token,依據需要選擇。只有添加此配置之后,使用 token 觸發方能生效。

    怎么使用Jenkins自動化構建工具進行敏捷開發

    (3)客戶端使用

    編寫腳本,將腳本分發給開發者,自動化構建便可以愉快的開始了。使用curl多參數時,&符號需要轉義。

    curl {Jenkins URL}/buildByToken/build?job={項目名}\&token={token}

    至此,CI/CD敏捷開發配置完畢。

    三、觸發策略

    構建事件可以按照不同的策略來定義,定時屬于被動觸發;URL 和鉤子程序屬于主動觸發。

    (一)定時觸發

    定時觸發有多種實現方案,使用 CentOS 服務器內置的定時調度器是較為輕量的解決方式,實現原理是在指定的時間節點運行 shell 腳本,其中 shell 腳本便是項目構建的載體。如果單純希望定時構建項目,推薦使用此種解決方式,Jenkins 略顯笨重。

    (二)URL 觸發

    用腳本模擬或者在瀏覽器訪問 URL 觸發構建事件。此種方式是開發中用的比較多的方式,按需構建的代表。軟件開發者在提交完代碼后,主動觸發構建事件,這種方式構建效率較高。

    Build Triggers

    構建觸發器是指 Jenkins 收到某一信號之后,立即開始構建指定的任務。

    勾選【Trigger builds remotely】并設置【Authentication Token】

    # 【服務前綴】/job/【任務名】/build?token=【token】
    JENKINS_URL/job/job-vue/build?token=TOKEN_NAME

    通過使用 curl 腳本即可觸發構建信號。

    (三)鉤子觸發

    在代碼倉庫完成鉤子程序配置,并且允許代碼倉庫服務器訪問 Jenkins 服務器,鉤子程序會在開發者提交代碼時觸發構建事件。

    鉤子觸發看上去比較美,實際操作中有一定的前置條件:一是項目的構建時間不能過長;二是提交代碼不能過于頻繁。

    附錄、工具使用

    1、語言設置

    在【系統管理】>【插件管理】中添加【locale】插件。在【系統管理】>【全局配置】中 locale 欄目下添加【en_US】,并勾選對所有用戶生效選項。

    建議統一使用英文界面(可以修改為中文),在中英文混合下操作比較別扭。

    2、構建環境清單

    序號環境名作用及要求參考資料
    1JavaJava 程序基礎運行環境,使用 jdk 不能使用 jre(需要編譯 Java 源碼) 
    2maven構建 Java 項目,為提高構建速度需要配置國內倉庫源[Maven 使用手冊]
    3NodeJS構建前端項目 
    4git拉取遠程倉庫代碼 
    5ssh 免密登錄授權拉取遠程倉庫代碼;授權登錄遠程服務器(構建完成后部署)[SSH 使用手冊]

    3、環境配置

    1、Maven Configuration

    配置項配置內容
    Default settings provider/usr/local/maven/conf/settings.xml
    Default global settings provider/usr/local/maven/conf/settings.xml

    2、JDK

    配置項配置內容
    JAVA_HOME/usr/local/java

    3、Git

    配置項配置內容
    Path to Git executable/usr/local/git/bin/git

    4、Maven

    配置項配置內容
    MAVEN_HOME/usr/local/maven

    5、NodeJS

    配置項配置內容
    Installation directory/usr/local/nodejs/bin

    4、任務配置

    1、Source Code Management

    源代碼管理是 Jenkins 工作的前提,即能夠獲取到任務源代碼,它是后續代碼自動構建的前提。

    源代碼托管在 GitHub,并且是私有倉庫,Jenkins 正確訪問 git 倉庫需要進行授權。

    # 基于http用戶名和密碼授權
    https://gitee.com/decsa/ucode-cms-vue.git
    # 基于公鑰和私鑰匙授權
    git@gitee.com:decsa/ucode-cms-vue.git

    為了提高工作效率,促進團隊協作,這里選用 ssh 認證。

    ssh-keygen -t rsa -C "982361244@qq.com"

    將文件【~/.ssh/id_rsa.pub】內字符串拷貝至 GitHub 設置中,配置后即可免密拉取 GitHub 私有倉庫代碼。

    更多內容請查看 [SSH 使用手冊]

    2、Build Triggers

    構建觸發器是指 Jenkins 收到某一信號之后,立即開始構建指定的任務。

    勾選【Trigger builds remotely】并設置【Authentication Token】

    # 【服務前綴】/job/【任務名】/build?token=【token】
    JENKINS_URL/job/ruoyi-vue/build?token=TOKEN_NAME

    通過在任一登陸的服務器的瀏覽器或者使用 curl 腳本即可出發任務的立即構建。

    3、Build

    后端項目通常使用 Maven 來構建,在下拉框中選擇【Invoke top-level Maven targets】,然后在 Goals 欄目中配置如下命令

    clean install

    經過此步驟,能夠在工作空間找到構建后的項目發布包。

    4、Post-build Actions

    在任務構建完成之后出發此操作。通常使用 Docker 將項目發布包構建成鏡像,然后發布到鏡像倉庫中。可執行的鏡像發布到鏡像倉庫之后,有兩種比較常用的后續方案與應用服務器交互。

    Jenkins 通過授權認證,登陸到目標應用服務器,將對應的鏡像拉下來,然后使用腳本啟動。

    通過使用 k8s 容器服務,自動化管理任務鏡像發布工作。

    以上就是關于“怎么使用Jenkins自動化構建工具進行敏捷開發”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    多伦县| 平昌县| 呼和浩特市| 玉溪市| 汝州市| 金寨县| 板桥市| 鹿邑县| 贺兰县| 青冈县| 新田县| 芦山县| 房山区| 松江区| 徐闻县| 绵阳市| 惠州市| 潢川县| 永泰县| 宁阳县| 星子县| 寻乌县| 宿松县| 龙江县| 敖汉旗| 黔东| 城固县| 黄石市| 邵阳县| 江山市| 普洱| 若尔盖县| 高密市| 靖江市| 文山县| 长岭县| 贵德县| 阜阳市| 买车| 石狮市| 德钦县|