Jenkins 部署

Jenkinsjava

1.   簡介

Jenkins是一個開源軟件項目。在企業的軟件構建過程當中,JAVA的應用工程稍顯複雜,因爲複雜構建、和代碼上線、而且服務的重啓。整個過程下來,消耗的時間較多,Jenkins卻能很好的集成maven的編譯方式,且利用自動化的插件、和自定義開發腳本的支持,因此目前普遍的應用於JAVA工程的持續集成平臺。linux

Jenkins is an automation engine with an unparalleled plugin ecosystem to support all of your favorite tools in your delivery pipelines, whether your goal is continuous integration, automated testing, or continuous delivery.web

  •  什麼是集成正則表達式

    指的是代碼由編譯、發佈和測試、直到上線的一個過程apache

  • 什麼持續集成vim

    高效的、持續性質的不斷迭代代碼的集成工做瀏覽器

  • 如何高效準確的實現持續集成tomcat

    必不可少的須要一套能自動化、而且可視化的平臺來幫助咱們。安全

    那麼總結來看,Jenkins就是一個能夠幫助咱們實現持續集成的平臺。服務器

 

Jenkins的缺點:

Jenkins是開發人員開發得,沒有照顧到運維人員得感覺。CMDB得對接是Jenkins得短板。


1.1.  名稱解釋

  • 持續集成 Continuous integration簡稱CI

  • 持續交付(Continuous delivery

  • 持續部署(continuous deployment

1.2.  Jenkins目的

  • 持續、自動地構建/測試軟件項目。

  • 監控軟件開放流程,快速問題定位及處理,提示開放效率。

1.3.  持續集成組件

  • 一個自動構建過程,包括自動編譯、分發、部署和測試

  • 一個代碼存儲庫,即須要版本控制軟件來保障代碼的可維護性,同時做爲構建過程的素材庫,例如:SVNGit代碼庫

  •  一個jenkins持續集成服務器就是一個配置簡單和使用方便的持續集成服務

1.4.  持續集成的意義

  • 持續集成中的任何一個環節都是自動化完成的,無需太多的人工干預,有利於減小重複的操做過程,能夠節省時間、費用和工做量。

  • 持續集成保障了每一個時間點上團隊成員提交的代碼是能成功集成的。任什麼時候間點都能第一時間發現軟件的集成問題,使任意時間發佈可部署的軟件成爲了可能。

  • 持續集成還能利於軟件自己的發展趨勢,這點在需求不明確或是頻繁性變動的情景中尤爲重要,持續集成的質量能幫助團隊進行有效決策,同時創建團隊對開發產品的信心。

  • 對開發人員:寫好代碼,不須要本身進行源碼編譯、打包等工做,直接將代碼分支存放在SVNGit倉庫便可。

  • 對運維人員:減輕人工干預的錯誤率,同時解放運維人員繁雜的上傳代碼、手動備份、更新。

  • 對測試人員:能夠經過jenkins進行簡單的代碼及網站測試。

1.5.  產品發佈流程

產品設計成型 -> 開發人員開發代碼 -> 測試人員測試功能 -> 運維人員發佈上線

Ø  傳統上線流程:

11.png

 

Ø  自動化上線流程:

111.png

Ø  Jenkins上線流程:

11111.png

1.1.  硬件要求

  • 標準配置:

        CPU      8核心2.0GHz

        內存:     16GB

        硬盤:     100GB

        網卡:     2*1000Mbps

  • 最低配置:

        CPU      4核心2.0GHz

        內存:     4GB

        硬盤:     50GB

        網卡:     100Mbps

1.2.  系統要求

        Linux

        CentOS 6.9

         CentOS 7.4

        JDK

        JDK 1.8

1.3.  網絡要求

準備一個塊網卡支持千兆



2.   Jenkins 安裝

2.1.  準備環境

  • 下載JdktomcatJenkinsmaven

  •  安裝Jdk

                # tar -xf jdk-8u181-linux-x64.tar.gz –C /usr/local/

                # vim /etc/profile

                export JAVA_HOME=/usr/local/java/jdk1.8.0_181

                export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/tools.jar

                export PATH=$JAVA_HOME/bin:$PATH

                # source /etc/profie

                測試一下

                # java -version

  • 安裝tomcat

                # tar -xf apache-tomcat-7.0.90.tar.gz -C /opt

  • 安裝maven

                # tar zxvf apache-maven-3.5.4-bin.tar.gz

                # vim /etc/profile

                export M2_HOME=/usr/local/apache-maven-3.5.4

                export PATH=$M2_HOME/bin:$PATH

                # source /etc/profie

                測試一下

                # mvn -v

2.2.  安裝Jenkins

  • 方法1WAR 直接啓動war

                wget http://mirrors.shu.edu.cn/jenkins/war-stable/2.121.3/jenkins.war

                java -jar jenkins.war --httpPort=8088

tomcat+WAR

                cp jenkins.war /usr/local/apache-tomcat-7.0.90/webapps/ROOT

                /usr/local/apache-tomcat-7.0.90/bin/startup.sh

 

  • 方法2RPMyum安裝 【不推薦yum安裝】

                wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat-stable/jenkins.repo

                yum –y install Jenkins

                service jenkins startsystemctl start jenkins

RPMrpm安裝

                # rpm -ivh jenkins-2.32.3-1.1.noarch.rpm

                # 下載地址:【選擇redhat-stable穩定版】

                # 官方下載地址:https://pkg.jenkins.io/redhat-stable/

                # 國內下載地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/


若是是公司使用選擇(LTS) stable穩定版。

若是是我的使用能夠選擇最新版


2.3.  安裝插件

說明:

安裝Maven程序是爲了編譯代碼打包代碼,調用方法是Jenkins經過Maven插件調用Maven服務。因此想使用相關服務除了本地部署服務外,還須要在jenkins上安裝插件。


  • 安裝必備插件

    2222.png

  • 安裝可選插件

Maven Integration plugin

Subversion Plug-in

image.png

2.4.  配置Jenkins

  • jdk/maven

瀏覽器登陸Jenkins,進入系統管理」 -> 「Global Tool Configuration」,配置jdkmaven後保存:

    image.png

    image.png

2.5.  服務啓動

  • 執行java -jar jenkins.war --httpPort=8099

  • 執行systemctl start jenkins

3.   Jenkins自動構建

  • 建立一個maven項目

image.png


  • 新建的任務頁面,點擊當即構建

image.png

image.png


        丟棄舊的構建:

        保持構建的天數 【超過必定天數就刪除】

        保持構建的最大個數 【超過必定數量就刪除】

        填寫svn信息

   image.png

   填寫maven參數

   image.png


4.   Jenkins自動部署

        1)配置tomcat服務器基線

        2tomcat版本路徑統一

        3jdk版本路徑統一

        4)項目名與端口號統一

   image.png


