<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Jenkins 使用

       

      一、簡介

      1. Make工具

      這個工具是最最原始的工具了,在linux下編過程序,看過比較大的c/c++代碼的人應該都聽說過這個工具(Windows下對應的工具為nmake)。它負責組織構建的過程,也就是負責指揮編譯器如何編譯,連接器如何連接,最后生成一個可用的文件。

      2. Ant工具

      但是有人覺得make工具的很難使用,他的語法很難理解,就發明了ant

      3. Maven工具

      Maven像make一樣是個構建(build)工具,Maven工具是對ant工具的進一步改進(這么說不太準確,但是可以這么理解)。在make工具中,如果我們要編譯某些源文件,我們肯定首先要安裝編譯器等工具,但是有時候需要不同版本的編譯器,如果把每個包都下載下來,在makefile中進行配置制定,需要的包非常多,很難管理,于是人們發明了Maven工具。Maven使用配置文件pom.xml對環境進行配置,例如設定編譯器的版本,設定所需支持包的URL,這樣maven就可以自動去下載所需的包。這樣如果需要對構建環境進行改變時,直接改變pom文件就可以了,maven會自動網絡上下載配置的包。Maven可以利用一些別的工具,實現對編譯結果的統計,對源代碼的檢查,對于代碼的測試等。

      4. Jenkins工具

      其實Maven還是不夠強大。Maven可以控制編譯,控制連接,可以生成各種報告,可以進行代碼測試。可是如何控制這個流程呢?先編譯還是先連接?先進行代碼測試,還是先生成報告?這個工具就是Jenkins。Jenkins能夠對流程進行控制,對能夠對各個階段生成的各種結果進行綜合,以圖表的形式呈現出來。但是不同的工具生成不同格式的結果,Jenkins如何讓這些結果呈現出來?這就是jenkins插件,Jenkins插件使maven中用到的各種工具生成的結果能夠在Jenkins中呈現出來。

      二、Jenkins

      jenkins是一個廣泛用于各種項目的"自動化"編譯、打包、分發部署。jenkins本身是用java語言開發的,所以安裝jenkins的機器至少要有jdk。jenkins可以很好的支持各種語言(java, c#, php等)的項目構建,也完全兼容ant、maven、gradle等多種第三方構建工具,同時跟svn、git能無縫集成,也支持直接與知名源代碼托管網站github、bitbucket直接集成。Jenkins默認情況下可以實現項目更新(通過SVN)和項目發布(通過MAVEN)

      1、Jenkins 安裝(windows)

      1)windows安裝包

      1.以管理員身份運行cmd.exe,進入到jenkins安裝目錄

      2.停止服務:jenkins.exe stop
      2019-05-05 22:31:21,203 INFO - Stopping the service with id ‘Jenkins’

      3.啟動服務:jenkins.exe start
      2019-05-05 22:32:09,753 INFO - Starting the service with id ‘Jenkins’

      2)war安裝包

      下載jenkins.war, 下載成功后,將war包文件放入對應的目錄(如C:\Users\Jenkins\),在命令行切換目錄到Jenkins,然后執行java -jar jenkins.war
      訪問http://localhost:8080 。

      Jenkins集群配置
      集群配置也十分簡單,就是添加slave節點的過程。點擊系統管理->管理節點->新建節點,各個配置后面都有詳細的幫助說明的。
      在啟動方法這里推薦使用 Launch slave agents>構建Job
      其實到這一步,就是jenkins的常規流程了,你可以參照創建Job選項的界面的各個配置,制定你構建計劃,或者我們直接使用腳本來完成我們的構建操作(建議)選擇構建Execute shell,文章末尾會附上一個完整項目的shell構建流程。


      Pipeline
      Pipeline字面意思就是流水線,很好用的Jenkins的一個插件,將很多步驟按順序排列好,做完一個執行下一個。真實的工作環境有很多job,比如先編譯,然后執行靜態代碼檢查、單元測試、然后部署服務器、服務器重啟、進行ui測試等。我們需要對這些job進行一些設置將它們的上下游關系配置好。
      這時候Pipeline就派上用場了。在Jenkins主頁點擊新建視圖,然后選擇Build Pipeline View,然后填寫Select Initial Job,構建后的操作可以選擇其他的Job,以此類推,這樣一個流水線就完成了。Pipeline提供視圖界面,你可以在視圖上形象地看到整個構建計劃的執行流程和完成度。

       

       

      2、Jenkins常用命令

      (1)關閉Jenkins
      http://localhost:8080/exit

      (2)重啟Jenkies
      http://localhost:8080/restart

      (3)重新加載配置信息
      http://localhost:8080/reload

      (4)Jenkins時區設置為北京時間
      打開 【系統管理】->【腳本命令行】運行下面的命令
      System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')

      3、插件安裝

      (1)如果在安裝jenkins的時候沒有安裝相關插件,可以按照如下方式安裝(已經安裝,則不需要)

       (2)選擇可選插件菜單,搜索自己想要的插件,然后安裝,如果有插件一直安裝失敗的情況,可以從jenkins官網下載插件,然后導入到jenkins。在jenkins插件管理->高級,選擇上傳插件進行安裝。

      4、定時構建語法

      * * * * * (五顆星,中間用空格隔開)
      第一顆*表示分鐘,取值0~59
      第二顆*表示小時,取值0~23
      第三顆*表示天,取值1~31
      第四顆*表示第幾月,取值1~12
      第五顆*表示星期,取值0~7,其中0和7代表的都是周日
      H表示隨機,沒有用到 H 隨機的話,不要加括號

      1.
      H/30 * * * * 每30分鐘構建一次:

      2.
      H H/2 * * * 每隔2個小時構建一次
      H 4-19/3 * * * 凌晨點到下午7點,每隔3個小時構建一次
      0 8 * * * 每天早上8點構建一次
      H 8-18/3 * * * 每天早上8點到晚上6點每三小時檢查一次

      3.
      * * 3-5 * * 每個月的3號,4號,5號 都會被構建,具體時間未知
      20 16 15 * * 每個月的15號下午16點20分構建一次

      4.
      0 8,12,22 * * * 每天的8點,12點,22點,一天構建3次(多個時間點,中間用逗號隔開)

      5.
      每個月的1-7號一天構建一次
      H/30 8-19/3 1-28 1-11 1-5 在1-11月中的1號-28號,每個工作日,早晨的8點到下午7點每隔3.5個小時會觸發構建

       

      5、用戶和權限

      jenkins 配置用戶角色權限需要安裝插件 Role Strategy Plugin

      1.安裝 Role Strategy Plugin 插件,下載地址:https://updates.jenkins-ci.org/download/plugins/role-strategy/

       打開jenkins 系統管理-->管理插件-->高級,點擊上傳,選擇下載的插件安裝

      2、安裝完后,重啟jenkins,進入系統設管理-->Configure Global Security ,配置如下,保存

       

       

       

      3.配置User/Group權限

      打開 系統管理-->Manage and Assign Roles

       

      3-1. 管理角色(Manage Roles)

          選擇該項可以創建全局角色、項目角色,并可以為角色分配權限

          

          添加test組,并給Over all 的Read 權限、Job Build 權限、View的Read權限。

           Project roles 配置Pattern,例如匹配以 auto開頭的,需要寫成 auto.*切記!配置完后保存

       

      3-2.添加用戶權限(Assign Role)

          系統需要有用戶(若沒有可添加:系統管理 --> 用戶管理  -->添加用戶),然后:

          

      4,創建 autotest 任務, 用戶test(只有構建權限)用戶登錄進去,發現只能看到autotest任務,實現不同用戶不同視圖及不同權限

         

       

       

      四、ssh密鑰

      1、檢查是否已存在SSH密鑰對

      服務器可以通過ssh來通信和連接,linux一般默認已安裝了ssh服務,windows一般未安裝,建議安裝OpenSSH

      1)、在Windows, Linux, macOS系統下,進入用戶home目錄(windows為C:\Users\當前用戶名)
      2)、進入.ssh/子目錄(windows為C:\Users\當前用戶名\.ssh),
      3)、若不存在則需按照下文步驟生成SSH密鑰對,
      若存在以下文件,則表明已經生成過:

      AlgorithmPublic keyPrivate key
      ED25519 (preferred) id_ed25519.pub id_ed25519
      RSA (at least 2048-bit key size) id_rsa.pub id_rsa
      DSA (deprecated) id_dsa.pub id_dsa
      ECDSA id_ecdsa.pub id_ecdsa

      2、生成SSH密鑰對

      1)、打開windows CMD
      2)、執行ssh-keygen命令,comment可以是郵箱賬號會出現在.pub文件中
      ssh-keygen -t rsa -b 2048 -C "<comment>"

      可按提示輸入密碼(亦可直接回車跳過)生成完成后,既可在如下圖提示的目錄下查看到密鑰對文件

      在這里插入圖片描述

      3、通過SSH密鑰對實現免密登錄Linux服務器

      將公鑰拷貝到目標主機的用戶home/.ssh目錄下的authorized_keys文件中。又或者通過如下命令進行公鑰拷貝:

      # 其中可通過-p指定ssh端口(默認22)
      ssh-copy-id 用戶名@目標主機IP -p 22

      拷貝完成后即可在私鑰所在的機器上直接免密登錄綁定公鑰的機器

      ssh 用戶名@目標主機IP 

       

      五、Jenkins部署項目

      當我們每次把代碼提交到倉庫的時候,都希望Jenkins會自動部署運行,我們應該給它一個憑證以便訪問文件,即免密訪問,如果想要訪問對方主機,需要把本機機的公鑰交給它即可。

      在jenkins所在主機生成ssh密鑰,我們把公鑰給倉庫平臺gitlab、把私鑰給Jenkins。

      1、添加公鑰到gitlab用戶,用來clone代碼

      我們在Jenkins所在的主機生成秘鑰,然后查看id_rsa.pub ,把公鑰復制到倉庫就行

      1)、登錄gitlab,點擊右上角頭像 -> 下拉菜單Settings -> 左側菜單SSH Keys

      在這里插入圖片描述
      2)、將之前生成的公鑰id_rsa.pub內容粘貼到Key文本框,同時自定義title。添加完成后,即可在私鑰所在的機器上擁有該ssh公鑰綁定賬戶的操作權限(注意對應ssh gitlab庫鏈接)
      在這里插入圖片描述

      2、接下來我們要把私鑰交給Jenkins。依次點擊 憑據–系統–全局憑據–添加憑據

      我們先修改類型為SSH Username with private key,然后點擊下面的 Enter directly,把Jenkins所在主機的私鑰復制粘貼到此即可

      點擊ok之后返回查看是否添加成功

       

       

      六、jenkins操作

      1、jenkins普通任務

      1 )新建任務
      我們點擊 New Item創建一個新任務,輸入任務名。類型選擇Freestyle project,然后點擊OK

       

      我們直接選擇Source Code Management,選擇git,填寫倉庫的SSH鏈接和選擇憑證用戶,最后點save即可

       

       

       

       2)構建任務

       

      新建任務之后,點擊左邊的Build Now即可開始執行任務。我們可以在左下角看到構建歷史,還可以點擊倒三角形選擇Console Output看到具體的構建步驟

       

       

       

       

       

       

      2、jenkins觸發式任務

      1)準備一個測試腳本,開發如果提交了代碼就執行這個測試腳本。

      2)我們點擊New Item創建一個新任務,輸入任務名。類型選擇Freestyle project,然后點擊OK

      3)源碼管理選擇git,然后只需要在repository url中輸入git倉庫地址即可。

      4)構建觸發器:即gitlab有提交操作則自動部署,這里只需設置一個認證的token即可,

      gitlab調用觸發器,使用 JENKINS_URL/job/new_cms/build?token=TOKEN_NAME即可

      在系統管理–>用戶管理–>查看用戶id和token,需要把用戶id和API Token加入觸發器中,做用戶驗證

      根據觸發器驗證令牌和用戶id+token會生成一個下面的url,只需要訪問這個URL地址jenkins就會自動部署對應項目的代碼。

      http://admin:984c9edf027e750f0587808fab0c3f9b@192.168.100.10:8080/job/jenkins_trigger/build?token=hehe

      在jenkins全局安全設置中取消勾選“防止跨站點請求偽造,不然jenkins會認為gitlab的請求不合法。

      (5)普通構建,選擇execute shell,執行部署腳本即可

       

       

      (6)jenkins定時構建,定時構建一般用在安卓,ios打包,每天凌晨會拉取安卓,ios進行編譯打包,并自動推送到共享。本示例演示定時執行一個命令

       選擇Execute Windows batch command

      (6)在gitlab中配置webhooks,配置URL,每次提交代碼就訪問這個url,執行構建

      URL這里輸入上面上面用戶ID+API token+job token生成的URL地址即可。觸發工作選擇,push event,merge request event即可。

       

       

      (7)添加完成測試:點擊test模擬提交操作,看看是否會執行自動構建

      Jenkins查看,可以看到構建也是成功的。

       

       

      七、高級改造

      1) 改造二:加入直接查看報告的能力

      在本地執行時,我們是 allure 可執行文件來生成報告,那集成到 Jenkins,我們需要先安裝 allure 的插件

      在插件管理中搜索 alluer 插件進行安裝

      image.png

       

      在全局工具中配置 allure 相關

      image.png

       

      然后繼續改造 Job,在構建后的操作中添加 allure 報告的信息。

      image.png

       

      這樣之后,我們就可以在構建后,在 Jenkins 上直接查看執行后的報告了。

      這樣使用之后,感覺還是差點東西,差什么呢,因為用例很多,每次構建的時間都很長,這就導致我無法知道什么時候結束,來第一時間查看結果并反饋執行情況。所以我們還需要繼續改造,加入通知的能力。

       

      2)改造三:增加通知的能力

      在和項目組溝通后,確定了兩種方式的通知,企業微信通知郵件通知。 研究一番之后,發現,Jenkins 使用插件來實現企業微信通知,只能顯示少量的信息(如:開始時間),并不能達到我們想的顯示大致的執行結果的能力,所以這部分,我就直接使用 Python 腳本來實現了,不使用 Jenkins。 這里就不做詳細說明了,大致的思路是:解析執行生成的 xml 文件來獲取執行結果信息,然后按照企業微信機器人的方式來通知。附上一張我調試的效果圖:

      image.png

      雖然企業微信通知沒有使用 Jenkins,但是郵件的通知,Jenkins 還是很好用的,我們用 Jenkins 來進行郵件的通知發送,接著改造 job。

      在構建后的操作中添加 Editable Email Notfication,填寫發送郵件的信息。

      image.png

      這樣改造之后,我們也擁有了通知的能力。

      這時候領導又提要求了,現在想晚上使用腳本來巡檢,早上查看結果。這樣不可能每天晚上登錄 Jenkins 來構建,所以我們需要繼續改造,加入定時構建的能力。

       

      3) 改造四:增加定時構建

      在 job 的構建觸發器中選擇 Build periodically H 2 1,2,3,4,5 表示周一到周五每天凌晨 2 點左右開始構建,填寫后,可以查看到下面顯示的下次構建的時間 這樣改造之后,每天晚上就自動構建了。

      image.png

      到這里我們就擁有了 Git,查看報告,郵件通知,定時構建的能力。

      這個時候運維的小伙伴又提要求了,給我們自動化測試分配了一臺服務器,讓我們在那臺設備上測試,不想和開發發布的混在一起。

       

      4)改造五:指定節點運行

      我們需要在指定節點構建,通過 Jenkins 來調度。這樣我還需要接著改造了。

      1. 添加節點

      進入系統管理(configuer system)》管理節點(manage nodes and clouds),點擊新增節點。

      image.png

       

      注意:節點的標簽不要用中文 再配置節點屬性和工具

      image.png

       

      如果啟動方式沒有上方選擇的選項,需要到全局安全配置中勾選如圖的地方:

      image.png

       

      2. 連接節點

      新增的節點是沒有連接 Jenkins 服務的,需要啟動一個 agent 來主動連接到服務。

      image.png

      按照如下步驟來操作: 到從節點(執行機)上登錄 Jenkins,點擊剛剛添加的節點中,會如下圖顯示

      image.png

      點擊紅框標記的圖標,會下載下來一個文件

      image.png

       

      雙擊打開下載的文件,會顯示一個小窗口,自動連接(需要 jdk 環境)

      image.png

       

      連接后會添加到執行機的服務中運行,之后不用再操作。

      注意:如果連接提示失敗,可能是端口沒有開放,配置時選擇的隨機生成端口,如果連接提示端口沒有打開,將 Jenkins 所在的服務器上剛使用的端口打開即可。

      image.png

      改造 Job,配置使用執行的節點

      在一般信息中勾選限制項目的運行節點,填寫我們添加的節點的標簽。

      image.png



      posted @ 2016-11-01 03:14  liangww  閱讀(5529)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 最新国产精品拍自在线观看| 免费国产va在线观看| 亚洲www永久成人网站| 亚洲 a v无 码免 费 成 人 a v| 2021亚洲国产精品无码| 性做久久久久久久久| 人人澡人摸人人添| 成熟丰满熟妇av无码区| 九九热在线视频观看最新| 波多结野衣一区二区三区| 亚洲精品有码在线观看| 377P欧洲日本亚洲大胆| 乱人伦人妻中文字幕无码久久网| 国产精品 欧美激情 在线播放| 渑池县| 国产精品一区二区三区色| 国产av不卡一区二区| 人人妻人人爽人人澡av| 男人的天堂av社区在线| 亚洲 一区二区 在线| 欧美v国产v亚洲v日韩九九| 天堂网在线.www天堂在线资源| 麻豆一区二区三区香蕉视频| 精品熟女日韩中文十区| 欧美日韩亚洲国产| 国产成人精品亚洲一区二区| 性XXXX视频播放免费直播| 苍井空一区二区三区在线观看| 国产永久免费高清在线| 久久亚洲精品中文字幕| 国产精品久久久久aaaa| 国产伦一区二区三区久久| 久久人人97超碰国产精品| 中文字幕成人精品久久不卡| 不卡av电影在线| 国产精品一区二区三区蜜臀| 免费无码肉片在线观看| 亚洲国产精品自产在线播放| 亚洲欧美日韩精品久久亚洲区| 亚洲www永久成人网站| 阿合奇县|