一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

?詳解gitlab+jenkins如何打造ceph的rpm自動(dòng)編譯

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

前置條件

準(zhǔn)備jenkins和gitlab的安裝,這個(gè)過程請(qǐng)自行谷歌

jenkins 插件設(shè)置

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

?詳解gitlab+jenkins如何打造ceph的rpm自動(dòng)編譯

?詳解gitlab+jenkins如何打造ceph的rpm自動(dòng)編譯

gitlab新建ceph

?詳解gitlab+jenkins如何打造ceph的rpm自動(dòng)編譯

源碼包上傳到gitlab

在 http://download.ceph.com/tarballs/ 下載對(duì)應(yīng)的軟件包版本,以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#關(guān)鍵步驟,剔除掉.gitignore,不然后面編譯依賴檢查會(huì)報(bào)錯(cuò)

初始化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 任務(wù)設(shè)置

新建一個(gè)自由風(fēng)格的軟件項(xiàng)目,輸入"rpmbuilid_ceph"

?詳解gitlab+jenkins如何打造ceph的rpm自動(dòng)編譯

之后在源碼管理里面選擇git,輸入之前新建的gitlab項(xiàng)目信息,設(shè)置相應(yīng)的分支,這里選的是默認(rèn)master分支

?詳解gitlab+jenkins如何打造ceph的rpm自動(dòng)編譯

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

?詳解gitlab+jenkins如何打造ceph的rpm自動(dòng)編譯

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

?詳解gitlab+jenkins如何打造ceph的rpm自動(dòng)編譯

同時(shí)在Secret token 點(diǎn)擊“Generate”,記錄生成的token字段

?詳解gitlab+jenkins如何打造ceph的rpm自動(dòng)編譯

最后選擇"構(gòu)建” -> "執(zhí)行 shell",輸入對(duì)應(yīng)的rpm編譯打包腳本,點(diǎn)擊保存,完成jenkins設(shè)置。

?詳解gitlab+jenkins如何打造ceph的rpm自動(dòng)編譯

腳本如下

#!/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設(shè)置

打開gitlab 對(duì)應(yīng)的項(xiàng)目,在 settings -> integrations

?詳解gitlab+jenkins如何打造ceph的rpm自動(dòng)編譯

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

?詳解gitlab+jenkins如何打造ceph的rpm自動(dòng)編譯

啟動(dòng)編譯

回到j(luò)enkins對(duì)應(yīng)的"rpmbuild_ceph"任務(wù)列表,點(diǎn)擊“立即構(gòu)建”,開始編譯ceph的rpm包,

?詳解gitlab+jenkins如何打造ceph的rpm自動(dòng)編譯

編譯過程可以通過點(diǎn)擊具體任務(wù),查看“控制臺(tái)輸出”,看到編輯的當(dāng)前進(jìn)度狀態(tài)。

?詳解gitlab+jenkins如何打造ceph的rpm自動(dòng)編譯

編譯完成后,RPM包會(huì)存儲(chǔ)在jenkins節(jié)點(diǎn)的/root/rpmbuild/下。

總結(jié)

上面的設(shè)置需要注意的有3點(diǎn)

代碼提交到gitlab一定要剔除掉“.gitignore”,當(dāng)然你可以手工去修改具體內(nèi)容,不然后面編譯會(huì)報(bào)錯(cuò)。

jenkins是基于gitlab的pull和merge事件來觸發(fā)后臺(tái)的自動(dòng)編譯,所有后續(xù)在gitlab上面的代碼pull和merge操作都會(huì)觸發(fā)相應(yīng)版本的rpm包編譯,注意這里只針對(duì)源碼的master分支做了處理,各位根據(jù)實(shí)際情況進(jìn)行調(diào)整。

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    674

    瀏覽量

    33598
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    395

    瀏覽量

    28299
  • jenkins
    +關(guān)注

    關(guān)注

    0

    文章

    32

    瀏覽量

    5268

原文標(biāo)題:?gitlab+jenkins打造ceph的rpm自動(dòng)編譯

