主頁 >  其他 > Linux云計算 --中國三大電商大廠都在使用的《 GitLab與Jenkins結合構建持續集成(CI)環境》是如何排列

Linux云計算 --中國三大電商大廠都在使用的《 GitLab與Jenkins結合構建持續集成(CI)環境》是如何排列

2021-07-30 07:44:01 其他

文章目錄

  • 1 持續集成概述和搭建Gitlab平臺
      • 1.1持續集成概述
      • 1.2jenkins和Gitlab概述
          • GitLab概述:
      • 1.3GitLab和GitHub的區別
      • 1.4 搭建GitLab平臺
  • 2 配置gitlab郵件服務和對gitlab平臺漢化
      • 2.1 管理gitlab服務
      • 2.2 配置gitlab郵件服務
          • 1.開啟郵箱的SMTP服務
          • 2. 編輯/etc/gitlab/gitlab.rb檔案,配置STMP郵件發送服務,前提你的郵件已經開通stmp/pop3收發功能
          • 3 通過命令列測驗郵件是否發送成功(也可以不測)
      • 2.3 漢化gitlab
      • 2.4 關閉gitlab注冊功能
  • 3 gitlab日常使用方法
      • 3.1 新建專案
      • 3.2 創建用戶
      • 3.3 重置新創建的用戶的密碼
      • 3.4 洗掉用戶
      • 3.5 在專案中添加一個檔案
  • 4 git客戶端使用技巧
      • 4.1 安裝git并clone代碼
      • 4.2 初次運行 Git 前的配置
          • 1. ~/.gitconfig 檔案:用戶目錄下的組態檔只適用于該用戶,
          • 2. 當前專案.git目錄中的組態檔(也就是作業目錄中的 .git/config 檔案):
      • 4.3 git常用命令
      • 4.4 作業區和暫存區及分支概述
  • 5 搭建Jenkins實作持續集成
      • 5.1 安裝JDK1.8
      • 5.2 安裝jenkins
      • 5.3 訪問Jenkins并安裝相關插件
      • 5.4 手動安裝相關插件


基于最新版本:jenkins-2.222和gitlab-ce-13.9.4 搭建以下服務

1 持續集成概述和搭建Gitlab平臺

1.1持續集成概述

持續集成概述:持續集成(Continuous integration)持續集成是指開發者在代碼的開發程序中,可以頻繁的將代碼部署集成到主干,并行程自動化測驗,開發-》代碼編譯-》測驗-》

持續交付:持續交付指的是在持續集成的環境基礎之上,將代碼部署到預生產環境,
持續部署:在持續交付的基礎上,把部署到生產環境的程序自動化,
在這里插入圖片描述

1.2jenkins和Gitlab概述

Jenkins概述:是一個開源軟體專案,是基于Java開發的一種持續集成工具,用于監控持續重復的作業,旨在提供一個開放易用的軟體平臺,使軟體的持續集成變成可能,

網方網站:https://jenkins.io/
在這里插入圖片描述

GitLab概述:

是一個利用 Ruby on Rails 開發的開源應用程式,實作一個自托管的Git專案倉庫,可通過Web界面進行訪問公開的或者私人專案,Ruby on Rails 是一個可以使你開發、部署、維護 web 應用程式變得簡單的框架,

GitLab擁有與Github類似的功能,能夠瀏覽源代碼,管理缺陷和注釋,可以管理團隊對倉庫的訪問,它非常易于瀏覽提交過的版本并提供一個檔案歷史庫,它還提供一個代碼片段收集功能可以輕松實作代碼復用,便于日后有需要的時候進行查找,

GitLab中文網:https://www.gitlab.cc/installation/#centos-7

1.3GitLab和GitHub的區別

GitHub和GitLab的區別:
在這里插入圖片描述
相同點: 二者都是基于web的Git倉庫,在很大程度上GitLab是仿照GitHub來做的,它們都提供了分享開源專案的平臺,為開發團隊提供了存盤、分享、發布和合作開發專案的中心化云存盤的場所,
不同點:

  1. GitHub免費版本只有500MB的代碼存盤空間, 在這里插入圖片描述
    更多免費用戶的限制條件詳見:https://github.com/pricing

  2. GitLab讓開發團隊對他們的代碼倉庫擁有更多的控制,相比于GitHub,它有不少的特色:允許免費設定倉庫權限;允許用戶選擇分享一個project的部分代碼;允許用戶設定project的獲取權限,進一步的提升安全性,最重要的是,代碼在自已的服務器上,別人拿不到,

  3. 總結:從代碼私有性方面來看,有時公司并不希望員工獲取到全部的代碼,這個時候GitLab無疑是更好的選擇,但對于開源專案而言,GitHub依然是代碼托管的首選,

