1. 程式人生 > >jenkins 實現PHP持續整合部署

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免登入

假設有兩臺伺服器。A為釋出機,即jenkins所在機器。B為應用伺服器,即執行PHP的伺服器。
首先在A伺服器生成公私鑰。
ssh-keygen -t rsa

這時.ssh目錄下會生成私鑰和公鑰的鍵值對id_rsa,id_rsa.pub

將id_rsa.pub公鑰複製到B伺服器上,並重命名為authorized_keys。
scp ~/.ssh/ras.pub

[email protected]:/root/.ssh/authorized_keys

這時候ssh到B伺服器則無需登入密碼。
ssh [email protected]

注:若生成RSA密碼的時候設定了ssh key,SSH到B伺服器的時候還需要輸入相應ssh key。

配置Publish Over SSH Plugin

系統管理—系統設定
這裡寫圖片描述

這裡寫圖片描述
Jenkins SSH Key:生成rsa的時候設定的ssh key,若沒有設定則留空。
Key:填上A伺服器私鑰的內容。預設路徑 ~/.ssh/id_rsa
Hosename:填上B伺服器的IP
username:填上B伺服器的帳號

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

這裡我們只做簡單釋出,沒有加入php-unit等外掛。

開始構建專案

新建—輸入專案名稱,選擇構建自由風格的軟體專案—下一步

配置原始碼管理

這裡我們用的是GIT
這裡寫圖片描述

增加構建步驟,選擇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/

/home/data/ 為B伺服器接收打包檔案的目錄
/home/www/ 為B伺服器PHP專案執行的目錄

儲存即可。

接下來進入專案–立即構建,完成後我們進入B伺服器。

cd /home/data

這裡寫圖片描述

至此已經大功搞成了。

相關推薦

jenkins 實現PHP持續整合部署

安裝jenkins相關依賴 wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo rpm --import https://jenkin

jenkins+maven+git持續整合部署問題總結

1、這個問題出現在單獨構建一個專案的子模組時,很奇怪,構建父專案沒有問題。 Executing Maven: -N -B -f /root/.jenkins/workspace/newMer/pom.xml clean install -Dmaven.tes

