從零開始搭建JENKINS+GITHUB持續集成環境【多圖】

POST這篇文章是講解從無到有的JENKINS+GITHUB持續集成環境的搭建。JENKINS和其餘平臺的結合搭建,好比碼雲啥的配合,操做過程大同小異。下面,咱們STEP BY STEP地講解一下,若有不合理的地方,還請指出☞html

購買一個服務器

爲何要購買服務器呢?java

由於若是你本地搭建jenkins環境以後,跟github聯通不了--須要ip來設置githubwebhooks的。固然,有什麼其餘操做能夠聯通github的,還望指出:)linux

注意:若是你在本地運行jenkins,那麼你的webhooks多是https://localhost:8080/github-webhook/,這不會起做用的,由於webhooks只在網絡中起做用。你能夠參考文章Adding a GitHub Webhook in Your Jenkins Pipeline來了解一下。git

這裏,我購買了阿里雲的低配服務器,操做系統是centos7。購買好服務器以後,我簡單經過NGINX來代理,展現一個簡單的靜態頁面。固然,這裏並非咱們的重點,因此就不展開來講了。github

須要注意的是,你要配置安全組,才能看到靜態的站點。我本身配置如圖:web

在上傳資源以後,這時你打開阿里雲上相關的ip地址,若是你沒有看到指望的頁面,請檢查一下安全組的設置。vim

準備一款終端

爲何要準備呢?centos

咱們不可能老是登陸本身的阿里雲帳號,而後切換到本身的服務器那裏鏈接它,而後再屁顛屁顛地操做程序吧~api

若是你喜歡,那你就保留那種操做習慣吧。只能說你時間真多~瀏覽器

這裏,本身在mac prodell電腦上都安裝了SecureCRT【一款支持SSH(SSH1和SSH2)的終端仿真程序】,遠程控制本身的服務器。我以爲挺好用的,喜歡!❤

搭建JENKINS環境

服務器和遠程控制的仿真程序都已經準備完成了,接下來,咱們在服務器上面搭建所需的環境。

安裝java環境

先在服務器上安裝java環境,可參考這篇文章操做。安裝好java sdk後,配置好環境。

以後,你能夠經過java -version等命令查看或驗證,下面是本身服務器上java的安裝信息和相關路徑的設置:

一、路徑/usr/lib/java是本機下載好jdk-8u231-linux-x64.tar.gz壓縮文件上傳到服務器的存放文件路徑,解壓後能夠將其壓縮包刪除。

二、/usr/java/java8是本身在服務器上解壓文件路徑。

安裝jenkins

按照下面的命令行進行操做:

$ yum install yum-fastestmirror -y  #安裝自動選擇最快源的插件
#添加Jenkins源:
$ sudo wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo
$ sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
$ yum install jenkins               #安裝jenkins
複製代碼

安裝完畢後,你就能夠啓動jenkins了:

sudo service jenkins start
複製代碼

固然,啓動以後,它可能出現下面的問題:

圖上代表是你java的引入路徑有問題了~

上圖意思是:啓動程序找不到java

那麼,你須要執行vim /etc/init.d/jenkins命令進入文件,修改其路徑就好了,以下:

備註:linux 使用find .|xargs grep -ri "要查找的字符串"命令查找包含某字符串的文件

順利啓動後,控制檯有個success的提醒。這時,你在瀏覽器上輸入http://your server ip:8080就能夠打開了,呈現信息以下圖。jenkins的默認端口號是8080,固然,你能夠執行vim /etc/sysconfig/jenkins進入文件修改端口號等。

同上,若是網頁不能打開,請查看下本身在阿里雲那裏有沒有設置好安全組了~

嗯,接下來就是一步步解鎖Jenkins了。

Jenkins的使用

咱們能在本身的服務上面成功安裝並運行了jenkins,下面咱們來升級打怪,使用下jenkins

解鎖

根據提示,咱們執行cat /var/lib/jenkins/secrets/initialAdminPassword命令獲得Administrator password,而後點擊繼續按鈕,往下走。

咱們選擇安裝推薦的插件,等待安裝完畢。若是有安裝失敗的插件能夠跳過,以後能夠根據需求安裝。【安裝過程請保持網絡的順暢】