git相關概念:

git是一種版本控制系統,是一個命令,是一種工具
gitlib是用于實作git功能的開發庫
github是一個基于git實作的在線代碼托管倉庫,包含一個網站界面,向互聯網開放
gitlab是一個基于git實作的在線代碼倉庫托管軟體,一般用于在企業內部網路搭建git私服

注: gitlab-ce 社區版 ; gitlab-ee是企業版,收費

1.4 搭建GitLab平臺

實驗環境: centos7 虛擬機最少需要6G記憶體,不然后期運行時,記憶體不夠用,直接報錯, 我這里給8G

1.安裝Gitlab需要的組件:

[root@xuegod63 ~]# yum install curl policycoreutils-python openssh-server openssh-clients postfix -y
默認,使用 Postfix 發送郵件
[root@xuegod63 ~]# systemctl enable postfix && systemctl start postfix
[root@xuegod63 ~]# iptables -F  #清空規則
[root@xuegod63 ~]# systemctl stop firewalld && systemctl disable firewalld
禁止防火墻,就不用執行下面兩條命令:
[root@xuegod63 ~]#firewall-cmd --permanent --add-service=http
[root@xuegod63 ~]#systemctl reload firewalld

2 安裝gitlab
下載gitlab的兩種方法:
方法1:使用yum下載太慢,直接使用迅雷下載以下鏈接:
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.9.3-ce.0.el7.x86_64.rpm
上傳到gitlab-ce-13.9.3-ce.0.el7.x86_64.rpm到linux系統上

[root@xuegod63 ~]# rpm -ivh gitlab-ce-13.9.3-ce.0.el7.x86_64.rpm  #安裝

方法2:配置yum源,使用yum安裝:

[root@xuegod63 ~]# yum install gitlab-ce -y   #安裝太慢,下面使用清華的源:
[root@xuegod63 ~]# cd /etc/yum.repos.d/
[root@xuegod63 yum.repos.d]# vim gitlab-ce.repo   #寫入以下內容
[gitlab-ce]  
name=gitlab-ce  
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7  
repo_gpgcheck=0  
gpgcheck=0  
enabled=1  
gpgkey=https://packages.gitlab.com/gpg.key
[root@xuegod63 ~]# yum install gitlab-ce -y

3 配置gitlab訪問地址:

[root@xuegod63 ~]# vim /etc/gitlab/gitlab.rb   #修改gitlab外部訪問地址

改:32 external_url ‘http://gitlab.example.com’

為:32 external_url ‘http://192.168.1.63’

注:這里必須修改,不然后后期訪問時,用戶到地址是:http://gitlab.example.com/xxxx ,根本不能訪問, 修改后獲得是: http://192.168.1.63/xxxx

4 應用新配好的配置并重啟GitLab

[root@xuegod63 ~]# gitlab-ctl reconfigure  #重新配置應用程式,修改了gitlab服務組態檔后,都需要執行一下這個命令,
讓各個服務的組態檔,重新加載一下組態檔,這里等個2分鐘左右,
,,,
Running handlers:
Running handlers complete
Chef Client finished, 2/501 resources updated in 37 seconds
gitlab Reconfigured!
[root@xuegod63 ~]# gitlab-ctl status  #可以使用gitlab-ctl管理gitlab,例如查看gitlab狀態:
run: gitlab-workhorse: (pid 3275) 169s; run: log: (pid 3151) 280s
run: logrotate: (pid 3169) 273s; run: log: (pid 3168) 273s
run: nginx: (pid 3157) 279s; run: log: (pid 3156) 279s
run: postgresql: (pid 3009) 349s; run: log: (pid 3008) 349s
run: redis: (pid 2926) 360s; run: log: (pid 2925) 360s
run: sidekiq: (pid 3142) 287s; run: log: (pid 3141) 287s
run: unicorn: (pid 3110) 293s; run: log: (pid 3109) 293s
[root@xuegod63 config]# netstat  -antup | grep  :80
tcp        0      0 127.0.0.1:8080     0.0.0.0:*      LISTEN     10864/unicorn maste 
tcp        0      0 0.0.0.0:80         0.0.0.0:*       LISTEN      10729/nginx: master

