日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

持续集成Jenkins+Gitlab实现持续集成

發布時間:2024/3/12 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 持续集成Jenkins+Gitlab实现持续集成 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
用戶說明
  • 假設node3是程序員的個人電腦,在這臺機器上編寫代碼 ip地址192.168.10.10

Git的安裝部署及使用

  • git config --global user.name ‘zzg’ #定義用戶
  • git config --global user.email ‘zzg@qq.cn’ #定義郵箱
  • git config --global core.editor vim #定義注釋時的解釋器
  • git config --list #查看git文件內容
  • cat ~/.gitconfig #查看git信息

git重要的概念

  • 工作區:編寫程序時,創建一個目錄,把程序文件全都放在該目錄下,這個目錄就是工作區
  • 暫存區:工作區和版本庫之間的緩沖地帶
  • 版本庫:git在工作區中創建一個隱藏目錄.git,這個目錄是版本庫,它在工作區下,但是不是工作區的一部分。
提交確認工作區暫存區版本庫

創建本地倉庫

  • 新建項目時已經計劃使用git
[root@node3 ~]# git init myproject 初始化空的 Git 版本庫于 /root/myproject/.git/ [root@node3 ~]# ls -A myproject/ .git
  • 在已經存在的項目中使用git
[root@node3 ~]# mkdir devops [root@node3 ~]# cd devops/ [root@node3 devops]# echo '<h1>Hello World!</h1>' > index.html [root@node3 devops]# git init . 初始化空的 Git 版本庫于 /root/devops/.git/ [root@node3 devops]# ls -A .git index.html

git應用

[root@node3 devops]# git status # 狀態 [root@node3 devops]# git status -s # 簡要信息 ?? index.html [root@node3 devops]# git add . # 將目錄下所有內容加入暫存區,開始跟蹤 [root@node3 devops]# git status -s A index.html [root@node3 devops]# git commit -m "modify index.html, add hosts" # 確認至版本庫,需要寫日志 [root@node3 devops]# git log # 查看所有的提交 commit 0fff998482d7630caa531f28d51587884745b423 Author: zzg <zzg@qq.cn> Date: Tue May 21 14:16:04 2019 +0800modify index.html, add hosts恢復誤刪除的文件[root@node3 devops]# rm -rf * [root@node3 devops]# ls [root@node3 devops]# git status # 位于分支 master # 尚未暫存以備提交的變更: # (使用 "git add/rm <file>..." 更新要提交的內容) # (使用 "git checkout -- <file>..." 丟棄工作區的改動) # # 刪除: hosts # 刪除: index.html # 修改尚未加入提交(使用 "git add" 和/或 "git commit -a"[root@node3 devops]# git checkout -- * [root@node3 devops]# ls hosts index.html [root@git devops]# git checkout \ 0fff998482d7630caa531f28d51587884745b423 #切換到目的版本 現在目錄下出現了index.html和hosts兩個文件 [root@node3 devops]# ls index.html hosts # 返回到最新的提交 [root@node3 devops]# git checkout master

分支管理

# 查看分支 [root@node3 devops]# git branch * master [root@node3 devops]# ls index.html mima # 新建分支 [root@node3 devops]# git branch fn1 [root@node3 devops]# git branchfn1 * master # 切換分支 [root@node3 devops]# git checkout fn1 切換到分支 'fn1' [root@node3 devops]# git branch * fn1master # 在fn1分支中編寫程序 [root@node3 devops]# cp ~/anaconda-ks.cfg . [root@node3 devops]# git add . [root@node3 devops]# git commit -m "fn1 add anaconda" [fn1 619f6fb] fn1 add anaconda1 file changed, 65 insertions(+)create mode 100644 anaconda-ks.cfg [root@node3 devops]# ls anaconda-ks.cfg index.html mima # 切換回master分支 [root@node3 devops]# git checkout master 切換到分支 'master' [root@node3 devops]# ls index.html mima # 合并fn1分支到主干 [root@node3 devops]# git merge fn1 更新 8e1c9eb..619f6fb Fast-forwardanaconda-ks.cfg | 65 ++++++++++++++++++++++++++++++++++++1 file changed, 65 insertions(+)create mode 100644 anaconda-ks.cfg [root@node3 devops]# ls anaconda-ks.cfg index.html mima # fn1分支使命已經達成,可以刪除 [root@node3 devops]# git branch -d fn1 已刪除分支 fn1(曾為 619f6fb)。 [root@node3 devops]# git branch * master