初始化帳號和密碼

你能夠建立本身的管理員用戶信息,固然也能夠點擊使用admin帳號繼續連接跳過。

設置完成以後,進入界面:

關聯 github

咱們的目的是要將github和jenkins結合起來,進行自動化發佈。如今來關聯下github。以我本身的github帳號爲例,進行配置。

生成 secret text

secret textgithub上被稱爲token

進入github --> Settings --> Developer settings --> Personal access tokens -> Generate new token

以後生成一個新的token:

填寫好toke的名稱,勾選完上面的兩個選項,以後按Generate token按鈕進行確認:

本身先保存此token,若是丟失,以後再也沒法找到這個token了。

設置 github webhooks

接着,選擇本身的一個github項目,這裏我拿本身的博客倉庫https://github.com/reng99/blogs做爲例子:

進入github上指定的項目 --> Settings --> Webhooks --> Add Webhook --> 輸入剛剛部署jenkins的服務器的IP

Payload URL的內容就是http://your ip:8080/github-webhook/

jenkins的github配置

正確安裝以後,接着,咱們來配置Github Plugin,若是你還沒安裝github plugin,那就進入系統管理 --> 插件管理 --> 可選插件進行安裝。(新版本的Jenkins)中已經幫你作了這一步。

這裏默認已經安裝了github plugin,下面來配置~

配置GitHub Plugin

系統管理 --> 系統設置 --> GitHub --> 添加Github服務器

以下圖所示:

API URL 輸入 https://api.github.com,憑證Credentials點擊添加,類型選擇Secret Text,具體以下圖所示:

點擊添加按鈕後,下拉選擇憑證,選擇你新增的那個憑證,而後點擊鏈接測試按鈕,提示Credentials verified for user xxx, rate limit: xxx信息,則代表有效。

建立一個freestyle任務

進入主頁 --> 新建任務

General設置

填寫GitHub project URL,也就是你的主頁https://github.com/your_name/your_repo_name,我這裏使用個人博客倉庫進行嘗試https://github.com/reng99/blogs

配置源碼管理

勾選Git選項以後,就會出現相關的填寫項,根據下圖的指引來填寫就好了~

  1. 填寫項目的git地址, eg: https://github.com/your_name/your_repo_name.git
  2. 添加github用戶和密碼(要是一個有寫權限的github帳號,此步驟見下圖)
  3. 選擇githubweb源碼庫瀏覽器,並填上你的項目URL,這樣每次構建都會生成對應的changes,可直接鏈到github上看變動詳情

點擊添加增長Credentials

構建觸發器

勾選GitHub hook trigger for GITScm polling便可~

構建環境配置

勾選Use secret test(s) or file(s)便可~

設置綁定

選擇綁定 --> 點擊新增按鈕 --> 選擇Secret text --> 下拉選擇你以前設置的secret token --> 以後應用

設置構建

我這裏基本沒怎麼操做,你能夠根據本身的需求來編寫構建的腳本了。

構建後操做

你能夠根據需求更改構建後的操做,我這裏都默認。

驗證構建

上面的工做都完成以後,修改下個人blogs倉庫的代碼,提交後,刷新下本身的jenkins地址,出現下面的現象說明成功了~(ps: 第一次構建的時候比較耗時,請耐心等待,時不時刷新下頁面了)

錯誤處理

在進行集成的過程當中,你可能會遇到下面的這些問題~

從新安插插件

在進行初始化的時候,一些插件咱們可能會安裝失敗。不過,不要在乎,你能夠進來以後再針對須要的插件進行安裝。

安裝成功以後,進入/restart/路徑對jenkins重啓。

再次進入就正常了,美滋滋~

git command錯誤

進入服務器查看是否安裝了git

# git version
複製代碼

沒有git,此時須要安裝git。

# yum install git
複製代碼

構建觸發器找不到github選項

在構建觸發器的時候,找不到選項Build when a change is pushed to Github

那是由於新版的jenkins將其修改成GitHub hook trigger for GITScm polling了。

後話

相關文章
相關標籤/搜索