欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

jenkins 简单实现php集成上线部署

程序员文章站 2022-03-30 16:41:36
基于公司git版本控制,搭建jenkins实现php集成部署 一.安装jenkins相关依赖 二.jenkins配置和启动 service jenkins start 输入localhost:8080即可访问。 三.插件安装 系统管理-插件设置 安装以下插件 Phing(php构建工具) Publi ......

基于公司git版本控制,搭建jenkins实现php集成部署 

一.安装jenkins相关依赖

wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo 
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key 
yum install jenkins 
yum install java 
yum install java-1.8.0-openjdk 
yum install php 
yum install php-devel 
yum install php-pear 
yum install re2c 
yum install php-pear-phing 

  

二.jenkins配置和启动

service jenkins start 
输入localhost:8080即可访问。

 

三.插件安装

系统管理-插件设置 
安装以下插件 
Phing(php构建工具) 
Publish Over SSH Plugin(通过ssh发布代码)

 

四.配置SSH免登录

参考:ssh免密码登录

 

五.配置Publish Over SSH Plugin

系统管理—系统设置

jenkins 简单实现php集成上线部署

Jenkins SSH Key:生成rsa的时候设置的ssh key,若没有设置则留空。 
Key:填上发布服务器(jenkins所在机器)私钥的内容。默认路径 ~/.ssh/id_rsa 
Hosename:填上部署服务器(应用服务器)的IP 
username:填上部署服务器(应用服务器)的帐号
 
六.配置phing build.xml
进入当前job的项目目录  例如:cd /var/lib/jenkins/workspace/git
build.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project name="api" default="build">
        <target name="build" depends="make_runtime,check,tar"/>
        <property name="version-m"  value="1.1" />
        <property name="version"    value="1.1.0" />
        <property name="stability"  value="stable" />
        <property name="releasenotes" value="" />
        <property name="tarfile"     value="${phing.project.name}.${buildnumber}.${buildid}.tar.gz" />
        <property name="pkgfile"     value="${phing.project.name}.${version}.tgz" />
        <property name="distfile"    value="dist/${tarfile}" />
        <property name="tests.dir" value="test" />
        <fileset id="api.tar.gz" dir=".">
 注意:此处为对上传文件的限制,这里还可以使用 exclude 排除文件和文件夹,如果没有限制默认为上传所有
            <include name="test/**"/>  
            <include name="*.php"/>
            <include name="*.xml"/>
        </fileset>
        <target name="make_runtime">
                <mkdir dir="${project.basedir}/Runtime" />
                <mkdir dir="${project.basedir}/build/logs" />
                <mkdir dir="${project.basedir}/build/pdepend" />
                <mkdir dir="${project.basedir}/build/code-browser" />
        </target>

        <target name="check" description="Check variables" >
            <fail unless="version" message="Version not defined!" />
            <fail unless="buildnumber" message="buildnumber not defined!" />
            <fail unless="buildid" message="buildid not defined!" />
            <delete dir="dist" failonerror="false" />
            <mkdir dir="dist" />
        </target>

        <target name="tar" depends="check" description="Create tar file for release">
            <echo msg="Creating distribution tar for ${phing.project.name} ${version}"/>
            <delete file="${distfile}" failonerror="false"/>
            <tar destfile="${distfile}" compression="gzip">
                <fileset refid="api.tar.gz"/>
            </tar>
        </target>
</project>

  

七.开始构建项目

新建—输入项目名称,选择构建*风格的软件项目—下一步

jenkins 简单实现php集成上线部署

 

八.配置源码管理(以git为例)

jenkins 简单实现php集成上线部署

增加构建步骤,选择Invoke Phing targets,再新增一个构建步骤,选择Send files or execute commands over SSH 

jenkins 简单实现php集成上线部署

 

Phing targets配置如下 

jenkins 简单实现php集成上线部署

 

 

Send files or execute commands over SSH 配置如下

jenkins 简单实现php集成上线部署

注释:

Source files:dist/api.${BUILD_NUMBER}.${BUILD_ID}.tar.gz 
Remove prefix:dist/ 
Remote directory: /home/data/ 
Exec command: 
mkdir -p /home/data/ 
mkdir-p /home/www/ 
cd /home/data/ 
tar -zxf api.${BUILD_NUMBER}.${BUILD_ID}.tar.gz -C /home/www/ 
 
**此处可以写进入到 应用服务器的shell脚本,例如给指定文件夹分配权限
 
/test/data/ 为应用服务器接收打包文件的目录 
/test/www/ 为应用服务器PHP项目运行的目录
保存即可。
接下来进入项目–立即构建,完成后我们进入应用服务器,查看代码。
 
部署完成~