[C#]使用 Jenkins + TFS 為 .Net Core 實現持續整合/部署

在前後端分離開發的專案當中為了避免重複構建釋出,我們需要部署一個持續釋出環境,而目前的開發環境伺服器都是基於 CentOS 的,因此每次在本地釋出之後還需要打包,上傳,部署,十分繁瑣。故這裡採用了比較成熟的Jenkins 作為持續部署環境。 為了方便安裝,我們這裡使用了 Docker 來進行安裝,至於 Doc

Gitlab安裝--jenkins安裝--(持續整合+自動化部署

參考地址:http://blog.51cto.com/12832314/2140304 Gitlab+jenkins持續整合+自動化部署 環境: centos6.5 一,gitlab安裝 0,java環境部署

jenkins+docker+git+springboot實現持續自動化部署

本篇文章引導你使用Jenkins部署SpringBoot專案,同時使用Docker和Git實現簡單的持續整合和持續部署。(專案地址:first-app-demo)流程圖如下:push程式碼到Github觸發WebHook。(因網路原因,本篇使用gitee)Jenkins從倉庫

AWS Lambda 配合 Jenkins 實現自動化持續部署

AWS Lambda是AWS無伺服器框架中的重要組成部分,而開發、測試和部署Lambda函式需要經過一個較為枯燥的過程:在整合開發環境(IDE)中編寫函式,然後將其打包,並上傳到AWS使用控制檯進行測試。事實上,您可以在本地進行編寫測試,並將其上傳到自己的程式碼庫,然後使用CICD(Cont

Jenkins+Gradle+Git+Centos 實現android持續整合、打包(超詳細)

這回分享下使用jenkins+gradle給android打包,伺服器環境是centos7.1 首先,對於新伺服器,你可能需要依次安裝jdk 、android sdk 、gradle、jenkins 一、安裝jdk 1、從官方網站下載最新jdk  http://w

學習jenkins+git+gradle實現Android持續整合心得總結

今天有空學習了下jenkins在Android上的應用,一下午的時間,最終看到了讓人激動的畫面 下面說正題,總結了下步驟如下: 1、下載jenkins的war包,安裝,啟動。 2、登入jenkins,安裝外掛 3、配置系統配置 4、建立任務 5、構建任務 6、拿到ap

基於Jenkins 實現php專案的自動化測試、自動打包和自動部署

   本篇博文宅鳥將在上篇: 基於Jenkins 搭建持續整合環境 的基礎上,繼續介紹Jenkins結合php專案實現自動化測試和自動部署。廢話不再多說,直接上幹活。    宅鳥所使用的server為Ubuntu    要實現在jenkins中實現php的自動化測試,首先需要Jenkins伺服器上安裝ph

基於Jenkins 實現php專案的自動化測試、自動打包和自動部署(-)

基於Jenkins 實現php專案的自動化測試、自動打包和自動部署(一) 身在創業公司,碰到任何問題,都得擼起袖子加油幹: 隨著專案團隊的不斷擴大,專案因為人員的參差不齊導致各種各樣的問題。於是引入jenkins持續整合。 廢話不多說,先普及基礎概念

Jenkins 可擴充套件持續整合引擎全流程(自動構建-自動部署

Jenkins是一個開源軟體專案,是基於Java開發的一種持續整合工具,用於監控持續重複的工作,旨在提供一個開放易用的軟體平

Jenkins Android APP 持續整合體系建設二—自動部署、執行測試任務,關聯打包任務

經過上一遍部落格我們知道了怎麼使用Jenkins自動打包,但打完包之後,我們還需要對新包進行迴歸測試,確定新包有沒有問題,然後才能釋出包,那麼,話不多說,我們先來新建個自動化迴歸測試任務 #新包自動化迴歸任務 ##1、新建一個測試新包的專案 ![](https://img2020.cnblogs.com/bl

Git + Maven + Jenkins 實現分布式部署

HR chm get 啟動 我們 img 打開 相對時間 AD 一、安裝 和 準備工作 我們選擇了用 Tomcat 服務器下 war 包的安裝方式。Jenkins 的下載地址:http://mirrors.jenkins-ci.org/,打開鏈接後,表格有wa

JDK+Jmeter+Ant+Jenkins介面自動化持續整合環境搭建與執行

一、簡介 本文章主要是介紹介面自動化持續整合環境搭建以及測試例項,Apache JMeter是Apache組織開發的基於Java的介面和效能測試工具。 Apache Jmeter是一個100%的純java桌面應用,主要是針對web的壓力和效能測試,但後來擴充套件到其他測試領域。Jmeter可以用於測試

Android Jenkins+Git+Gradle持續整合

首先到Jenkins的官網下載https://jenkins.io,安裝jenkins不再贅述然後是外掛安裝如下注意:列表中為主要外掛,而Jenkins的外掛是有依賴關係的,安裝一個外掛可能要先安裝它依賴的外掛,否則會安裝失敗。在可選外掛勾選列表中的外掛即可,依賴外掛會自動下載,是不是很棒。 Git plug

Jenkins軟體開發持續整合及自動構建

1. jenkins簡介 1.1. 什麼是敏捷開發 敏捷開發以使用者的需求進化為核心,採用迭代、循序漸進的方法進行軟體開發。在敏捷開發中,軟體專案在構建初期被切分成多個子專案,各個子專案的成果都經過測試,具備可視、可整合和可執行使用的特徵。換言之,就是把一個大專案分為多個

Jenkins+Sonar搭建持續整合和程式碼質量檢查環境

Jenkins+Sonar搭建 一、相關環境及下載地址 二、軟體安裝 Jenkins安裝 命令:dpkg –i jenkins_2.121.3_all.deb 若有報錯,執行# apt-get update 和# apt-get –f install, # ln -s /opt/jdk1.8.0_131/b

Springboot Gitlab Jenkins Maven Docker 持續整合/持續交付

Gilab安裝教程 http://blog.csdn.net/chenhaifeng2016/article/details/78603216 http://blog.csdn.net/chenhaifeng2016/article/details/78603932 Je

Jenkins Pipeline 專案持續整合互動實踐路徑

Jenkins Pipleline外掛介紹Jenkins 2.x的精髓是Pipeline as Code,是幫助Jenkins實現CI到CD轉變的重要角色。什麼是Pipeline,簡單來說,就是一套運行於Jenkins上的工作流框架,將原本獨立運行於單個或者多個節點的任務連線

Jenkins+Docker搭建持續整合測試環境

https://sanwen8.cn/p/22e2dDy.html 關於Jenkins Jenkins是被廣泛應用的持續整合、自動化測試、持續部署的框架,甚至有些專案組順便將其用來做流程管理的工具。根據任務的多寡,Jenkins通常有兩種典型的部署方式。 單節點(Ma