精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

?詳解gitlab+jenkins如何打造ceph的rpm自動編譯

電子工程師 ? 來源:fqj ? 2019-04-24 11:06 ? 次閱讀

前置條件

準備jenkins和gitlab的安裝,這個過程請自行谷歌

jenkins 插件設置

需要添加的插件:Gitlab Hook、Build Authorization Token Root、Gitlab Authentication、Gitlab

?詳解gitlab+jenkins如何打造ceph的rpm自動編譯

?詳解gitlab+jenkins如何打造ceph的rpm自動編譯

gitlab新建ceph

?詳解gitlab+jenkins如何打造ceph的rpm自動編譯

源碼包上傳到gitlab

在 http://download.ceph.com/tarballs/ 下載對應的軟件包版本,以12.2.12為例

解壓軟件包

[root@demohost1supdev]#tarzxfceph-12.2.12.tar.gz#解壓[root@demohost1ceph-12.2.12]#cdceph-12.2.12[root@demohost1ceph-12.2.12]#lsadminceph-erasure-code-corpusChangeLogCONTRIBUTING.rstdebiando_freebsd.shfusetracemake-apk.shman
pom.xmlREADME.alpine.mdREADME.solarisshare
udevalpineceph-object-corpuscmakeCOPYINGdocDoxyfileINSTALLmake-
debs.shmirroring qa
README.FreeBSDREADME.xiosrcAUTHORSceph.spec
CMakeLists.txtCOPYING-GPL2doc_deps.deb.txtetc
install-deps.shmake-distNEWS
READMEREADME.git-subtreerun-make-check.shSubmittingPatches.rstbinceph.spec.in
CodingStyleCOPYING-LGPL2.1do_cmake.shexampleskeys
make-srpm.shPendingReleaseNotesREADME.aixREADME.md selinux
systemd[root@demohost1ceph-12.2.12]#find.-name".gitignore"|xargsrm-f#關鍵步驟,剔除掉.gitignore,不然后面編譯依賴檢查會報錯

初始化git,提交到gitlab倉庫

[root@demohost1ceph-12.2.12]#gitinitInitializedemptyGitrepositoryin/home/supdev/ceph-12.2.12/.git/[root@demohost1ceph-12.2.12]#pwd/home/demo/ceph-12.2.12[root@demohost1ceph-12.2.12]#gitremoteaddoriginhttp://gitlab.cephdemo.local/diluga/ceph.git[root@demohost1ceph-12.2.12]#gitadd--all.Thefilewillhaveitsoriginallineendingsinyourworkingdirectory.warning:CRLFwillbereplacedbyLFinsrc/rapidjson/thirdparty/gtest/googletest/msvc/gtest_unittest.vcproj.Thefilewillhaveitsoriginallineendingsinyourworkingdirectory.[root@demohost1ceph-12.2.12]#gitcommit-m"Initialcommit"[master(root-commit)85a9fab]InitialcommitCommitter:rootYournameandemailaddresswereconfiguredautomaticallybasedonyourusernameandhostname.Pleasecheckthattheyareaccurate.Youcansuppressthismessagebysettingthemexplicitly:gitconfig--globaluser.name"YourName"gitconfig--globaluser.emailyou@example.comAfterdoingthis,youmayfixtheidentityusedforthiscommitwith:gitcommit--amend--reset-authorThefilewillhaveitsoriginallineendingsinyourworkingdirectory.46084fileschanged,9316748insertions(+)createmode100644.gitmodule_mirrorscreatemode100644.gitmodules...createmode100644udev/60-ceph-by-parttypeuuid.rulescreatemode100644udev/95-ceph-osd.rules[root@demohost1ceph-12.2.12]#gitpush-uoriginmasterUsernamefor'http://gitlab.cephdemo.local':dilugaPasswordfor'http://diluga@gitlab.cephdemo.local':Countingobjects:48328,done.Deltacompressionusingupto32threads.Compressingobjects:100%(47048/47048),done.Writingobjects:100%(48328/48328),83.34MiB|8.29MiB/s,done.Total48328(delta12162),reused0(delta0)remote:Resolvingdeltas:100%(12162/12162),done.Tohttp://gitlab.cephdemo.local/diluga/ceph.git*[newbranch]master->masterBranchmastersetuptotrackremotebranchmasterfromorigin.

