欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用GitLab+Jenkins實現(xiàn)持續(xù)集成CI環(huán)境的示例代碼

 更新時間:2022年01月07日 10:38:14   作者:愿許浪盡天涯  
本文主要介紹了使用GitLab+Jenkins實現(xiàn)持續(xù)集成CI環(huán)境的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

一、持續(xù)集成簡介

持續(xù)集成:Continuous Integration

簡單來說就是指,程序員在開發(fā)代碼的過程中,可以頻繁的將代碼部署到主干上,并進行自動化測試。

持續(xù)交付:Continuous Delivery

簡單來說就是指在持續(xù)集成的基礎上,將代碼部署到預生產環(huán)境。

持續(xù)部署:Continuous Deoloyment

簡單來說就是指在持續(xù)交付的基礎上,將要部署的代碼實現(xiàn)自動部署,包括持續(xù)交互,持續(xù)部署。

1.GitLab 簡介

GitLab 是一個用于倉庫管理系統(tǒng)的開源項目。使用 Git 作為代碼管理工具,可以通過 Web 界面來管理 Git 倉庫。

2.Jenkins 簡介

Jenkins 是一個獨立的開源軟件項目,是基于 Java 開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復的工作,旨在提供一個開放易用的軟件平臺,使軟件的持續(xù)集成變成可能。

作用:

  • 保證團隊開發(fā)人員提交代碼的質量,還能夠減輕軟件發(fā)布時的壓力;
  • 持續(xù)集成中的任何一個環(huán)節(jié)都是自動完成的,無需太多人工干預,有利于減少重復過程以節(jié)省時間、費用和工作量。

Jenkins 特點:

  • 開源免費;
  • 跨平臺,支持所有的平臺。
  • Master/Slave 支持分布式的 build(構建)

3.GitLab 和 GitHub 的區(qū)別

相同點:

二者都是基于 Web 的 Git 倉庫,在很大程度上 GitLab 是仿照 GitHub 來做的,它們都提供了分享開源項目的平臺。

不同點:

  • GitHub 如果要使用私有倉庫,超過 4 個是需要付費的。GitLab 可以在上面創(chuàng)建私人的免費倉庫。
  • GitLab 讓開發(fā)團隊對他們的代碼倉庫擁有更多的控制。

4.持續(xù)集成系統(tǒng)的工作流程

  • 開發(fā)者將新版本代碼 push 到 GitLab 遠程倉庫上;
  • 隨后 GitLab 會觸發(fā) Jenkins 來進行拉取到本地(通過 Web Hook 或定時檢測)
  • 最后 Jenkins 會根據(jù)事先配置好的腳本進行 Build。

二、使用 GitLab + Jenkins 實現(xiàn)持續(xù)集成(CI)環(huán)境

準備工作

主機名操作系統(tǒng)硬件IP 地址
GitLabCentOS 7.44 G(聯(lián)網(wǎng)狀態(tài))192.168.1.1
JenkinsCentOS 7.44 G(聯(lián)網(wǎng)狀態(tài))192.168.1.2
ApacheCentOS 7.42 G192.168.1.3

1.安裝 Gitlab

安裝 Gitlab 所需組件

[root@GitLab ~]# yum install -y curl policycoreutils openssh-server openssh-clients postfix policycoreutils-python

開啟 Postfix 郵件服務

[root@GitLab ~]# systemctl start postfix
[root@GitLab ~]# systemctl enable postfix

安裝 Gitlab

[root@GitLab ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.0.2-ce.0.el7.x86_64.rpm
[root@GitLab ~]# ls
anaconda-ks.cfg  gitlab-ce-12.0.2-ce.0.el7.x86_64.rpm
[root@GitLab ~]# yum -y localinstall gitlab-ce-12.0.2-ce.0.el7.x86_64.rpm

配置 Gitlab 訪問地址

[root@GitLab ~]# sed -i "/^external_url/cexternal_url 'http://192.168.1.1'" /etc/gitlab/gitlab.rb

注意:你們也可以將 IP 地址替換為域名。

重置 Gitlab(時間較長)

[root@GitLab ~]# gitlab-ctl reconfigure[root@GitLab ~]# netstat -anpt | grep nginx

在這里插入圖片描述

1)登錄 Gitlab

訪問:http://192.168.1.1

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

