Jenkins-gogs安裝及使用

不少同窗可能第一次瞭解什麼是ci-cd,什麼是Jenkins,首先會介紹下cicd的概念及應用場景,以後再詳細介紹下Jenkins的概念、安裝及使用。java

什麼是CI-CD?git

首先明確CI-CD是一種技術,而並非指一個軟件。web

CI:可持續集成(簡單將就是經過公用代碼倉庫將開發人員的代碼進行統一集成管理,與集中測試)shell

CD:可持續部署(將集成測試後的代碼自動部署到你須要的地方)windows

注意:這裏說的額可持續的意思不是說一直運行,而是能夠隨意執行的意思。centos

簡單瞭解完CICD,你確定在想這個技術卻是應用於什麼場景?優點是什麼?tomcat

cicd主要是將開發工做與測試工做兩個部分進行了無縫銜接,開發人員只須要將代碼提交公用倉庫,代碼就會自動進行編譯,檢測,部署到客戶端等操做。好比頻繁須要開發部署的應用程序。安全

採用CI/CD流水線後:bash

1.項目上線時間大大縮減,不只提升發佈速度及代碼質量,還能夠以增量方式連續添加新功能,是產品具備更少的缺陷。服務器

2.整個交付流水線全部階段都是對團隊公開的,全部成員均可以檢測、改進及驗證。

3.CD流水線提供開發到客戶的快速反饋循環,減小工做量。

常見的CI/CD框架:

1.開發人員將代碼經過git/svn上傳到公有倉庫(GitLab/Svn/Gogs/Github)。

2.公有倉庫經過WebHook將公有倉庫的代碼推送到Jenkins(cicd工具,下面會詳細介紹)。

3.Jenkins工具擁有將代碼構建、編譯、分析、單元測試、鏡像的功能(須要自行配置)。

4.能夠將結果存儲到鏡像管理倉庫Harbor,將服務跟新到K8s。(這裏咱們是與HKDAS進行結合)

5.最後用戶經過電腦進行訪問,就能夠看到已經部署完成的程序。

Jenkins介紹及使用:http://jenkins-ci.org/

Jenkins是一個CD/CD的軟件,容許持續集成與持續交付項目(就是集成測試與程序部署),支持分佈式,最主要是開源免費。

主要做用是:

1.能夠持續的自動構建/測試軟件項目

2.能夠監控開發流程、郵件報警、定位問題等

發佈流程:

產品設計-->開發者提交代碼-->自動測試功能-->自動上線

Jenkins的安裝:

1.官網下載一個jenkins.war包(推薦使用war是使用比較方便)

2.Centos(也支持windows,這裏以Linux爲主)中直接運行 Java -Jar Jenkins.war 能夠直接啓動

3.啓動完成後直接訪問ip:8080進入web界面,能夠在啓動時指定端口

4.第一次運行登錄web界面須要進行解密,在服務器中輸入 cat /root/.jenkins/secrets/initialAdminPassword 查看密碼

5.配置管理員帳號,用以以後的管理

------------------------------------------------------------------------------------------------------------------

jenkins開機自啓腳本

#!/bin/bash

###主要目的用於開機啓動服務,否則 啓動jenkins.war包沒有java -jar的權限

JAVA_HOME=/usr/local/jdk1.8

#pid用於判斷jenkins是否已經啓動

pid=`ps -ef | grep jenkins.war | grep -v 'grep'| awk '{print $2}'| wc -l`

  if [ "$1" = "start" ];then

  if [ $pid -gt 0 ];then

  echo 'jenkins is running...'

else

  ### java啓動服務 配置java安裝根路徑,和啓動war包存的根路徑配置端口

  nohup $JAVA_HOME/bin/java -jar /usr/local/jenkins/jenkins.war --httpPort=8081  2>&1 &

  fi

  elif [ "$1" = "stop" ];then

  exec ps -ef | grep jenkins | grep -v grep | awk '{print $2}'| xargs kill -9

  echo 'jenkins is stop..'

else

  echo "Please input like this:"./jenkins.sh start" or "./jenkins stop""

  fi

-------------------------------------------------------------------------------------------------------------------

Jenkins與gogs集成:

Jenkins+gogs(也是一種代碼倉庫,想了解能夠自行百度):

1.插件條件:gogs集成須要安裝gogs插件(在插件管理中的直接搜索gogs直接安裝),安裝插件後配置全局工具配置(jdk,maven,git)。

2.安全條件:配置密鑰(創建Jenkins與gogs的鏈接)

查看centos下.ssh/.pub的公鑰複製到gogs中(生成公鑰的方式略,百度上不少),將其添加到gogs的密鑰配置中。

3.新建maven(這裏以maven項目爲主)工程,對項目簡單配置,在源碼管理選擇git(由於gogs支持git工具)管理,輸入gogs中的url鏈接(須要配置第2步的密鑰,不然報錯)

通常配置頁面:保留最大構建數

代碼管理配置頁面:配置與gogs的關聯

4.構建測試,看是否拉取到了代碼,也能夠查看 /root/.jenkins/workspace下是否有項目war(這裏包的方式是你maven中配置的打包方式 clean package )。

登錄gogs倉庫進入倉庫設置:

5.推送工程(自動同步):gogs進入倉庫中設置web鉤子,將新增的數據經過訂閱的方式傳輸到Jenkins(能夠自定義推送的觸發條件)。

推送地址爲:http(s)://<你的Jenkins地址>/gogs-webhook/?job=<你的Jenkins任務名>

也能夠經過Token_name配置鉤子,http://username:password@ip:port/

同時Jenkins須要在構建觸發器中選中Build when a change is pushed to Gogs的選擇(當gogs中代碼改變會從新構建)。

gogs倉庫web鉤子配置:

Jenkins構建觸發器配置:

構建:也就是打包(這裏是maven打包)

參考文章:https://blog.csdn.net/gongxsh00/article/details/80861214

6.接下來使用Deploy to container Plugin 插件(沒有須要安裝)來管理war包自動部署到Tomcat中。須要配置build(配置打包goals:clean package -Dmaven.test.skip=ture)與構建後操做(配置war包地址與Tomcat地址與訪問權限,注意須要先去配置Tomcat,在構建是tomcat須要開啓)。

構建後操做:(也就是打包後的操做)

6.1 若是須要使用jar包部署,可使用shell腳本的方式。

7.構建後存檔及郵件告警

遇到的問題:

1.安裝其餘插件重啓Jenkins後,又出現了部分中文簡體不翻譯的狀況。

嘗試一下方法,能夠完美修復。

1. 將語言設定爲zh_US,Jenkins切換爲英文。

2. 調用restart重啓Jenkins:http://域名/restart。

3. 再次語言設定爲zh_CN,刷新便可。

 

2.Tomcat在centos7中啓動很慢?

yum install rng-tools # 安裝rngd服務(熵服務,增大熵池) systemctl start rngd  # 啓動服務

Tomcat修改端口?在conf/server.xml中修改

相關文章
相關標籤/搜索