企业级自动化代码发布——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/
安装插件,创建管理员用户
企业级自动化代码发布——jenkins部署与项目示例插图

配置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以上
企业级自动化代码发布——jenkins部署与项目示例插图(1)

配置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

企业级自动化代码发布——jenkins部署与项目示例插图(2)

配置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"

企业级自动化代码发布——jenkins部署与项目示例插图(3)

配置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 = xuel@qnchnet.com
[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/

企业级自动化代码发布——jenkins部署与项目示例插图(4)

配置系统环境变量

企业级自动化代码发布——jenkins部署与项目示例插图(5)

密码破解

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 git@192.168.213.136

企业级自动化代码发布——jenkins部署与项目示例插图(6)

SSH Server配置

系统管理一系统设置一Publish over SSH一SSH Server

表项 含义
name 需要将php程序发布到目标服务器的名称,可自定义
Hostname 目标服务器的IP地址
Username 发布用户(密钥互信的用户)
Remote Directory 发布到目标服务器的相对根路径,建议填写/,防止后续填写路径异常

企业级自动化代码发布——jenkins部署与项目示例插图(7)

构建项目

新建Item---->填入项目名称---->选择构建一个自由风格的软件项目----> 确定

源码管理 git
Repository URL填写具体git上的仓库url https://github.com/baijunyao/thinkphp-bjyblog.git,如果为私有,需要添加Credentials
企业级自动化代码发布——jenkins部署与项目示例插图(8)构建环境 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 -

企业级自动化代码发布——jenkins部署与项目示例插图(9)
构建
保存并构建,可以点击console output查看日志
企业级自动化代码发布——jenkins部署与项目示例插图(10)
此时在lnmp主机上查看,程序文件已经成功发布到目标服务器上
企业级自动化代码发布——jenkins部署与项目示例插图(11)
在浏览器上访问,并安装程序: http://192.168.213.136/Public/install/index.php
企业级自动化代码发布——jenkins部署与项目示例插图(12)

故障排查

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 1284915257@qq.com

(2)将公钥放置在git仓库的秘钥库中并ssh连接测试

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

企业级自动化代码发布——jenkins部署与项目示例插图(13)

配置Jenkins

jenkins使用私有仓库私有仓库需要添加Credentials

配置一个Credentials

在jenkins界面,依次点击:凭据—系统—添加域—添加凭证
企业级自动化代码发布——jenkins部署与项目示例插图(14)Private Key为jenkins主机的私钥【请确保公钥已用Username传到git主机上】

安装Maven插件

Maven Integration Plugin 或者 Pipeline Maven Integration Plugin

构建任务

企业级自动化代码发布——jenkins部署与项目示例插图(15)
企业级自动化代码发布——jenkins部署与项目示例插图(16)
企业级自动化代码发布——jenkins部署与项目示例插图(17)
企业级自动化代码发布——jenkins部署与项目示例插图(18)

验证结果

企业级自动化代码发布——jenkins部署与项目示例插图(19)
企业级自动化代码发布——jenkins部署与项目示例插图(20)企业级自动化代码发布——jenkins部署与项目示例插图(21)企业级自动化代码发布——jenkins部署与项目示例插图(22)

没有账号? 忘记密码?

社交账号快速登录