注意:在 GitLab 中配置的中文并不是全部都是中文,你們可以安裝中文插件,我這邊使用的是谷歌瀏覽器轉換。

2)配置郵件報警

[root@GitLab ~]# vim /etc/gitlab/gitlab.rb												# 在第 57 行后添加以下內容
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = 'smtp.qq.com'											# SMTP 服務器
gitlab_rails['smtp_port'] = 465															# SMTP 服務器端口號
gitlab_rails['smtp_user_name'] = '2085077346@qq.com'									# 郵件賬號
gitlab_rails['smtp_password'] = ''				 										# 郵件授權碼
gitlab_rails['smtp_authentication'] = 'login'
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '2085077346@qq.com'

重置 Gitlab

[root@GitLab ~]# gitlab-ctl reconfigure

登錄控制臺發(fā)送測試郵件

[root@GitLab ~]# gitlab-rails console
irb(main):001:0> Notify.test_email('ChenZhuang1217@163.com','Test','Hello ZhangSan').deliver_now

在這里插入圖片描述

查看

在這里插入圖片描述

修改 GitLab 中 root 用戶的密碼

在這里插入圖片描述

3)創(chuàng)建群組

點擊創(chuàng)建群組

在這里插入圖片描述

填寫群組信息

在這里插入圖片描述

創(chuàng)建一個賬號

在這里插入圖片描述

填寫用戶信息

在這里插入圖片描述

給河北彭于晏配置密碼

在這里插入圖片描述

把新建用戶添加到群組

在這里插入圖片描述

GitLab 用戶在組中有五種權限:

  • Guest:可以創(chuàng)建問題、發(fā)表評論、不能讀寫版本庫(訪客)
  • Reporter:可以克隆代碼,不能提交(測試人員)
  • Deveoper:可以克隆代碼、開發(fā)、提交、上傳(開發(fā)人員)
  • Master:可以創(chuàng)建項目、添加
  • tag、保護分支、添加項目成員、編輯項目(運維)
  • Owner:所有事情都可以做,包括設置項目的訪問權限(老板,但老板一般都在辦公室)

4)創(chuàng)建項目

使用河北彭于晏用戶登錄創(chuàng)建

在這里插入圖片描述

創(chuàng)建項目

在這里插入圖片描述

在剛才創(chuàng)建的項目中創(chuàng)建文件

在這里插入圖片描述

在這里插入圖片描述

5)配置免密克隆

[root@GitLab ~]# ssh-keygen -t rsa														# 配置密鑰對 (三連回車即可)
[root@GitLab ~]# cat .ssh/id_rsa.pub													# 查看公鑰

將公鑰上傳到 GitLab 中

在這里插入圖片描述

驗證(克隆過程中不需要輸入密碼即可)

[root@GitLab ~]# git clone git@192.168.1.1:ZhangSan/test.git
[root@GitLab ~]# ls
anaconda-ks.cfg  gitlab-ce-12.0.2-ce.0.el7.x86_64.rpm  test
[root@GitLab ~]# cd test/
[root@GitLab test]# ls
1.html

2.安裝 Jenkins

安裝 JDK(因為 Jenkins 是使用 Java 編寫的,所以需要先安裝 JDK)

[root@Jenkins ~]# tar xf jdk-8u181-linux-x64.tar.gz
[root@Jenkins ~]# ls
anaconda-ks.cfg  jdk1.8.0_181  jdk-8u181-linux-x64.tar.gz
[root@Jenkins ~]# mv jdk1.8.0_181/ /usr/local/java
[root@Jenkins ~]# cat <<END >> /etc/profile
JAVA_HOME=/usr/local/java/
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH
END
[root@Jenkins ~]# source /etc/profile
[root@Jenkins ~]# java -version													# 查看 Java 版本
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)

安裝 Jenkins

[root@Jenkins ~]# wget https://pkg.jenkins.io/redhat-stable/jenkins-2.222.4-1.1.noarch.rpm
[root@Jenkins ~]# ls
anaconda-ks.cfg  jenkins-2.222.4-1.1.noarch.rpm
[root@Jenkins ~]# yum -y localinstall jenkins-2.222.4-1.1.noarch.rpm

修改配置文件

[root@Jenkins ~]# sed -i '/^JENKINS_USER/cJENKINS_USER="root"' /etc/sysconfig/jenkins

創(chuàng)建軟連接優(yōu)化執(zhí)行路徑

