持續集成概述及運行流程 :java
持續集成概述 :持續集成(Continuous integration)持續集成是指開發者在代碼的開發過程當中 ,能夠頻繁的將代碼部署集成到主幹,並進行自動化測試 開發→代碼編譯→測試linux
持續交付:持續交付指的是在持續集成的環境基礎之上,將代碼部署到預生產環境git
持續部署:在持續交付的基礎上,把部署到生產環境的過程自動化web
Jenkins概述 :是一個開源軟件項目,是基於 Java開發的一種持續集成工具,用於監控持續重複的工做,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能vim
網方網站 :https://jenkins.io/ bash
搭建Jenkins實現持續集成session
Jenkins是Java編寫的,因此須要先安裝 JDK ,若是對版本有需求,能夠直接在Oracle官網下載JDKoracle
http://www.oracle.com/technetwork/java/javase/downloads/工具
[root@git ~]# tar xf jdk-8u181-linux-x64.tar.gz -C /usr/local/
[root@git ~]# mv /usr/local/jdk1.8.0_181 /usr/local/java [root@git ~]# vim /etc/profile # 在末尾添加 JAVA_HOME=/usr/local/java/ JAVA_BIN=/usr/local/java/bin JRE_HOME=/usr/local/java/jre PATH=$PATH:/usr/local/java/bin:/usr/local/java/jre/bin CLASSPATH=/usr/local/java/lib:/usr/local/java/jre/lib/charsets/jar [root@git ~]# source /etc/profile [root@git ~]# java -version java version "1.8.0_181" Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
添加yum源 下載安裝Jenkinsgitlab
[root@git ~]# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat/jenkins.repo [root@git ~]# rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key [root@git ~]# yum -y install jenkins
新版GitLab的服務端口爲8080,爲了避免和GitLab的服務端口相沖突,修改Jenkins的默認端口8080爲329
[root@git ~]# vim /etc/sysconfig/jenkins
# 修改25行 用戶爲root
JENKINS_USER="root" # 修改56行 端口329
啓動Jenkins
[root@git ~]# systemctl start jenkins
Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details. [root@git ~]# systemctl status jenkins ● jenkins.service - LSB: Jenkins Automation Server Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled) Active: failed (Result: exit-code) since 一 2018-08-27 14:38:33 CST; 16s ago Docs: man:systemd-sysv-generator(8) Process: 20100 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=1/FAILURE) 8月 27 14:38:33 git systemd[1]: Starting LSB: Jenkins Automation Server... 8月 27 14:38:33 git runuser[20105]: pam_unix(runuser:session): session opened for user...=0) 8月 27 14:38:33 git jenkins[20100]: Starting Jenkins bash: /usr/bin/java: 沒有那個文件或目錄 8月 27 14:38:33 git runuser[20105]: pam_unix(runuser:session): session closed for user root 8月 27 14:38:33 git jenkins[20100]: [失敗] 8月 27 14:38:33 git systemd[1]: jenkins.service: control process exited, code=exited s...s=1 8月 27 14:38:33 git systemd[1]: Failed to start LSB: Jenkins Automation Server. 8月 27 14:38:33 git systemd[1]: Unit jenkins.service entered failed state. 8月 27 14:38:33 git systemd[1]: jenkins.service failed. Hint: Some lines were ellipsized, use -l to show in full. [root@git ~]# which java /usr/local/java/bin/java [root@git ~]# ln -s /usr/local/java/bin/* /usr/bin/ [root@git ~]# systemctl start jenkins
訪問IP:329
解鎖Jenkins
[root@git ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
cabc15df63c04d1c81377650f117d69c
選擇默認便可,會安裝通用的社區插件,剩下的能夠在使用的時候再進行安裝
若是在下線安裝揑件失敗了,或是無網環境下想安裝插件,能夠選擇手勱安裝
插件下載地址 :http://updates.jenkins-ci.org/download/plugins/ # 在有網的環境下,把本身須要的插件下載好,而後再從本地上傳 , 上傳完插件得重啓jenkins,不重啓插件不生效
配置郵件通知
系統管理→管理插件→可選插件 安裝兩個插件 gitlab-plugin和gitlab hook-plugin 若是找不到 , 安裝gitlab gitlab hook便可
要是找不到能夠在插件地址下載而後在上傳件
在url裏面添加咱們的gitlab項目地址 git@192.168.94.11:damowang/damowang.cn-web.git
添加一個認證
咱們須要在gitlab添加一個公鑰 jenkins添加一個私鑰
以前Gitlab已經生成過密鑰對了, 直接把私鑰給Jenkins就能夠了
接下來就能夠構建了
查看jenkins目錄下有沒有文件構建成功
看看拉取的代碼與git上的是否一致
剩下的就是把Nginx或者Apache指向這個網站根目錄 , 這裏就再也不敘述了
查看控制檯輸出