5分鍾快速掌握Jenkins,項目一鍵自動部署


5分鍾快速掌握Jenkins,項目一鍵自動部署

 

 

 

目錄

  • 前言

  • Jenkins是什么?

  • Jenkins環境安裝搭建

  • Jenkins基本使用介紹

  • Jenkins快速構建項目,項目自動化部署

  • 學習總結

 

前言

在開發過程當中,部署項目也算是基本操作了,部署方式多種多樣,花費的時間也是不盡相同。項目部署大致需要以下幾步:編譯,打包,上傳,kill已有進程,啟動項目。單一架構,常規部署方式,熟練的話估摸着也需要3分鍾左右;如果項目包比較大,上傳替換,可能需要5-10分鍾左右。如果項目改動頻繁,一天花費在部署上面的時間也挺長的,而且操作反復;遇到分布式項目,那就更加難搞了,每個服務都需要單獨部署,這樣下來,部署花費的時間就太長了,反復操作也讓人頭疼。有別的方式嗎?答案肯定是有的,本期學習的jenkins就是一款項目部署神器,集合界面化操作,簡單的配置,完整的跟蹤,項目監控,自動部署等一系列功能於一身,簡直是程序員的福音呀。

Jenkins是什么?

是什么?

言歸正傳,讓我們來看看Jenkins是什么?Jenkins口號:“構建偉大,無所不能”, 可以說是很豪邁的口號了,LOGO是一位紳士,真是簡單明了!代表構建功能超級強大,部署代碼非常優雅。Jenkins是一款開源的CI&CD軟件,用於自動化各種任務,包括構建,測試和部署的軟件,支持各種運行方式:可通過系統包、Docker或者通過一個獨立的Java程序。

什么是CI&CD?

  • CI: 表示持續集成(continuous integration) ,在CI的環境中,開發者會頻繁的向主干提交代碼,這些代碼在合並到主干之前,需要進行代碼的編譯,驗證,確保沒問題了才能進行合並。否則將會導致不可避免的錯誤發生。

  • CD:表示持續部署(continuous deploy) , 在CD的環境當中,通過自動化的構建,測試和部署,循環迭代快速交付高質量的產品。持續部署,可以加速和客戶的溝通與反饋,快速幫助產品成長。

有什么特點?

  • 完全開源免費,開源真是世界的福音

  • master/slave 支持分布式構建

  • 提供web可視化操作界面

  • 安裝&配置非常簡單

  • 文檔詳細,反饋及時

  • 插件豐富,功能強大

 

Jenkins環境安裝搭建

jenkins的搭建其實非常簡單,但是他需要依賴一些環境,比如docker ,jdk。docker可以集成海量工具鏡像,比如maven,node等等

以下示例,服務器版本CentOS7。已經安裝好docker,jdk的,可以直接跳過哦

安裝JDK

  1. 查看服務器是否安裝過jdk

# 輸入以下命令無jdk版本信息,則未安裝過
$ java -version
  1. yum安裝jdk

$ yum install java-1.8.0-openjdk-devel.x86_64

 

  1. 配置系統全局變量

$ vim /etc/profile
​
# 將下面信息復制到文件末尾,然后保存文件
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el6_9.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
  1. source全局變量

$ source /etc/profile

 

  1. 驗證是否安裝成功

# 輸入以下命令,有Jdk版本信息即表示成功!
$ java -version
​
[root@iZ2ze0lvzs716zri63oxcmZ ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

安裝docker

docker要求, CentOS內核版本大於3.1

查看內核
$ uname -r
[root@iZ2ze0lvzs716zri63oxcmZ ~]# uname -r
3.10.0-514.26.2.el7.x86_64
使用最新yum源
# 如果很久沒更新,可能需要更新2分鍾左右,網速帶寬稍有影響
$ yum update
安裝需要的軟件包
$ yum install -y yum-utils device-mapper-persistent-data lvm2
設置添加docker鏡像
$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安裝最新穩定版
$ yum install docker-ce
啟動&開機啟動
# 啟動
$ systemctl start docker
# 開機啟動
$ systemctl enable docker

 

驗證(有client和service兩部分表示docker安裝啟動都成功了)
$ docker verison
[root@iZ2ze0lvzs716zri63oxcmZ ~]# docker version
Client: Docker Engine - Community
 Version:           19.03.8
 API version:       1.40
 Go version:        go1.12.17
 Git commit:        afacb8b
 Built:             Wed Mar 11 01:27:04 2020
 OS/Arch:           linux/amd64
 Experimental:      false
​
Server: Docker Engine - Community
 Engine:
  Version:          19.03.8
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.17
  Git commit:       afacb8b
  Built:            Wed Mar 11 01:25:42 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

 


安裝Jenkins

現在萬事俱備,只欠東風了

# 打開終端進入到下載目錄.

# 運行命令
$ java -jar jenkins.war --httpPort=8080.
# 啟動成功后會打印以下信息

*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
# 注意復制這個
c0ae33e909df4094bb15ae15ae20ca83

This may also be found at: /root/.jenkins/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************


# 打開瀏覽器進入鏈接 http://服務器ip:8080. 大概需要等幾分鍾,等它初始化
輸入復制的密鑰
# 按照說明完成安裝.

按照推薦向導就可以啦,太太太太簡單了!

 

 

 

Jenkins基本使用與介紹

一些准備工作

  • 硬件要求:

    • 256MB以上運行內存,官方建議最好大於512MB。

    • 10GB硬盤空間,主要用戶Jenkins和Docker鏡像

  • 基礎環境

    • Java 8,安裝jdk或者jre都可以

    • Docker 安裝docker

  • 下載&安裝

創建一個Pipeline(流水線)

什么是Jenkins Pipeline?Pipeline是一套插件,可以將上面說的持續交付和持續集成應用到Jenkins中。簡單來說就是提供一套插件,用於簡單到復雜的交付流程實現。Jenkins Pipeline的定義通常在一個文件中,這個文件我們稱之為Jenkinsfile,文件可以放在項目源代碼庫里。

 

Pipeline可以定義多種語言,我們以Java為例

Jenkinsfile (Declarative Pipeline)
pipeline {
    agent { docker 'maven:3.3.3' }
    stages {
        stage('build') {
            steps {
                sh 'mvn --version'
            }
        }
    }
}

 

簡單解讀:
  • agent : 代表使用哪個環境執行

  • stages:階段集合,可以有多個stage,即可以有多個構建階段

  • stage:階段,常見有編譯,打包,運行等

  • steps:階段中需要執行的步驟,步驟可以有多個。

  • sh: 代表執行shell命令,一個sh代表執行一個步驟 若是windows環境,使用bat

定義流水線的幾種方式

  • 通過Blue Ocean,在Blue Ocean中設計一個流水線項目,它會自動幫你編寫流水線的Jenkinsfile並提交到源代碼管理系統

  • 通過經典UI,經典UI中在Jenkins中直接輸入基本的流水線

  • 自己編寫Jenkinsfile,然后提交到源代碼管理倉庫中

 

簡單來說,你可以使用UI可視化界面,按照提示來創建流水線,也可以自己編寫Jenkinsfile文件。一般直接用UI交互就行啦,幾乎就是傻瓜式,填寫以下Git倉庫地址等等。有特殊的裝*要求的話,編寫Jenkinsfile秀技術的一種方式,哈哈。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM