企業級自動化代碼發佈——jenkins部署與項目示例

jenkins安裝部署

war包安裝

#安裝依賴軟件
[root@jenkins ~]# yum install -y java-1.8.0-openjdk && mkdir -p /usr/local/jenkins
#啓動jenkins
[root@jenkins ~]# java -jar /usr/local/jenkins/jenkins.war &
This may also be found at: /root/.jenkins/secrets/initialAdminPassword
#修改爲國內源
[root@jenkins ~]# vim .jenkins/hudson.model.UpdateCenter.xml
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
#kill %1,重啓
#修改插件下載地址
[root@jenkins .jenkins]# sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' updates/default.json
[root@jenkins .jenkins]# sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' updates/default.json
[root@jenkins .jenkins]# grep -o "tuna.tsinghua" updates/default.json
#kill %1,重啓
[root@jenkins ~]# cat /root/.jenkins/secrets/initialAdminPassword
0b9b294831aa4646b0c7ba7d4b5d853c

訪問http://192.168.213.188:8080/
安裝插件,創建管理員用戶
在這裏插入圖片描述

配置git

#卸載低版本
yum remove git
[root@jenkins ~]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc-c++ perl-ExtUtils-CBuilder perl-Extuntils-MakeMaker wget autoconf -y 
[root@jenkins git-2.7.3]# make configure
[root@jenkins git-2.7.3]# ./configure --prefix=/usr/local/git
[root@jenkins git-2.7.3]# make profix=/usr/local/git
[root@jenkins git-2.7.3]# make install
[root@jenkins ~]# echo "export PATH=$PATH:/usr/local/git/bin" > /etc/profile.d/git.sh
[root@jenkins ~]# source /etc/profile.d/git.sh
[root@jenkins ~]# git --version
git version 2.7.3

版本必須是2.0以上
在這裏插入圖片描述

配置maven

[root@jenkins ~]# tar xf apache-maven-3.5.4-bin.tar.gz -C /usr/local/
[root@jenkins ~]# echo "export PATH=$PATH:/usr/local/apache-maven-3.5.4/bin" > /etc/profile.d/maven.sh
[root@jenkins ~]# source /etc/profile.d/maven.sh
[root@jenkins ~]# mvn --version
Apache Maven 3.5.4

在這裏插入圖片描述

配置jdk

[root@jenkins ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.252.b09-2.el7_8.x86_64
[root@jenkins ~]# ln -sv /usr/local/jdk1.8.0_161 /usr/local/jdk1.8
[root@jenkins ~]# echo "export PATH=$PATH:/usr/local/jdk1.8/bin" > /etc/profile.d/java.sh
[root@jenkins ~]# source /etc/profile.d/java.sh
[root@jenkins ~]# java -version
java version "1.8.0_161"

在這裏插入圖片描述

配置svn

[root@jenkins ~]# yum install subversion -y
[root@jenkins ~]# mkdir /svnrepo
[root@jenkins ~]# svnadmin create /svnrepo/project1
[root@jenkins ~]# cd /svnrepo/project1/conf/
[root@jenkins conf]# egrep -v "^#|^$" authz
[aliases]
[groups]
[/]
xuel = rw
[root@jenkins conf]# egrep -v "^#|^$" passwd
[users]
xuel = [email protected]
[root@jenkins conf]# egrep -v "^#|^$" svnserve.conf
[general]
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
[sasl]
# 啓動項目
[root@jenkins ~]# svnserve -d -r /svnrepo/project1/

在這裏插入圖片描述

配置系統環境變量

在這裏插入圖片描述

密碼破解

https://blog.csdn.net/h106140873/article/details/95480258

實戰PHP程序自動發佈

搭建lnmp環境

[root@lnmp ~]# yum install http php php-mysql
#https://blog.csdn.net/qq_39719589/article/details/81835330

插件安裝

Publish Over SSH
Git plugin

SSH配置

系統管理一系統設置一Publish over SSH

[root@jenkins ~]# ssh-keygen -t rsa
[root@jenkins ~]# ssh-copy-id -i .ssh/id_rsa.pub [email protected]

在這裏插入圖片描述

SSH Server配置

系統管理一系統設置一Publish over SSH一SSH Server

表項 含義
name 需要將php程序發佈到目標服務器的名稱,可自定義
Hostname 目標服務器的IP地址
Username 發佈用戶(密鑰互信的用戶)
Remote Directory 發佈到目標服務器的相對根路徑,建議填寫/,防止後續填寫路徑異常

在這裏插入圖片描述

構建項目

新建Item---->填入項目名稱---->選擇構建一個自由風格的軟件項目----> 確定

源碼管理 git
Repository URL填寫具體git上的倉庫url https://github.com/baijunyao/thinkphp-bjyblog.git,如果爲私有,需要添加Credentials
在這裏插入圖片描述構建環境 Send files or execute commands over SSH after the build runs
構建後操作:生成運行後通過SSH發送文件或執行命令

表項 內容 含義
Source files **/* 此路徑以Jenkins的工作目錄爲基準,不支持全路徑
Remote directory /var/www/html 此路徑以SSH Server路徑爲基準,不支持絕對路徑
Exec command chown -R apache:apache /var/www/html -

在這裏插入圖片描述
構建
保存並構建,可以點擊console output查看日誌
在這裏插入圖片描述
此時在lnmp主機上查看,程序文件已經成功發佈到目標服務器上
在這裏插入圖片描述
在瀏覽器上訪問,並安裝程序: http://192.168.213.136/Public/install/index.php
在這裏插入圖片描述

故障排查

error: RPCfaied; curl 18 transfer closed with outstanding read data remaining

(1)curl的postBuffer的默認值太小

[root@jenkins ~]# vim .jenkins/.gitconfig	#增加
[http]
    postBuffer = 524288000

(2)調整構建時間

java -Dorg.jenkinsci.plugins.gitclient.Git.timeOut=60 -jar jenkins.war

jenkins自動從github下載代碼編譯,時間不能超過10分鐘

jenkins對接私有倉庫

配置git

(1)在jenkins服務器上生成祕鑰對

[root@jenkins ~]# ssh-keygen -t rsa -C [email protected]

(2)將公鑰放置在git倉庫的祕鑰庫中並ssh連接測試

[root@jenkins ~]# ssh-copy-id -i .ssh/id_rsa [email protected]

在這裏插入圖片描述

配置Jenkins

jenkins使用私有倉庫私有倉庫需要添加Credentials

配置一個Credentials

在jenkins界面,依次點擊:憑據—系統—添加域—添加憑證
類型	SSH Username with private keyPrivate Key爲jenkins主機的私鑰【請確保公鑰已用Username傳到git主機上】

安裝Maven插件

Maven Integration Plugin 或者 Pipeline Maven Integration Plugin

構建任務

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

驗證結果

在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

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