jenkins 任務設置

新建一個自由風格的軟件項目,輸入"rpmbuilid_ceph"

?詳解gitlab+jenkins如何打造ceph的rpm自動編譯

之后在源碼管理里面選擇git,輸入之前新建的gitlab項目信息,設置相應的分支,這里選的是默認master分支

?詳解gitlab+jenkins如何打造ceph的rpm自動編譯

Credentials部分,選擇“添加”,輸入gitlab的賬號和密碼如下

?詳解gitlab+jenkins如何打造ceph的rpm自動編譯

之后設置 構建觸發器,選擇“Build when a change is pushed to GitLab”,記錄“GitLab webhook URL”,選擇在 “Push Events” 和 “Accepted Merge Request Events” 兩種事件類型的時候觸發webhook通知。

?詳解gitlab+jenkins如何打造ceph的rpm自動編譯

同時在Secret token 點擊“Generate”,記錄生成的token字段

?詳解gitlab+jenkins如何打造ceph的rpm自動編譯

最后選擇"構建” -> "執行 shell",輸入對應的rpm編譯打包腳本,點擊保存,完成jenkins設置。

?詳解gitlab+jenkins如何打造ceph的rpm自動編譯

腳本如下

#!/bin/bashrm-rf~/rpmbuild/usr/bin/rpmdev-setuptreecp-f./ceph.spec~/rpmbuild/SPECS#gitarchivemaster--prefix=ceph-12.2.12/|bzip2>ceph-12.2.12.tar.bz2mkdirceph-12.2.12mv*ceph-12.2.12cp.gitmodulesceph-12.2.12tar-cvjSfceph-12.2.12.tar.bz2ceph-12.2.12cpceph-12.2.12.tar.bz2~/rpmbuild/SOURCES/cd~/rpmbuild/usr/bin/rpmbuild-bbSPECS/ceph.spec

gitlab webhook設置

打開gitlab 對應的項目,在 settings -> integrations

?詳解gitlab+jenkins如何打造ceph的rpm自動編譯

輸入之前的“GitLab webhook URL” 和 token,勾選 push和 merge 兩種類型的事件,如果沒用到SSL,則取消SSL認證

?詳解gitlab+jenkins如何打造ceph的rpm自動編譯

啟動編譯

回到jenkins對應的"rpmbuild_ceph"任務列表,點擊“立即構建”,開始編譯ceph的rpm包,

?詳解gitlab+jenkins如何打造ceph的rpm自動編譯

編譯過程可以通過點擊具體任務,查看“控制臺輸出”,看到編輯的當前進度狀態。

?詳解gitlab+jenkins如何打造ceph的rpm自動編譯

編譯完成后,RPM包會存儲在jenkins節點的/root/rpmbuild/下。

總結

上面的設置需要注意的有3點

代碼提交到gitlab一定要剔除掉“.gitignore”,當然你可以手工去修改具體內容,不然后面編譯會報錯。

jenkins是基于gitlab的pull和merge事件來觸發后臺的自動編譯,所有后續在gitlab上面的代碼pull和merge操作都會觸發相應版本的rpm包編譯,注意這里只針對源碼的master分支做了處理,各位根據實際情況進行調整。

源碼里面的“ceph.spec”文件寫死了一些配置,如果你改變了編譯流程細節,則需要修改對應的配置內容,比如源件包名稱必須是"ceph-12.2.12.tar.bz2",具體可以參考ceph.spec內容。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編譯
    +關注

    關注

    0

    文章

    646

    瀏覽量

    32672
  • 腳本
    +關注

    關注

    1

    文章

    382

    瀏覽量

    14761
  • jenkins
    +關注

    關注

    0

    文章

    27

    瀏覽量

    5117

原文標題:?gitlab+jenkins打造ceph的rpm自動編譯

