持续集成Jenkins+Gitlab实现持续集成
生活随笔
收集整理的這篇文章主要介紹了
持续集成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重要的概念
- 工作區(qū):編寫程序時,創(chuàng)建一個目錄,把程序文件全都放在該目錄下,這個目錄就是工作區(qū)
- 暫存區(qū):工作區(qū)和版本庫之間的緩沖地帶
- 版本庫:git在工作區(qū)中創(chuàng)建一個隱藏目錄.git,這個目錄是版本庫,它在工作區(qū)下,但是不是工作區(qū)的一部分。
創(chuàng)建本地倉庫
- 新建項目時已經計劃使用git
- 在已經存在的項目中使用git
git應用
[root@node3 devops]# git status # 狀態(tài) [root@node3 devops]# git status -s # 簡要信息 ?? index.html [root@node3 devops]# git add . # 將目錄下所有內容加入暫存區(qū),開始跟蹤 [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>..." 丟棄工作區(qū)的改動) # # 刪除: 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 * masterGitlab服務器
- 登陸時的用戶名是root
- 訪問http://192.168.10.11 初始化密碼必須是8位以上,復雜。
添加新群組
選擇公開
為devops組中的成員創(chuàng)建用戶zzg。新建用戶的時候,不能創(chuàng)建密碼。用戶建立好之后,修改用戶,可以為其加密碼。
點擊上面小扳手位置。可以新增用戶和新建項目
- 新建項目,并選擇公開
- 選擇左下角設置,為項目添加用戶
- gitlab項目中默認只支持主程序員和管理員上傳文件。如果需要更改在設置==>版本庫==> 保護分支中開啟
gitlab中重要的概念
- 群組group:對應成一個部門、開發(fā)團隊
- 成員:對應用戶
- 項目:對應軟件項目
新建組,名為devops。群組等級為公開。
為devops組中的成員創(chuàng)建用戶zzg。新建用戶的時候,不能創(chuàng)建密碼。用戶建立好之后,修改用戶,可以為其加密碼。
新建項目devops。新建的用戶zzg是新項目的主程序員。可見等級為公開。項目創(chuàng)建完成后,點擊左下角的“折疊邊欄”=>“設置”=>“成員”=>邀請上一步創(chuàng)建的用戶,角色是“主程序員”。
新建的用戶上傳代碼
上傳代碼有兩種方式,一種是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密鑰
- 添加密鑰成功后就可以使用免密鑰下載和發(fā)送腳本到Gitlab服務器
Jenkins部署即持續(xù)化集成
安裝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。安裝插件選擇自定義=>無。不用創(chuàng)建管理員帳號,使用admin登陸即可。登陸后,將管理員的密碼改掉。
點擊主頁設置 ==>點擊Manage Jenkins ==>插件管理 ==> 可選插件 ==> Localization: Chinese (Simplified) 中文插件補丁,git parameter(gitlab支持包)
- 在jenkins上創(chuàng)建工程,自動下載代碼
- 點擊新建任務
- 創(chuàng)建一個自由風格的軟件項目
- 選擇參數化構建過程
- 選擇下載的插件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構建后執(zhí)行的命令
- Jenkins將Gitlab倉庫下載的代碼默認放在/var/lib/jenkins/workspace/下
完善Jenkins
- jenkins下載web項目后,將其打包
- 為了應用服務器可以下載項目軟件包,在jenkins上安裝httpd服務,以便應用服務器下載
在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实现持续集成的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: li-poly_GitHub - kin
- 下一篇: 4.5 51单片机-DS18B20温度传