git+gitlab+jenkins+php持續化部署配置實踐

git+gitlab+jenkins+php持續化集成配置實踐

在現在的互聯網中小企業中應用最爲廣泛的持續化部署莫屬gitlab+jenkins。通過gitlab實現代碼的集中化管理大大提高了開發效率。而jenkins的豐富插件爲代碼自動部署大大節約時間,並可以做到秒級回滾增加容錯。本次主要介紹通過gitlab+jenkins實現PHP代碼的自動化部署。

git+gitlab+jenkins安裝實踐

1. git安裝

centos 7自帶了git1.8鑑於版本過低。我們採用編譯安裝最新版git。下載最新的git源碼包。

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y
#安裝依賴包
#cd到源碼包
make prefix=/usr/local/git all && make prefix=/usr/local/git install
#設置編譯安裝的路徑並編譯安裝
rm -rf /usr/bin/git
ln -s /usr/local/git/bin/git /usr/bin/git
git --version
#替換掉系統自帶的git1.8 

當git版本顯示爲你下載的版本時就安裝成功了。

2.gitlab安裝

清華大學鏡像站下載gitlab的rpm包。

yum install curl policycoreutils  policycoreutils-python openssh-server openssh-clients -y
#安裝所需依賴包
systemctl enable sshd
systemctl start sshd
yum install postfix
systemctl enable postfix
systemctl start postfix
#啓動相關的服務
rpm -ivh gitlab-版本號.rpm
#安裝gitlab rpm包
vim /etc/gitlab/gitlab.rb 
gitlab-ctl reconfigure
gitlab-ctl status
#修改配置文件並安裝

在這裏插入圖片描述
修改URL爲本機的ip地址。瀏覽器訪問本機ip即可。
因爲jenkins默認以8080端口啓動,安裝時如果gitlab和jenkins安裝在同一臺主機。所以訪問時會出現502報錯,1.是8080端口被佔用。2.是內存小於2GB。以此後面 要修改jenkins的默認端口。並保證虛擬機內存要大於2GB。

3. jenkins安裝

在清華大學開源鏡像站下載jenkins的rpm安裝包 並下載相應版本的gitlab-plugin.hpi插件。因爲jenkins插件下載一直被詬病。因此我們用上傳文件安裝gitlab-plugin插件。

rpm -ivh jenkins 
#安裝jenkins
vim /etc/sysconfig/jenkins
#port=8081 修改端口
/etc/init.d/jenkins start 
#啓動服務

修改端口爲8080避免衝突。
在這裏插入圖片描述

創建gitlab代碼倉庫

1.root賬戶登錄gitlab。

在這裏插入圖片描述
創建私有倉庫。因爲WordPress代碼存在問題。後面演示改用的discuz代碼。

2.push代碼到倉庫

做好免密登錄gitlab服務器

ssh-keygen -t rsa
#生成密鑰對
cat ~/.ssh/id_rsa.pub
#複製公鑰

在這裏插入圖片描述
將公鑰複製到gitlab中的ssh keys中。

mkdir -pv /code/discuz
#創建代碼所在文件夾並將discuz源碼包的upload上傳至/code/discuz文件夾中
cd /code/discuz
git init
#初始化
git add *
git commit -m "discuz v1.0"
#將代碼提交到本地倉庫中
git push --set-upstream “你的git@地址”
#將代碼push到gitlab倉庫中

在這裏插入圖片描述

創建jenkins項目

1.初始化jenkins

在這裏插入圖片描述
在服務器上cat一下該文件把密碼填進去。

2.安裝所需插件

在這裏插入圖片描述
手動上傳下載的gitlab-plugin插件。等待安裝完所需依賴重啓即可。

3.構建項目

在jenkins中選擇 新建item–>freestyle project
在這裏插入圖片描述
項目名稱,添加描述
在這裏插入圖片描述
源碼選擇git,複製git地址填進去。添加登錄用戶。
在這裏插入圖片描述
輸入構建執行的腳本。目標爲遠程主機需要提前做好免密登錄步驟如上同。

usermod -s /bin/sh jenkins
#爲jenkins添加登錄shell
su jenkins
ssh-keygen -t rsa
ssh-copy -i root@web_host
#設置好jenkins免密登錄web服務器

因爲jenkins用jenkins賬戶啓動需要爲其添加相應權限。執行visudo爲其添加權限。
在這裏插入圖片描述

自動化構建

在這裏插入圖片描述
點擊構建jenkins會自動從gitlab中pull代碼並部署到web服務器上
在這裏插入圖片描述
到這git+gitlab+jenkins自動化部署就安裝完成了。

Author logn旭 QwQ

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章