[root@Jenkins ~]# ln -s /usr/local/java/bin/java /usr/bin/

啟動 Jenkins

[root@Jenkins ~]# systemctl start jenkins
[root@Jenkins ~]# netstat -anpt | grep 8080

在這里插入圖片描述

1)登錄 Jenkins,并安裝相關插件

訪問:http://192.168.1.2:8080

在這里插入圖片描述

點擊繼續(xù)后,會出現(xiàn)推薦安裝和自定義安裝,我這里選擇的是推薦安裝

在這里插入圖片描述

2)配置 Jenkins 實現(xiàn) GitLab 更新代碼

安裝 Jenkins 插件

Credentials															# 簽名證書管理插件
Gitlab																# 安裝后從 GitLab 獲取代碼
Git	和 Git Client													# 用于 Jenkins 在 GitLab 中拉取源碼
GitLab Hook															# GitLab 觸發(fā) Jenkins 構建項目
Gitlab Authentication												# GitLab 和 Jenkins 認證插件
SSH Plugin															# 進程執(zhí)行 Shell 腳本
Publish Over SSH													# 用于通過 SSH 部署應用

在這里插入圖片描述

注意:當安裝好 Jenkins 插件后,插件可能會跟 Jenkins 出現(xiàn)版本差異,不用管,后面我會對 Jenkins 進行升級操作。

配置 Jenkins 免密拉取 GitLab 代碼

[root@Jenkins ~]# ssh-keygen -t rsa
[root@Jenkins ~]# cat .ssh/id_rsa.pub

將公鑰上傳到 GitLab 上

在這里插入圖片描述

將私鑰上傳到 Jenkins 上

在這里插入圖片描述

在這里插入圖片描述

Jenkins 的 root 用戶公鑰在 GitLab 上,私鑰在 Jenkins 上,目的就是為了方便 Jenkins 可以直接拉去 GitLab 上的代碼。

3)在 Jenkins 上創(chuàng)建項目

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

下載一下代碼

在這里插入圖片描述

4)將代碼發(fā)布到 Web 服務器

這邊簡單說一下大致的流程:

  • 通過我們這一系列的操作也可以看出來,首先需要在 GitLab 上創(chuàng)建(上傳)項目,然后 Jenkins 會將代碼下載到本地;
  • 最后可以使用 Jenkins 將代碼發(fā)送給指定服務器。

192.168.1.3 服務器上操作

[root@Apache ~]# yum -y install httpd
[root@Apache ~]# systemctl start httpd

在 Jenkins 上配置 SSH 免密登錄

[root@Jenkins ~]# ssh-copy-id root@192.168.1.3

創(chuàng)建自動上傳 Web 代碼的腳本