默認使用nginx做為web服務器,
注:如果后期web界面訪問時,總報502,另外記憶體要大于4G,不然后記憶體不足,也報502
在這里插入圖片描述

[root@xuegod63 ~]# iptables -F   #清空規則
[root@xuegod63 ~]# free  -m   #已經使用4G以上記憶體
              total        used        free      shared  buff/cache   available
Mem:        5817        4187         133          80        1496        1198

5 登錄gitlab
http://192.168.1.63
第一次登錄gitlab,需要為root用戶修改密碼,root用戶也是gitlab的超級管理員,輸入新密碼:xuegod.cn ,密碼需要復雜些,才可以的
在這里插入圖片描述

如果密碼太簡單,將報錯:
在這里插入圖片描述
改成密碼后, 登錄一下:
使用root用戶和剛才創建的密碼登錄gitlab:
登錄: http://192.168.1.63/ 用戶名: root 密碼; xuegod.cn
在這里插入圖片描述
在這里插入圖片描述
到此,gitlab搭建成功,

2 配置gitlab郵件服務和對gitlab平臺漢化

2.1 管理gitlab服務

關閉gitlab: # gitlab-ctl stop
啟動gitlab: # gitlab-ctl start
重啟gitlab: # gitlab-ctl restart

gitlab主組態檔:/etc/gitlab/gitlab.rb //可以自定義一些郵件服務等
日志地址:/var/log/gitlab/ // 對應各服務
服務地址:/var/opt/gitlab/ // 對應各服務的主目錄
倉庫地址:/var/opt/gitlab/git-data //記錄專案倉庫等提交資訊
重啟服務:gitlab-ctl stop/start/restart //啟動命令

2.2 配置gitlab郵件服務

配置郵箱服務的用途:當有合并請求時,賬號注冊,修改密碼時,可通過郵件通知 ?,郵件驗證 ,?郵件修改實作

1.開啟郵箱的SMTP服務

設定–>POP3/ smtp–>開啟一下,開啟后,回傳授權碼,保存好授權碼
在這里插入圖片描述
在這里插入圖片描述

2. 編輯/etc/gitlab/gitlab.rb檔案,配置STMP郵件發送服務,前提你的郵件已經開通stmp/pop3收發功能

[root@xuegod63 ~]# vim /etc/gitlab/gitlab.rb #在89行后,插入以下內容:
在這里插入圖片描述

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "jianmingbasic@163.com"
gitlab_rails['smtp_password'] = "自己郵箱授權碼,不是郵箱帳號的密碼"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'jianmingbasic@163.com'
重新配置gitlab:
[root@xuegod63 ~]# gitlab-ctl reconfigure
3 通過命令列測驗郵件是否發送成功(也可以不測)
[root@xuegod63 ~]# gitlab-rails console   #稍等幾秒到十幾秒,然后出現腳本輸入區域
Loading production environment (Rails 4.2.8)
irb(main):001:0>   #這是提示符

然后再輸入測驗腳本:

irb(main):001:0> Notify.test_email('jianmingbasic@163.com', '郵件主題Message Subject', '郵件正文Message Body')
.deliver_now

注:腳本格式為:Notify.test_email(‘接收方郵件地址’,‘郵件主題’,‘郵件內容’).deliver_now
在這里插入圖片描述
irb(main):004:0> exit
查看郵件:
在這里插入圖片描述

2.3 漢化gitlab

最新版本中gitlab添加了語言功能,舊版本需要手工漢化,新版本只需修改配置即可,
在這里插入圖片描述
修改后重繪頁面即可完成漢化,

2.4 關閉gitlab注冊功能

默認情況下可以直接注冊賬號,
以root用戶登錄:http://192.168.1.63/users/sign_in
點Admin area -》 setting -》General-》Expand, 取消這兩項標簽前對勾
在這里插入圖片描述
在此網頁的最后,點save changes:
在這里插入圖片描述
測驗,使用無痕瀏覽器進行登錄,發已經關閉了注冊功能:
http://192.168.1.63/
在這里插入圖片描述

3 gitlab日常使用方法

