jenkins 簡單實現php集成上線部署

基於公司git版本控制,搭建jenkins實現php集成部署 php

一.安裝jenkins相關依賴html

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配置和啓動java

service jenkins start 
輸入localhost:8080便可訪問。

 

三.插件安裝git

系統管理-插件設置 
安裝如下插件 
Phing(php構建工具) 
Publish Over SSH Plugin(經過ssh發佈代碼)

 

四.配置SSH免登陸shell

參考:ssh免密碼登陸api

 

五.配置Publish Over SSH Plugin服務器

系統管理—系統設置

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>

  

七.開始構建項目less

新建—輸入項目名稱,選擇構建自由風格的軟件項目—下一步

 

八.配置源碼管理(以git爲例)ssh

增長構建步驟,選擇Invoke Phing targets,再新增一個構建步驟,選擇Send files or execute commands over SSH 

 

Phing targets配置以下 

 

 

Send files or execute commands over SSH 配置以下

註釋:工具

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項目運行的目錄
保存便可。
接下來進入項目–當即構建,完成後咱們進入應用服務器,查看代碼。
 
部署完成~ 
相關文章
相關標籤/搜索