文章出處:【微信號(hào):cephbook,微信公眾號(hào):Ceph對(duì)象存儲(chǔ)方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于服務(wù)器安裝node環(huán)境的步驟

    jenkins+gitlab+vue進(jìn)行自動(dòng)化構(gòu)建部署項(xiàng)目打包
    發(fā)表于 05-22 11:06

    Gitlab安裝及集成LDAP

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

    ansible playbook+jenkins如何實(shí)現(xiàn)自動(dòng)新增域名

    ansible-playbook+jenkins實(shí)現(xiàn)自動(dòng)新增域名
    發(fā)表于 06-03 11:58

    Ceph是什么?Ceph的統(tǒng)一存儲(chǔ)方案簡(jiǎn)析

    Ceph是什么?Ceph是一個(gè)開源的分布式存儲(chǔ)系統(tǒng),可大規(guī)模擴(kuò)展、高性能、無單點(diǎn)故障,在普通的服務(wù)器上可以支持到PB級(jí)容量,商用機(jī)器上支持的容量可以達(dá)到EB級(jí)別。Ceph的競(jìng)爭(zhēng)力市面上提供云存儲(chǔ)
    發(fā)表于 10-08 15:40

    jenkins簡(jiǎn)單的使用教程_jenkins安裝與配置

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

    jenkins有什么用_jenkins如何自動(dòng)部署

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

    jenkins自動(dòng)化部署

    本文詳細(xì)介紹Jenkins的簡(jiǎn)單使用—jenkins自動(dòng)化部署。
    的頭像 發(fā)表于 02-06 11:27 ?4900次閱讀
    <b class='flag-5'>jenkins</b><b class='flag-5'>自動(dòng)</b>化部署

    jenkins持續(xù)集成原理

    本文詳細(xì)介紹了jenkins持續(xù)集成原理。持續(xù)集成就是為解決程序代碼提交質(zhì)量低,提交內(nèi)容導(dǎo)致原有系統(tǒng)的bug,按時(shí)或按需自動(dòng)編譯版本,自動(dòng)進(jìn)行自動(dòng)
    的頭像 發(fā)表于 02-06 11:43 ?4251次閱讀

    Jenkins是什么_Jenkins常用功能_jenkins的使用總結(jié)

    本文詳細(xì)回答了Jenkins是什么,Jenkins常用功能以及jenkins的使用總結(jié)。Jenkins 是一個(gè)可擴(kuò)展的持續(xù)集成引擎。Jenkins
    發(fā)表于 02-06 14:44 ?2.9w次閱讀
    <b class='flag-5'>Jenkins</b>是什么_<b class='flag-5'>Jenkins</b>常用功能_<b class='flag-5'>jenkins</b>的使用總結(jié)

    Prelink的交叉編譯和使用詳解

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

    ceph-zabbix監(jiān)控Ceph集群文件系統(tǒng)

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

    autobuild-ceph遠(yuǎn)程部署Ceph自動(dòng)構(gòu)建Ceph

    autobuild-ceph.zip
    發(fā)表于 05-05 11:09 ?2次下載
    autobuild-<b class='flag-5'>ceph</b>遠(yuǎn)程部署<b class='flag-5'>Ceph</b>及<b class='flag-5'>自動(dòng)</b>構(gòu)建<b class='flag-5'>Ceph</b>

    基于Jenkins+GitLab+Maven實(shí)現(xiàn)代碼自動(dòng)打包編譯發(fā)布

    Jenkins是一個(gè)獨(dú)立開源的持續(xù)集成和持續(xù)交付工具,用于自動(dòng)化構(gòu)建、測(cè)試和部署軟件項(xiàng)目。
    的頭像 發(fā)表于 11-20 09:57 ?5603次閱讀
    基于<b class='flag-5'>Jenkins+GitLab</b>+Maven實(shí)現(xiàn)代碼<b class='flag-5'>自動(dòng)</b>打包<b class='flag-5'>編譯</b>發(fā)布

    Jenkins 與 SonarQube 集成部署,自動(dòng)化代碼質(zhì)量監(jiān)控

    前言 強(qiáng)化代碼質(zhì)量,加速軟件交付!Jenkins 攜手 SonarQube,與華為云 Flexus X 云服務(wù)器強(qiáng)強(qiáng)聯(lián)合,打造自動(dòng)化代碼質(zhì)量監(jiān)控新生態(tài)。Flexus X 以其靈活的算力配置、卓越
    的頭像 發(fā)表于 01-07 17:24 ?566次閱讀
    <b class='flag-5'>Jenkins</b> 與 SonarQube 集成部署,<b class='flag-5'>自動(dòng)</b>化代碼質(zhì)量監(jiān)控

    基于 Docker 與 Jenkins 實(shí)現(xiàn)自動(dòng)化部署

    前言 重塑自動(dòng)化部署新高度,Docker 攜手 Jenkins,在華為云 Flexus X 云服務(wù)器的加持下,引領(lǐng)持續(xù)集成與部署的新紀(jì)元。Flexus X 以其卓越的性能、靈活的資源配置和高效的成本
    的頭像 發(fā)表于 01-07 17:25 ?395次閱讀
    基于 Docker 與 <b class='flag-5'>Jenkins</b> 實(shí)現(xiàn)<b class='flag-5'>自動(dòng)</b>化部署