3.1 新建專案

  1. 新建專案前,先創建專案所在的組(也就是說這個專案檔案是保存在哪個組里)
    選擇Admin area
    在這里插入圖片描述
  2. 新建群組
    http://192.168.1.63/admin/groups
    在這里插入圖片描述
    組描述內容:xuegod web 開發組
    在這里插入圖片描述
    權限選擇這個:
    在這里插入圖片描述
    在這里插入圖片描述
  3. 選擇Create New Projcet ,然后在輸入專案名稱,同時在namespace里選擇剛才創建的組
    www.xuegod.cn web 代碼
    在這里插入圖片描述
    現在gitlab創建專案時已經支持匯入專案了,方便企業進行專案遷移,
    在這里插入圖片描述
    創建專案:xuegod-web ,專案描述: www.xuegod.cn web 代碼
    在這里插入圖片描述
    注:這里只能選擇私有的,因為之前xuegod群組已經指定了私有權限,
    在這里插入圖片描述
    注:稍后我們會設定一個公鑰,這樣就可以無互動,直接上傳或下載代碼了,就像ssh無密鑰登錄一樣,這樣方便后期進行jenkins自動部署

3.2 創建用戶

  1. 管理中心-用戶-新建用戶
    在這里插入圖片描述
  2. Username是登錄用戶名,一般可以設定成郵箱的前綴,Email為公司郵箱,角色設定為管理員
    在這里插入圖片描述
    將新創建的用戶,加入到xuegod群組中,并給一個owner權限, 只要加入到xuegod群組中,后期才能訪問xuegod群組中的git專案
    在這里插入圖片描述
    添加用戶到群組,角色為Owner所有者
    在這里插入圖片描述

3.3 重置新創建的用戶的密碼

登錄郵件:jianmingbasic@163.com
在這里插入圖片描述
點開設定自己的初始密碼:密碼必須8位以一上,我的密碼是: xuegod.cn
在這里插入圖片描述
生成密碼后,登錄:
在這里插入圖片描述
方法2: 當用戶忘記密碼或者想給用戶指定一個密碼,以root管理員帳號直接修改密碼

  1. 選擇Admin area -》用戶-》選中用戶-》編輯
    在這里插入圖片描述
    設定新的密碼是: xuegod.cn
    在這里插入圖片描述
    在這里插入圖片描述
  2. 使用jianmingbasic登錄http://192.168.1.63/ 密碼:xuegod.cn
    在這里插入圖片描述
    登錄后續修改密碼,此功能用于密碼找回等操作,所以臨時修改密碼后還是需要用戶自行修改密碼,
    在這里插入圖片描述

3.4 洗掉用戶

當對方離職時候,為了安全起見,需要洗掉對方的gitlab權限,避免機密資訊丟失,操作方法如下:

  1. 選擇管理中心 ,選擇User,洗掉用戶 , 我們這里先不洗掉,后期要用
    在這里插入圖片描述
    注:如果想把用戶和貢獻都洗掉,就選擇下面這個,
    再次輸入一下要洗掉的用戶名,然后洗掉,注:我們先不洗掉,因為后期還要使用,這個用戶
    在這里插入圖片描述
  2. 修改用戶在組中的權限
    把用戶jianmingbasic添加到xuegod組中,身份選擇"主程式員",這樣后期就可以提交代碼了,選擇“開發人員”會沒有權限提交代碼,
    在這里插入圖片描述
    maintainer #維護者 ,應該翻譯主程式員,
    在這里插入圖片描述

3.5 在專案中添加一個檔案

在這里插入圖片描述
在這里插入圖片描述
添加檔案:index.html
http://192.168.1.63/xuegod/xuegod-web
在這里插入圖片描述
在這里插入圖片描述
創建index.html
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

4 git客戶端使用技巧

4.1 安裝git并clone代碼

[root@xuegod63 ~]# yum install git  -y

#下載地址,可以從這里獲得
在這里插入圖片描述

[root@xuegod63 ~]# git clone http://192.168.1.63/xuegod/xuegod-web.git
正克隆到 'xuegod-web'...
Username for 'http://192.168.1.63': jianmingbasic      
Password for 'http://jianmingbasic@192.168.1.63': xuegod.cn
[root@xuegod63 ~]# cd xuegod-web/
[root@xuegod63 xuegod-web]# ls
index.html

注:后期可以部署ssh 公鑰,實作不輸入密碼直接下載和上傳代碼,

4.2 初次運行 Git 前的配置

