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

来源:https://www.cnblogs.com/phpworld/archive/2018/04/08/8745544.html
-Advertisement-
Play Games

基於公司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 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>

  

七.開始構建項目

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

 

八.配置源碼管理(以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/    **此處可以寫進入到 應用伺服器的shell腳本,例如給指定文件夾分配許可權   /test/data/ 為應用伺服器接收打包文件的目錄  /test/www/ 為應用伺服器PHP項目運行的目錄 保存即可。 接下來進入項目–立即構建,完成後我們進入應用伺服器,查看代碼。   部署完成~ 

 

 
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 因為對錶達式樹有點興趣,出於練手的目的,試著寫了一個深拷貝的工具庫。支持.net standard2.0或.net framework4.5及以上。 GitHub地址https://github.com/blurhkh/DeepCopier nuget地址https://www.nuget.org/ ...
  • 從剛剛開始接觸ORM到現在已有超過八年時間,用過了不少ORM框架也瞭解了不少ORM框架,看過N種關於ORM框架的相關資料與評論,各種言論讓人很難選擇。在ORM的眾多問題中最突出的問題是關於性能方面的問題,因此我在看了國外的一遍文章(Dapper vs Entity Framework vs ADO. ...
  • 假期剛剛搭完,先寫個提綱,今晚寫完: 1.申請一個月的免費的雲伺服器ECS; 2.在雲伺服器上安裝Java開發環境+Sql Server+Tomcat; 3.購買功能變數名稱並認證,綁定伺服器共有IP地址; 4.其它註意事項. ...
  • 出現類似提示: Failed to connect to the database: could not connect to server: Connection refused Is the server running on host "localhost" (::1) and accepti ...
  • 在linux系統中, 普通用戶的許可權很低, 比如shutdown關機, 或者yum install安裝軟體等很多命令都需要root用戶許可權來運行. 普通用戶想要執行這些命令, 要麼使用su命令切換為root用戶, 而使用su命令需要輸入root密碼, 當伺服器很多人共同管理, 所有管理員都需要知道r ...
  • 1、刪除重覆記錄 ①先查詢出重覆的數據,然後通過ID號批量刪除,ID號可以導出到Excel,在Excel中,整理好ID順序. select name from users group by name having count(1)>1;提取ID號 ...
  • 保護對象的屬性 如果有一個對象,當需要對其進行修改屬性時,有2鐘方法: 對象名.屬性名 = 數據 >直接修改 對象名.方法名() >間接修改 為了更好的保存屬性的安全,即不能隨意修改,一般的處理方式為: 將屬性定義為私有屬性 添加一個可以調用的方法,供調用 運行結果為: 修改代碼: 運行結果: 總結 ...
  • crontab是每個運維一線人員必須掌握的技術,熟練運用crontab可以自動幫助我們執行重覆性的工作,提高運維的工作效率。它就像一個鬧鐘,在特定的時間,準時響應並執行相應的任務。如果你的工作經常與Linux打交道,那麼你可以繼續往下看,瞭解crontab的一般性故障排查。 本次的故障發生在生產環境 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...