5.   Jenkins權限管理

在工做的過程當中因爲分工合做,由於工做內容的不一樣可能分爲不一樣的組織裏,可是jenkins默認的權限管理並無用戶組的概念,因此咱們須要第三方插件的支持來解決問題。

注意:切換不一樣管理權限的方式 這個插件會導至之前配置好的權限丟失,因此能夠用備份來彌補。


jenkins權限管理,實現不一樣用戶組顯示對應視圖views中不一樣的jobs

  • 安裝Role Strategy Plugin插件

image.png

image.png

        

        注意:

        1job_read只加OverallRead權限

        2job_create只加jobcreate權限

        3project rolesPattern正則表達式跟腳本里的不同,好比過濾TEST開頭的jobs,要寫成TEST.*而不是TEST*

         

        按環境或項目將權限分組,再將用戶劃分到對應的權限便可。以下圖所示

    image.png

   

  • 設置全局角色(全局角色能夠對jenkins系統進行設置與項目的操做)

image.png


  • 設置項目角色(項目角色只能對項目進行操做)

image.png

  開發人員只能看到所屬本身的項目

    image.png

  

  管理員能夠看到所有項目信息

    image.png

  

6.   jenkins常見問題

        問題1jenkins 配置安全策略admin沒有Overall/Read權限

        解決方案:

        命令:vim /root/.jenkins/config.xml

   image.png

        <permission>hudson.model.Hudson.Administer:anonymous</permission>

        <permission>hudson.model.Hudson.ConfigureUpdateCenter:anonymous</permission>

        <permission>hudson.model.Hudson.Read:anonymous</permission>

        <permission>hudson.model.Hudson.RunScripts:anonymous</permission>

        <permission>hudson.model.Hudson.UploadPlugins:anonymous</permission>

        重啓jenkins服務

         

        問題2admin密碼更改後忘記

        解決方案:

        刪除Jenkins目錄下config.xml文件中下面代碼,並保存文件。

    image.png

相關文章
相關標籤/搜索