jenkins + GitHub 實現項目自動化部署


服務器配置:

  • 操作系統:CentOS 7.6 64 位
  • CPU:1 核
  • 內存:2GB
  • 公網帶寬:1Mbps
 

一、安裝 Java SDK

 

1、進入根目錄,查看是否有 Java 環境

$ cd / $ java -version

有環境:

 

 

無環境:

 

 

 

2、若已經有環境,則直接去安裝 nginx,若無環境,這里我們安裝 java-1.8.0

// 檢索 `yum` 中有沒有 `java1.8` 的包 $ yum list java-1.8*

 

 

 

// 開始安裝 $ yum install java-1.8.0-openjdk* -y

 

 

 

// 查看版本 $ java -version
 

二、安裝 nginx

 

1、通過 rpm 安裝 nginx

$ rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

 

 

 

$ sudo yum install -y nginx

 

 

 

 

2、安裝完成后一些文件夾位置和操作如下

// 啟動 nginx $ nginx -c nginx.conf // 網站文件存放默認目錄 $ /usr/share/nginx/html // 網站默認站點配置 $ /etc/nginx/conf.d/default.conf // 自定義Nginx站點配置文件存放目錄 $ /etc/nginx/conf.d/ // Nginx 全局配置文件 $ /etc/nginx/nginx.conf // 重啟 nginx $ nginx -s reload // 基於 nginx 的靜態部署 $ server { $ listen 80; $ server_name _; $ root /usr/share/nginx/html; $ index Home.html; $ }
 

3、安裝完畢之后,我們需要啟動 nginx,啟動成功后,訪問服務器的 ip 地址,如下圖即成功

 

 

 

 

三、安裝及啟動 jenkins

 

1、下載安裝 jenkins

$ wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.222.3-1.1.noarch.rpm

 

 

 

$ yum -y localinstall jenkins-2.222.3-1.1.noarch.rpm

 

 

 

 

2、jenkins 主要目錄

// jenkins 安裝目錄,WAR 包會放在這里 /usr/lib/jenkins/ // jenkins 配置文件,端口,JENKINS_HOME 等都可以在這里配置 /etc/sysconfig/jenkins // 默認的 JENKINS_HOME /var/lib/jenkins/ // Jenkins 日志文件 /var/log/jenkins/jenkins.log
 

3、啟動並配置 jenkins

進入配置文件將啟動用戶修改為 root,默認是 Jenkins

$ vim /etc/sysconfig/jenkins ... JENKINS USER = "root" ...
// 啟動Jenkins $ systemct1 start jenkins
// 關閉 jenkins $ systemct1 enable jenkins

在瀏覽器輸入 http://你的ip地址:8080,進入以下界面即成功

注意:這里需要開放 8080 端口

 

 

 

 

4、根據界面提示信息去查看密碼

$ cat /var/lib/jenkins/secrets/initialAdminPassword

 

 

 

 

5、將查到的密碼粘貼到輸入框,點擊繼續

 

 

 

 

6、出現如下安裝插件的界面,選擇安裝推薦的插件,等待安裝完畢

 

 

 

 

 

 

 

7、創建第一個用戶,實例配置保持默認即可,這樣我們就可以開始使用 jenkins 了

 

 

 

 

 

 

 

 

 

 

8、出現如下界面,那么 jenkins 就安裝成功了

 

 

 

 

四、github 生成 Personal Access Token

 

1、github –> 頭像 –> Settings –> Developer settings –> Personal access tokens –> Generate new token

 

 

 

 

2、勾選如下圖所示,最后點擊 generate token 生成令牌即可。

 

 

 

 

3、注意!生成令牌之后一點要記錄下來,因為只顯示一次

 

 

 

 

五、github 設置 GitHub webhooks(具體需要持續集成的項目),新建或者設置現有項目的 webhooks 選項,url:部署的服務器的 IP + 端口 + github-webhook

 

 

 

 

六、設置 jenkins 的 github 配置

 

1、jenkins 創建一個新任務,填寫你的任務名稱,並選擇構建自由風格項目(很奇怪為什么第一條沒有漢化 -.-)

 

 

 

 

 

 

 

2、Manage Jenkins –> Configure System

 

 

 

 

3、找到 GitHub 選項 –> 添加 Github 服務器 –> GitHub Server

 

 

 

 

4、勾選 “管理 Hook”,添加 –> Jenkins

 

 

 

 

5、在彈出的窗口中,如下圖配置,這里需要用到之前生成的令牌

 

 

 

 

6、選擇生成的憑證,測試 jenkins 連接 github 服務器,如下圖所示則配置成功,記得在頁面底部保存配置。

 

 

 

 

七、設置 jenkins 的項目配置

 

1、進入該項目的配置項

 

 

 

 

2、選擇 github 項目,並填入項目 URL(復制你瀏覽器上的地址即可)

 

 

 

 

3、在 源碼管理下選擇 git,並輸入 Repository URL(克隆下載你項目的地址)

 

 

 

 

4、出現上圖中的錯誤,是我們沒有安裝 git 的原因。

// 監測是否安裝了 git $ rpm -qa | grep git // 安裝 git $ yum install git -y

 

 

 

 

 

 

 

5、重新刷新 jenkins 頁面,重新填入 url,可以看到錯誤已經消失。

接着我們選擇 Credentials,若下拉選項中有,則直接選擇即可。

 

 

若沒有,點擊添加 –> jenkins,添加一個 Username with passwrod 類型的權限用戶,直接用 github 的登陸名稱和密碼創建。

 

 

添加完之后會出現下拉選項,最終配置如下圖所示。

 

 

 

6、構建觸發器 + 構建環境 + 綁定配置

點擊新增並選擇 secret text 選項,在新出現的選項中選擇添加的權限用戶

 

 

 

 

 

 

7、構建配置,添加執行 shell

 

 

 

既然可以執行 shell 命令,我們先來執行 pwd,看下默認的工作目錄是在哪里。

 

 

保存后,我們點擊立即構建,就會在 build history 下面看到本次構建的 ID(藍色即構建成功,紅色即失敗)

 

 

點擊構建 ID 右邊的小三角,選擇控制台輸出。

 

 

可以看到 jenkins 的默認工作目錄在 /var/lib/jenkins/workspace/ceshi

 

 

 

8、編寫 shell 命令。

不同的前端所用的技術框架是不一樣的,所以這里需要根據你自己的項目來進行配置。
這里我以打包一個簡單的 h5 頁面為例,構建打包代碼文件並解壓到 nginx 的指定目錄,命令如下:

// 當前目錄 $ pwd // 壓縮所有文件 $ tar -zcvf ceshi.tar.gz * // 將打包的壓縮文件解壓到 nginx 映射目錄 $ tar -zxvf /var/lib/jenkins/workspace/ceshi/ceshi.tar.gz -C /usr/share/nginx/html $ cd /var/lib/jenkins/workspace/ceshi // 刪除項目打包后的殘留 $ rm -f *

 

 

 

 

八、測試配置結果

還記得我們之前配置 nginx 成功后的頁面嗎,就是下面這個,現在我們隨便寫一個頁面來替換掉他。

 

 

將改動的代碼提交到 master 分支,可以看到 Jenkins 會自動構建並新增一條構建記錄,然后我們訪問你的服務器 IP,可以看到頁面已經改變

 

 

 

 


免責聲明!

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



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