[root@Jenkins ~]# cat <<END > 1.sh
#!/bin/bash
scp /var/lib/jenkins/workspace/web/* root@192.168.1.3:/var/www/html/
END
[root@Jenkins ~]# chmod +x 1.sh

將腳本添加到 Jenkins 中

在這里插入圖片描述

發(fā)布項目

在這里插入圖片描述

5)驗證

在這里插入圖片描述

3.實現(xiàn) Jenkins 自動部署

1)安裝插件

Gitlab Hook Plugin
Build Authorization Token Root
Build Token Trigger

2)配置身份驗證令牌

[root@Jenkins ~]# openssl rand -hex 12
038ef13e10ef686193784383

注意:-hex 輸出結果為 16 進制數(shù)據(jù),數(shù)字 12 是指定生成的隨機字符為 12 字節(jié),即 24 個 16 進制個數(shù)。

3)在 Jenkins 上配置觸發(fā)器

在這里插入圖片描述

4)在 GitLab 的項目上配置鏈接和 Token

這里的網(wǎng)址和密鑰令牌都要和 Jenkins 上的匹配。

在這里插入圖片描述

  • 注意:當創(chuàng)建鉤子時出現(xiàn) Urlis blocked: Requests to the local network are not allowed
  • 原因是因為 GitLab 10.6 版本以后為了安全,不允許向本地網(wǎng)絡發(fā)送 WebHook 請求。

開啟請求

在這里插入圖片描述

當開啟請求后,重新創(chuàng)建 Token 值即可。

5)驗證

在這里插入圖片描述

在這里插入圖片描述

4.Jenkins 版本升級

在這里插入圖片描述

下載后之后,我們只需要將 Jenkins 原有的包替換即可

[root@Jenkins ~]# rpm -ql jenkins											# 查看 Jenkins 包安裝路徑
[root@Jenkins ~]# systemctl stop jenkins
[root@Jenkins ~]# cd /usr/lib/jenkins/
[root@Jenkins jenkins]# mv jenkins.war jenkins-2.222.4.war.bak
[root@Jenkins jenkins]# ls
jenkins-2.222.4.war.bak  jenkins.war
[root@Jenkins jenkins]# systemctl start jenkins 

在這里插入圖片描述

查看

在這里插入圖片描述

 到此這篇關于使用GitLab+Jenkins實現(xiàn)持續(xù)集成CI環(huán)境的示例代碼的文章就介紹到這了,更多相關GitLab Jenkins持續(xù)集成CI環(huán)境內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 史上最好用的遠程桌面工具(附源碼)

    史上最好用的遠程桌面工具(附源碼)

    今天給大家分享一款不錯的遠程控制工具向日葵遠程桌面工具,支持多平臺,跨網(wǎng)絡,對向日葵遠程桌面工具感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • Git的基本操作流程及工作區(qū)版本庫暫存區(qū)的關系

    Git的基本操作流程及工作區(qū)版本庫暫存區(qū)的關系

    這篇文章主要為大家介紹了Git的基本操作流程及工作區(qū)版本庫暫存區(qū)的關系,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • 十六進制、十進制、八進制、二進制常用進制轉換

    十六進制、十進制、八進制、二進制常用進制轉換

    進制就是進制位,常用的進制包括:二進制、八進制、十進制與十六進制,區(qū)別在于數(shù)運算時是逢幾進一位。比如二進制是逢2進一位,十進制也就是我們常用的0-9是逢10進一位。這篇文章主要介紹了十六進制、十進制、八進制、二進制常用進制轉換,需要的朋友可以參考下
    2022-12-12
  • Webpack基礎教程之名詞解釋

    Webpack基礎教程之名詞解釋

    webpack 是一個現(xiàn)代JavaScript 應用程序的靜態(tài)模塊打包器,這次為大家簡單介紹一下webpack及關于webpack的一些專屬名詞入口(entry),輸出(output),loader,插件(plugins)
    2020-02-02
  • Trie樹_字典樹(字符串排序)簡介及實現(xiàn)

    Trie樹_字典樹(字符串排序)簡介及實現(xiàn)

    有時,我們會碰到對字符串的排序,若采用一些經(jīng)典的排序算法,則時間復雜度一般為O(n*lgn),但若采用Trie樹,則時間復雜度僅為O(n)
    2014-03-03
  • GitHub配置SSH?Key的完整步驟

    GitHub配置SSH?Key的完整步驟

    ssh是一種通信方式,在本地電腦生成ssh key之后,配置到github里,就不用像http協(xié)議那樣每次都輸入賬戶密碼了,這篇文章主要給大家介紹了關于GitHub配置SSH?Key的完整步驟,需要的朋友可以參考下
    2022-03-03
  • 鴻蒙開發(fā)搭建flutter適配的開發(fā)環(huán)境

    鴻蒙開發(fā)搭建flutter適配的開發(fā)環(huán)境

    文章詳細介紹了在Windows系統(tǒng)上如何創(chuàng)建和運行鴻蒙Flutter項目,包括使用flutter?doctor檢測環(huán)境、創(chuàng)建項目、編譯HAP包以及在真機上運行項目,打包鴻蒙Flutter應用的測試包和正式包的方法,并介紹了常見問題的解決方法
    2024-12-12
  • 詳細介紹HTTP Cookie

    詳細介紹HTTP Cookie

    本篇文章主要介紹了詳細介紹HTTP Cookie,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • vscode中使用Autoprefixer3.0無效的解決方法

    vscode中使用Autoprefixer3.0無效的解決方法

    這篇文章主要介紹了vscode中使用Autoprefixer3.0無效的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • 什么是負載均衡為什么需要負載均衡

    什么是負載均衡為什么需要負載均衡

    Load?balancing,即負載均衡,是一種計算機技術,用來在多個計算機(計算機集群)、網(wǎng)絡連接、CPU、磁盤驅動器或其他資源中分配負載,以達到最優(yōu)化資源使用、最大化吞吐率、最小化響應時間、同時避免過載的目的
    2024-04-04

最新評論