一般在新的系統上,我們都需要先配置下自己的 Git 作業環境,配置作業只需一次,以后升級時還會沿用現在的配置,

第一個要配置的是你個人的用戶名稱和電子郵件地址,這兩條配置很重要,每次 Git 提交時都會參考這兩條資訊,說明是誰提交了更新,所以會隨更新內容一起被永久納入歷史記錄,

git運行的環境變數有點像.bashrc,決定了 Git 在各個環節的具體作業方式和行為,這些變數可以存放在以下兩個的地方:

1. ~/.gitconfig 檔案:用戶目錄下的組態檔只適用于該用戶,

例1:修改用戶資訊

[root@xuegod63 ~]# git config --global user.name "jianmingbasic"
[root@xuegod63 ~]# git config --global user.email "jianmingbasic@163.com" 
[root@xuegod63 ~]# cat ~/.gitconfig   #上面兩條命令會生成~/.gitconfig
[user]
	email = jianmingbasic@163.com
	name = jianmingbasic
2. 當前專案.git目錄中的組態檔(也就是作業目錄中的 .git/config 檔案):

這里的配置僅僅針對當前專案有效,每一個級別的配置都會覆寫上層的相同配置,所以 .git/config 里的配置會覆寫 ~/.gitconfig中的同名變數,

如果要在某個特定的專案中使用其他名字或者郵件地址,先進到專案上下,然后只要去掉 --global 選項重新配置即可, 最后配置的用戶和郵件地址會保存在當前專案的 .git/config 檔案里,

例:修改某個git專案下的環境變數

[root@xuegod63 xuegod-web]#   cd xuegod-web/
[root@xuegod63 xuegod-web]#  vim  ./.git/config  #先查看一下,里面沒有user.name和user.email
[root@xuegod63 xuegod-web]# git config  user.name "jianmingbasic"
[root@xuegod63 xuegod-web]# git config  user.email "jianmingbasic@163.com" 
[root@xuegod63 .git]# vim  ./.git/config  
...
[user]  #新增加了,以下內容
	name = jianmingbasic	
	email = jianmingbasic@163.com

4.3 git常用命令

git config --global user.name “name“#設定全域用戶名
git config --global user.email mail#設定全域郵箱
git config --global --list#列出用戶全域設定
git add index.html#添加檔案到暫存區
git commit -m “描述內容“#提交檔案到作業區
git status#查看作業區的狀態
git push#提交代碼到git服務器上
git pull#獲取代碼到本地
git log#查看操作日志
vim .gitignore#定義忽略檔案
git reset --hard HEAD^#git版本回滾, HEAD為當前版本,加一個為上一個,^為上上一個版本
git reflog#獲取每次提交的ID,可以使用–hard根據提交的ID進行版本回退
git reset --hard 5ae4b06#回退到指定id的版本
git branch#查看當前所處的分支
git checkout#切換到指定分支或標簽

詳細使用方法可以參考如下圖:
在這里插入圖片描述
例:把修改過的index.html檔案更新主版本中

[root@xuegod63 test]# cd /root/xuegod-web/
[root@xuegod63 xuegod-web]# echo "bbs.xuegod.cn" >> index.html
[root@xuegod63 xuegod-web]#  git add index.html    #添加檔案到暫存區
[root@xuegod63 xuegod-web]# git commit -m "add bbs.xuegod.cn"  #提交檔案到作業區
[root@xuegod63 xuegod-web]# git push   #上傳到git服務器 
origin [??r?d??n] 起源,根 
Username for 'http://192.168.1.63': jianmingbasic
Password for 'http://jianmingbasic@192.168.1.63': xuegod.cn

[root@xuegod63 xuegod-web]# git config --global push.default simple   #不再顯示本資訊并從現在開始采用新的使用習慣
[root@xuegod63 xuegod-web]# rm -rf index.html    #洗掉一些代碼
[root@xuegod63 xuegod-web]# git reset --hard  HEAD  #回滾到最新版本
[root@xuegod63 xuegod-web]# ls
[root@xuegod63 xuegod-web]# git reflog    #獲取每次提交的ID
9c1e21a HEAD@{0}: commit: aaa
cd9d1d5 HEAD@{1}: commit: add bbs
b2866fd HEAD@{2}: clone: from http://192.168.1.63/xuegod/xuegod-web.git