文章出處:【微信號:cephbook,微信公眾號:Ceph對象存儲方案】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于服務器安裝node環境的步驟

    jenkins+gitlab+vue進行自動化構建部署項目打包
    發表于 05-22 11:06

    Gitlab安裝及集成LDAP

    https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
    發表于 07-09 06:28

    ansible playbook+jenkins如何實現自動新增域名

    ansible-playbook+jenkins實現自動新增域名
    發表于 06-03 11:58

    Ceph是什么?Ceph的統一存儲方案簡析

    Ceph是什么?Ceph是一個開源的分布式存儲系統,可大規模擴展、高性能、無單點故障,在普通的服務器上可以支持到PB級容量,商用機器上支持的容量可以達到EB級別。Ceph的競爭力市面上提供云存儲
    發表于 10-08 15:40

    jenkins簡單的使用教程_jenkins安裝與配置

    jenkins是一個開源軟件項目,是基于Java開發的一種持續集成工具,用于監控持續重復的工作,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能。開發第一步、提交第二步、編譯第三步、測試第四步、發布第五步
    發表于 12-20 18:40 ?8487次閱讀
    <b class='flag-5'>jenkins</b>簡單的使用教程_<b class='flag-5'>jenkins</b>安裝與配置

    jenkins有什么用_jenkins如何自動部署

    Jenkins是一個開源的、提供友好操作界面的持續集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持續、自動的構建/測試軟件項目、監控外部任務的運行(這個比較抽象,暫且寫上,不做解釋)。
    發表于 12-20 19:06 ?3.7w次閱讀
    <b class='flag-5'>jenkins</b>有什么用_<b class='flag-5'>jenkins</b>如何<b class='flag-5'>自動</b>部署

    jenkins自動化部署

    本文詳細介紹Jenkins的簡單使用—jenkins自動化部署。
    的頭像 發表于 02-06 11:27 ?4584次閱讀
    <b class='flag-5'>jenkins</b><b class='flag-5'>自動</b>化部署

    jenkins持續集成原理

    本文詳細介紹了jenkins持續集成原理。持續集成就是為解決程序代碼提交質量低,提交內容導致原有系統的bug,按時或按需自動編譯版本,自動進行自動
    的頭像 發表于 02-06 11:43 ?3993次閱讀

    Jenkins是什么_Jenkins常用功能_jenkins的使用總結

    本文詳細回答了Jenkins是什么,Jenkins常用功能以及jenkins的使用總結。Jenkins 是一個可擴展的持續集成引擎。Jenkins
    發表于 02-06 14:44 ?2.8w次閱讀
    <b class='flag-5'>Jenkins</b>是什么_<b class='flag-5'>Jenkins</b>常用功能_<b class='flag-5'>jenkins</b>的使用總結

    Prelink的交叉編譯和使用詳解

    Prelink的交叉編譯和使用詳解
    的頭像 發表于 06-20 12:03 ?3380次閱讀
    Prelink的交叉<b class='flag-5'>編譯</b>和使用<b class='flag-5'>詳解</b>

    ceph-zabbix監控Ceph集群文件系統

    ceph-zabbix.zip
    發表于 04-26 09:48 ?2次下載
    <b class='flag-5'>ceph</b>-zabbix監控<b class='flag-5'>Ceph</b>集群文件系統

    autobuild-ceph遠程部署Ceph自動構建Ceph

    autobuild-ceph.zip
    發表于 05-05 11:09 ?2次下載
    autobuild-<b class='flag-5'>ceph</b>遠程部署<b class='flag-5'>Ceph</b>及<b class='flag-5'>自動</b>構建<b class='flag-5'>Ceph</b>

    Jenkins+Docker一鍵自動化部署SpringBoot最簡流程

    簡述實現步驟:在docker安裝jenkins,配置jenkins基本信息,利用Dockerfile和shell腳本實現項目自動拉取打包并運行。
    的頭像 發表于 11-23 10:16 ?1268次閱讀

    Jenkins+Docker一鍵自動化部署SpringBoot應用最精簡流程

    簡述實現步驟:在docker安裝jenkins,配置jenkins基本信息,利用Dockerfile和shell腳本實現項目自動拉取打包并運行。
    的頭像 發表于 11-06 16:27 ?1972次閱讀
    <b class='flag-5'>Jenkins</b>+Docker一鍵<b class='flag-5'>自動</b>化部署SpringBoot應用最精簡流程

    基于Jenkins+GitLab+Maven實現代碼自動打包編譯發布

    Jenkins是一個獨立開源的持續集成和持續交付工具,用于自動化構建、測試和部署軟件項目。
    的頭像 發表于 11-20 09:57 ?3984次閱讀
    基于<b class='flag-5'>Jenkins+GitLab</b>+Maven實現代碼<b class='flag-5'>自動</b>打包<b class='flag-5'>編譯</b>發布