Gitlab服務器

  • 登陸時的用戶名是root
  • 訪問http://192.168.10.11 初始化密碼必須是8位以上,復雜。
添加新群組


選擇公開

為devops組中的成員創建用戶zzg。新建用戶的時候,不能創建密碼。用戶建立好之后,修改用戶,可以為其加密碼。


點擊上面小扳手位置。可以新增用戶和新建項目

  • 新建項目,并選擇公開
  • 選擇左下角設置,為項目添加用戶
  • gitlab項目中默認只支持主程序員和管理員上傳文件。如果需要更改在設置==>版本庫==> 保護分支中開啟

gitlab中重要的概念

  • 群組group:對應成一個部門、開發團隊
  • 成員:對應用戶
  • 項目:對應軟件項目

新建組,名為devops。群組等級為公開。
為devops組中的成員創建用戶zzg。新建用戶的時候,不能創建密碼。用戶建立好之后,修改用戶,可以為其加密碼。
新建項目devops。新建的用戶zzg是新項目的主程序員。可見等級為公開。項目創建完成后,點擊左下角的“折疊邊欄”=>“設置”=>“成員”=>邀請上一步創建的用戶,角色是“主程序員”。

新建的用戶上傳代碼

上傳代碼有兩種方式,一種是http的方式,這種方式,每次上傳代碼都需要填寫用戶名和密碼。另一種是通過ssh實現免密登陸。

[root@node3 devops]# ssh-keygen -t rsa -C "zzg@tedu.cn" -b 4096 [root@node3 devops]# cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC4l7/lm33v5VV1Pspkea0ldWlwgZgAJ+Z64HoVkLX+0oudHuuPhKGf9pnzRpGklWVPaoA9M3pMAjuNaiWc5OIeOwYKHP3XPV3fTR5M1iWr034/zcWrSm0MJ5BXtqnpamWH8Fy1i9WhyPR98/Sn8k0EaHt7c5PyQLqM2li2YG7HtWf2Z6CuxI83rUBVlN2TwnIhWzLKheUzMb1zCYi83I6WDX5FNvGYG+3kw7SisKmCl54ex1uQMoDLRjCjnEsLoCg4fZRGBXWH3/4K1Fn+mPxxDsKyHlusU5lgtTNu3XHdfuxJRlL8luUKHGrBKd73fo7Vo5lxpy+/75OlXd/9ybXaRVvXsJ2t8xitLgyT2ov4mL5sR996EkTsy7ZWQiJY3mDCDBlNnpwkK02IlXOlWQ8xnVAT/XW3druFASCDUdUFh92+zEG1LP1NwMX1msuflRy/1p+GqphCCQXO1VIefWtZ3I5Q+UaWgE8cGq9ol3G/WUKnCJ8XCLM45EMSBPZiPtwn2xd417C8COGe+J7XRO0Vy3wf5w0ODKDonEzFmob2FhGYqyax4SJk/RniOgMFORPBO0DMzEU5YkHKuthNU7EUhiDfeHWROtr4ja8bqDEPpbSf56e9hqfnoOCp6USbjMbQCPp/ZrC1KNV3JDH2N1FqS3pKJBaH9y40Ted/ZbNeRw== zzg1@qq.com
  • 點擊右上角設置,在左邊點擊ssh密鑰
  • 添加密鑰成功后就可以使用免密鑰下載和發送腳本到Gitlab服務器