4.4 作業區和暫存區及分支概述

  1. 作業區就是編輯檔案的目錄區域,需要將作業區的修改好的檔案使用add添加到暫存區才能提交到git服務器,在作業區有多個檔案的時候可以將一個或多個檔案添加至暫存區,再提交到git服務器即可,
  2. 在服務器創建分支
[root@xuegod63 xuegod-web]#  git branch bbs   #創建一個分支
[root@xuegod63 xuegod-web]#  git checkout bbs  #切換到分支bbs,進行代碼管理
[root@xuegod63 xuegod-web]#  git branch    	#查看當前所處的分支

[root@xuegod63 xuegod-web]#  echo aaa > a.txt  #隨意在里面寫一些內容
[root@xuegod63 xuegod-web]#  git add a.txt      #添加到git的暫存區
[root@xuegod63 xuegod-web]#  git commit  -m "add a.txt"  #提交到git的作業區中
[root@xuegod63 xuegod-web]#  git push -u origin  bbs     #上傳到git服務器上(先創建bbs分支,然后上傳代碼)
注:-u origin 是什么? 如下:
[root@xuegod63 xuegod-web]# vim /root/xuegod-web/.git/config
[remote "origin"]
        url = http://192.168.1.63/xuegod/xuegod-web.git    #這就是origin的git地址
        fetch = +refs/heads/*:refs/remotes/origin/*

然后在web界面查看分支:
在這里插入圖片描述
將bbs分支的內容,合并到master上:

[root@xuegod63 xuegod-web]# git checkout master   #切換到分支 'master'
[root@xuegod63 xuegod-web]# git merge bbs   # 將bbs分支中的內容合并到master

注:merge 英 [m?:d?] 合并

[root@xuegod63 xuegod-web]# ls    #已經看到bbs分支中的a.txt
a.txt  index.html
[root@xuegod63 xuegod-web]# git push   #提交到git服務器上
Username for 'http://192.168.1.63': jianmingbasic
Password for 'http://jianmingbasic@192.168.1.63':  xuegod.cn

查看gitlab上,已經有a.txt
在這里插入圖片描述

5 搭建Jenkins實作持續集成

5.1 安裝JDK1.8

Jenkins是Java撰寫的,所以需要先安裝JDK,這里采用yum安裝,如果對版本有需求,可以直接在Oracle官網下載JDK,
[root@xuegod63 ~]# yum install -y java-1.8.0-openjdk #光碟鏡像中有,也可以rpm直接安裝

5.2 安裝jenkins

官方下載地址:https://jenkins.io/zh/download/
在這里插入圖片描述
方法1:直接上傳jenkins-2.222.1-1.1.noarch.rpm到linux上

[root@xuegod63 ~]# rpm -ivh jenkins-2.222.1-1.1.noarch.rpm

方法2:在線安裝

[root@xuegod63 ~]# wget  -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat/jenkins.repo 
[root@xuegod63 yum.repos.d]# rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key
[root@xuegod63 yum.repos.d]# yum install -y  jenkins   #安裝jenkins

新版jenkins的服務埠為8080,為了不和GitLab的服務埠相沖突,修改Jenkins的默認埠8080198
[root@xuegod63 config]# netstat -antup | grep :80
tcp    0    0 127.0.0.1:8080   0.0.0.0:*          LISTEN      10864/unicorn maste 
tcp    0     0 0.0.0.0:80      0.0.0.0:*       LISTEN      10729/nginx: master

[root@xuegod63 yum.repos.d]# vim /etc/sysconfig/jenkins
改:29 JENKINS_USER="jenkins" 
為:29 JENKINS_USER="root"    #以root

改:56 JENKINS_PORT="8080" 
為:56 JENKINS_PORT=" 198 "
[root@xuegod63 ~]# systemctl restart jenkins   #啟動
[root@xuegod63 ~]# systemctl enable jenkins   #設定開機啟動

修改jenkins默認源

在web界面訪問jenkins時,默認會到國外的網站下載hudson.model.UpdateCenter.xml檔案,而這個檔案在中國下載時很慢,需要換成清華的源,

清華jenkins源:https://mirrors.aliyun.com/jenkins/updates/update-center.json

[root@xuegod63 ~]# sed -i 's/https:\/\/updates.jenkins.io\/update-center.json/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins\/updates\/update-center.json/g' /var/lib/jenkins/hudson.model.UpdateCenter.xml

5.3 訪問Jenkins并安裝相關插件

[root@xuegod63 jenkins]# iptables -F # 要清空防火規則,還要關閉selinux
開始正常使用:http://192.168.1.63:198 #打開后,需要耐心等待10分鐘左右
在這里插入圖片描述
在這里插入圖片描述
我們前面雖然修改了默認從清華下載default.json檔案,但是檔案內容和官方是沒有區別的,聯網檢測是通過google.com進行檢測,所有的插件地址也都是指向官方源,國內源雖然提供了default.json下載,但是并不能修改源中的任何配置,我們替換default.json中的國外地址為清華的地址,這樣就可以通過清華下載所有插件了,
修改插件地址:

[root@xuegod63 ~]# sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' 
/var/lib/jenkins/updates/default.json

修改聯網檢測地址:

[root@xuegod63 ~]# sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' /var/lib/jenkins/updates/default.json

修改后重啟生效

[root@xuegod63 ~]# systemctl restart jenkins

為了安全考慮,首先需要解鎖Jenkins
[root@xuegod63 ~]# cat /var/lib/jenkins/secrets/initialAdminPassword #查看初始化密碼檔案,
f00b76dece1d416ba50346f21cf937d9 #把密碼輸入以一下頁面,點continue ,
在這里插入圖片描述
選擇需要安裝的插件:
選擇默認即可,會安裝通用的社區插件,剩下的可以在使用的時候再進行安裝,
在這里插入圖片描述
在這里插入圖片描述
注:這個安裝時,需要從外網下載插件,需要20分鐘

如果安裝失敗,就點一下重試:
在這里插入圖片描述
如果點重試,還是失敗,那就點 “繼續”,等安裝成后,再手動下載插件進行安裝,
在這里插入圖片描述

創建管理員用戶:admin 密碼: 123456 全名: mk 郵箱:jianmingbasic@163.com
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
到此jenkins安裝成功,
注:關機后,創建一個虛擬機快照

5.4 手動安裝相關插件

如果在線安裝插件失敗了,或是無網環境下想安裝插件,可以選擇手動安裝,
在這里插入圖片描述
這里不用管,點繼續,等安裝成功后,我們再手動安裝插件,

在這里找到自己要下載的插件的名字和版本號:
在這里插入圖片描述
在這里下載:
插件下載地址:
http://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/

http://updates.jenkins-ci.org/download/plugins/
比如我要下載:gitlab-api,版本是:1.0.6
下載: https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/gitlab-api/1.0.6/
#在有網的環境下,把自己需要的插件下載好,然后再從本地上傳,

上傳插件,選擇:系統管理->插件管理->高級
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
方法2: 也可以直接把一臺安裝好jenkins插件服務器的/var/lib/jenkins/plugins目錄下的檔案復制到新的jenkins中,
實驗環境:xuegod64是一臺已經安裝好jenkins服務的服務器,xuegod63因為網路的原因,沒有安裝好插件,現在要把xuegod64上的插件安裝到xuegod63上,

  1. 將xuegod64上的插件打包
[root@xuegod64 ~]# cd /var/lib/jenkins
[root@xuegod64  jenkins]# tar czvf  jenkins-2.150.2-plugins.tar.gz  plugins/   #把安裝好的插件打包
  1. 將xuegod64上的jenkins-2.150.2-plugins.tar.gz上傳到xuegod63的/root/目錄下
[root@xuegod63 ~]# cd /var/lib/jenkins/
[root@xuegod63 ~]# rm -rf /var/lib/jenkins/plugins/ * 
[root@xuegod63 ~]#  tar zxvf jenkins-2.150.2-plugins.tar.gz -C  /var/lib/jenkins/plugins/  #把插件解出來
[root@xuegod63 ~]# /etc/init.d/jenkins  restart  

注:記得重啟jenkins,這個非常重要,因為不重啟,插件不會生效

登錄gitlab http://192.168.1.63/ 用戶名: root 密碼: xuegod.cn
登錄jenkins http://192.168.1.63:198/ 用戶名: admin 密碼: 123456

注:關機后,創建一個虛擬機快照

到處GitLab與Jenkins結合構建持續集成(CI)環境結束

                                       小伙伴們想要獲取該文章的學習視頻+筆記
                                              請添加我們小姐姐即可

在這里插入圖片描述

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/290878.html

標籤:其他

上一篇:資料結構和演算法(初涉)

下一篇:八大排序總結---- 資料結構 (圖解法) 面試必會! ! !

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more