[root@node3 devops]# mkdir myweb #創建版本倉庫目錄 [root@node3 devops]# cd myweb echo '<h1>Hello World!</h1>' > index.html #創建測試頁面 [root@node3 devops]# git init . #創建Git倉庫 echo '<h2>text web 2.0</h2>' >> index.html #更新為web頁面內容 [root@node3 devops]# git add . #添加到緩沖區 [root@node3 devops]# git commit -m "web test 2.0" #添加到工作區 [root@node3 devops]# git tag #打上標記 [root@node3 devops]# git remote rename origin old-origin #在Gitlab定義如果出現以下報錯,忽略error: 不能重命名配置小節 'remote.origin' 到 'remote.old-origin'[root@node3 devops]# git remote add origin \ git@192.168.10.83:devops/myweb.git #Gitlab服務器地址[root@node3 devops]# git remote rm origin #如不小心將git遠程地址配錯了需要刪除后在重新添加[root@node3 devops]# git push -u origin --all #將本地文件上傳到Gitlab服務器[root@node3 devops]# git push -u origin --tags #將版本標記上傳到Gitlab服務器

Jenkins部署即持續化集成

安裝jenkins

[root@node4 ~]# yum -y install java-1.8.0-openjdk [root@node4 ~]# yum install -y jenkins-2.138.2-1.1.noarch.rpm [root@node4 ~]# systemctl start jenkins [root@node4 ~]# systemctl enable jenkins
打開http://192.168.10.12:8080。安裝插件選擇自定義=>無。不用創建管理員帳號,使用admin登陸即可。登陸后,將管理員的密碼改掉。


點擊主頁設置 ==>點擊Manage Jenkins ==>插件管理 ==> 可選插件 ==> Localization: Chinese (Simplified) 中文插件補丁,git parameter(gitlab支持包)

  • 在jenkins上創建工程,自動下載代碼
  • 點擊新建任務
  • 創建一個自由風格的軟件項目

  • 選擇參數化構建過程
  • 選擇下載的插件Git Parameter==>Name:自定義==>Default Value:origin/master
  • 源碼管理
  • 選擇Git == > Repositories ==> Repository URL ==> 選擇Gitlab上項目的http鏈接
  • 如輸入鏈接后提示 該錯誤,可能是Jenkins服務器沒有安裝Git軟件包導致
  • 另需要定義從Gitlab下載代碼后保存在子文件夾下,并改名為myweb-$webver,其中$webver為之前上面所定義的版本號變量
  • 點擊Additional Behaviours ==> Checkout to a sub-directory:myweb-$webver
  • 正常添加后,選擇構建 ==> 構建步驟選擇shell, 此處為Jenkins構建后執行的命令
  • Jenkins將Gitlab倉庫下載的代碼默認放在/var/lib/jenkins/workspace/下

完善Jenkins

  • jenkins下載web項目后,將其打包
  • 為了應用服務器可以下載項目軟件包,在jenkins上安裝httpd服務,以便應用服務器下載
[root@jenkins ~]# yum install -y httpd [root@jenkins ~]# systemctl start httpd [root@jenkins ~]# systemctl enable httpd [root@jenkins ~]# mkdir -p /var/www/html/deploy/pkgs # /var/www/html/deploy/: 保存livever、lastver,即當前版本和前一個版本的版本號 # /var/www/html/deploy/pkgs/: 保存軟件壓縮包和它的md5值 [root@jenkins ~]# chown -R jenkins.jenkins /var/www/html/deploy/ # 因下載后默認為用戶jenkins寫入數據,將deploy文件夾改成jenkins所有確保能正常使用

在Jenkins添加shell腳本

deploy_dir=/var/www/html/deploy pkgs_dir=/var/www/html/deploy/pkgs cp -r myweb-$webver $pkgs_dir # 將下載的軟件目錄拷貝到web服務器目錄 cd $pkgs_dir rm -rf myweb-$webver/.git # 刪除版本庫文件 tar czf myweb-$webver.tar.gz myweb-$webver # 打包壓縮 md5sum myweb-$webver.tar.gz | awk '{print $1}' > myweb-$webver.tar.gz.md5 # 計算并保存md5值 rm -rf myweb-$webver # 刪除程序目錄 cd $deploy_dir [ -f livever ] && cat livever > lastver echo $webver > livever # 將當前版本內容寫到前一版本文件 # 更新當前版本

總結

以上是生活随笔為你收集整理的持续集成Jenkins+Gitlab实现持续集成的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。