云效CI/CD教程(PHP項目)

參考文檔

參考云效的官方文檔https://help.aliyun.com/zh/yunxiao/

一、新建代碼庫

這是第一步,和碼云的差不多

二、配SSH密鑰

這個和碼云,github上類似,都需要,云效的SSH密鑰證書不是采用 RSA算法,而是采用了ED25519 算法

步驟一、先確認下,本地公鑰文件是否生成

cd ~/.ssh/

沒有看到ed25519證書

步驟二、生成基于ED25519算法的SSH密鑰

使用ssh-keygen生成證書時,需要帶上參數ed25519,后面就一路回車下去,不用去輸入密碼

ssh-keygen -t ed25519 -C "ali-yunxiao"

密鑰生成在~/.ssh/id_ed25519.pub

步驟三、在云效codeup上設置公鑰

進入https://codeup.aliyun.com的 個人設置,把公鑰拷貝進來,公鑰過期時間不用選擇

提交

本地存在多個git平臺密鑰時,如何自動選擇

當本地存在多個密鑰,如果不設置認證規則,本機將隨機選擇一個密鑰認證,可能造成認證失敗。因此,需要把不同的密鑰配置文件配置在 config文件中

驗證碼云:

ssh -T git@gitee.com

表示成功:

Hi 黃(@allen-huang)! You’ve successfully authenticated, but GITEE.COM does not provide shell access.

驗證阿里云效:

ssh -T git@codeup.aliyun.com

Welcome to Codeup, hjc_042043

三、克隆項目

以ssh的方式clone項目,以laravel項目,SLConsole為例子

git clone git@codeup.aliyun.com:67f508b2228615de936e3d98/SLConsole/main.slconsole.com.git

如果存在現有項目代碼(注意去掉.git目錄),就把代碼拷貝到這個項目下面去,并push上去,最后在云效提交的結果是這樣子的。

四、構建流水線(CI/CD)

上面建立好倉庫之后,就可以來創建流水線了,有了CI/CD機制這樣子可以很方便的來發布和回滾代碼,提高系統的穩定性。

步驟一、選擇流水線模板

選擇流水線模板,這里是PHP,然后點右下角的創建

步驟二、添加流水線源

這個都不用去動,會默認加載倉庫地址,分支以及代碼拉取的預存目錄(工作目錄)

注意,這個默認是在mastert提交后,自動發布到生產服務器,礙于很多時候是小項目開發,直接使用 master,可以關閉掉"開啟代碼源觸發"

這個可以根據自己實際需求來,默認是開啟的。

步驟三、構建PHP

這里是有測試環節先刪除掉,暫時不需要測試

重新創建PHP構建

不選擇PHP鏡像構建

先刪除失效的部分

選擇PHP版本,因為我們用的是laravel10,所以用php8.1

構建物上傳

步驟四、部署主機

1. 選擇制品

勾選下載制品,和選擇制品

2. 創建主機組

這一步很重要,主要是來配置目標服務器組,可以把代碼發布過去,服務器可以是一個或多個

主機組可以根據不同的服務器環境來配置,可以是測試環境,預發布環境,正式環境

從服務器組點進去

選擇服務器,保存

3.選擇服務器組

4.部署腳本

代碼在傳輸到服務器上時,是通過打包的方式傳輸過來,不是git的方式拉取。所以需要解壓出來,在執行服務。部署腳本如下:

# 部署腳本會在部署組的每臺機器上執行。一個典型腳本邏輯如下:先將制品包(在下載路徑中配置的下載路徑)解壓縮到指定目錄中,再執行啟動腳本(通常在代碼中維護,如示例中deploy.sh)。關于這個例子的詳細解釋見 https://help.aliyun.com/document_detail/153848.html # tar zxvf /home/admin/app/package.tgz -C /home/admin/app/
# sh /home/admin/app/deploy.sh restart
# 如果你是php之類的無需制品包的制品方式,可以使用git clone 或者 git pull將源代碼更新到服務器,再執行其他命令 
# git clone ***@***.gitdir="/www/wwwroot/main.slconsole.com"if [ ! -d "$dir" ]; thenmkdir -p "$dir"
fitar -zxvf /home/admin/app/package.tgz -C $dir# 把項目權限改成0755,所有者改成www
chmod -R 0755 $dir
chown -R www:www $dir# 進入laravel項目目錄
cd $dir# 執行腳本,主要預處理的腳本,像composer包的安裝,服務啟動等
/bin/bash start_service_prod.sh >> /www/wwwlogs/main.slconsole.com_devops.log 2>&1 &

將部署腳本貼到這個框里面,并把下面分批數量改成1

步驟五、發布測試

最后流水線的變成這樣子了

發布完成后的

常見問題

1、部署主機

如果需要部署到多主機時,一定需要注意的是,往往我們新的服務器,是從老的服務器鏡像出來的,那么老的服務器都是已經安裝過runner的,所以在新服務器在安裝runner時,會報錯類似 instance i-uf62plfssupo4bphyucf is already registerd as an ecs runner 的錯誤。是說明runner已經安裝,這個是因為新的服務器包含了老的runner,所以先刪除這個runner。

解決:

cd root
rm -rf yunxiao

2、如果存在多個阿里云效倉庫如何clone 代碼

在~/.ssh/config 文件中配置了云效的多倉庫

在克隆代碼時,不能再使用git@codeup.aliyun.com:xxx

而是要是用:

git@[$Host]:6759813cad056eaad2a2e966/bossim

如:

git@codeup-boss-server:6759813cad056eaad2a2e966/bossim

3、代碼在合并到 master 之后自動觸發流水線

這個最好不要自動觸發流水線,因為我們很多一些小項目都是在 master分支上開發的,所以要是每次提交 git 都觸發,那是比較危險的事情,代碼會自動提交到遠程服務器上去了

有兩種方式來處理:

方法一:

方法二,在發布時,需要去手動觸發一下

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/916212.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/916212.shtml
英文地址,請注明出處:http://en.pswp.cn/news/916212.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

單片機是怎么控制的

單片機作為電子系統的控制核心,通過接收外部信號、執行預設程序、驅動外部設備的方式實現控制功能,其控制過程涉及信號輸入、數據處理和指令輸出三個關鍵環節,每個環節的協同配合決定了整體控制效果。 信號輸入:獲取外部信息 單片…

deepseek本地部署,輕松實現編程自由

小伙伴們,大家好,今天我們來實現deepseek本地部署,輕松實現編程自由!安裝ollama 安裝ollama 首先我們安裝ollama 打開ollama官網,下載安裝符合自己系統的版本。 找到要安裝的模型deepseek-r1開始-運行 輸入cmd出現…

基礎NLP | 常用工具

編輯器 PycharmVSCodeSpyderPython 自帶 ideVim 機器學習相關python框架 Pytorch 學術界寵兒,調試方便,目前的主流Tensorflow 大名鼎鼎,工程配套完善Keras 高級封裝,簡單好用,現已和Tensorflow合體Gensim 訓練詞向…

Unity3D + VR頭顯 × RTSP|RTMP播放器:構建沉浸式遠程診療系統的技術實踐

一、背景:遠程醫療邁入“沉浸式協同”的新階段 過去,遠程醫療主要依賴視頻會議系統,實現基礎的遠程問診、會診或術中指導。雖然初步解決了地域限制問題,但其單視角、平面化、缺乏沉浸感與交互性的特征,已無法滿足臨床…

海云安斬獲“智能金融創新應用“標桿案例 彰顯AI安全左移技術創新實力

近日,由中國人民銀行廣東省分行、廣東省金融管理局、廣東省政務服務和數據管理局指導,廣東省金融科技協會主辦的“智能金融 創新應用”優秀案例名單最終揭曉,海云安開發者安全助手系統項目憑借其創新的"AI安全左移"技術架構&#x…

Fluent許可與網絡安全策略

在流體動力學模擬領域,Fluent軟件因其卓越的性能和廣泛的應用而備受用戶青睞。然而,隨著網絡安全威脅的不斷增加,確保Fluent許可的安全性和合規性變得尤為重要。本文將探討Fluent許可與網絡安全策略的關系,為您提供一套有效的安全…

如何借助AI工具?打贏通信設備制造的高風險之戰?(案例分享)

你是否曾在項目管理中遇到過那種讓人心跳加速的瞬間,當一項風險突然暴露出來時,全隊似乎都屏住了呼吸?今天,我就來分享一個我親歷的項目案例,講述我們如何借助具體的AI工具,實現從數據到決策的華麗轉變&…

Web服務器(Tomcat、項目部署)

1. 簡介 1.1 什么是Web服務器 Web服務器是一個應用程序(軟件),對HTTP協議的操作進行封裝,使得程序員不必直接對協議進行操作,讓Web開發更加便捷。主要功能是"提供網上信息瀏覽服務"。 Web服務器是安裝在服…

list 介紹 及 底層

list的相關文檔:list - C Reference 一、list的介紹及使用 list中的接口比較多,此處類似,只需要掌握如何正確的使用,然后再去深入研究背后的原理,已達到可擴展的能力。以下為list中一些常見的重要接口。我們庫里的list…

HCIP MGRE實驗

一、實驗要求 1、R5為ISP,只能進行IP地址配置,其所有地址均配為公有Ip地址; 2、 R1和R5間使用PPP的PAP認證,R5為主認證方; R2與R5之間使用PPP的CHAP認證,R5為主認證方; R3與R5之間使用HDLC封裝; 3、R2、R3構建一…

基于PyTorch的多視角二維流場切片三維流場預測模型

基于PyTorch的多視角二維流場切片三維流場預測模型 前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家,覺得好請收藏。點擊跳轉到網站。 1. 引言 計算流體動力學(CFD)在工程設計和科學研究中扮演…

全新輕量化PHP網盤搜索引擎系統源碼

內容目錄一、詳細介紹二、效果展示1.部分代碼2.效果圖展示三、學習資料下載一、詳細介紹 全新輕量化PHP網盤搜索引擎系統源碼 基于PHPMYSQL開發 一、多樣篩選功能:網站支持5類篩選功能,包括默認搜索、網盤類型、文件大小、時間排序以及網盤來源&#x…

C study notes[3]

文章目錄operatonsloopsreferencesoperatons the fundamental operators such as ,-,* in C language can be simply manipulated. int sum 5 3; // sum 8 int difference 10 - 4; // difference 6 int product 6 * 7; // product 42the operator / was left to in…

練習實踐-基礎設施-文件共享-windows和linux之間的文件共享-smb服務搭建

參考來源: 在線書籍-linux就該這么學-第12章 安裝軟件包 配置文件/etc/samba/smb.conf 運維對待配置文件的態度,非必要不增加 安裝完畢后打開Samba服務程序的主配置文件,好在參數并不多,只有37行。其中第17~22行代…

常用設計模式系列(十三)—組合模式

常用設計模式系列(十三)—組合模式 第一節 前言 hello大家好,今年已經過去了一半,年初立下的flag,不知道實現了沒有,你的flag改了多少次?無論自己的愿望是否完成,我們都應該懷揣著追…

字節碼操作工具——ByteBuddy應用(3)安全檢查

一、檢測方法名是否符合規范1、代碼(1)MethodLoggerAgentpackage com.example.agent;import net.bytebuddy.agent.builder.AgentBuilder; import net.bytebuddy.asm.Advice; import net.bytebuddy.matcher.ElementMatchers;import java.lang.instrument.…

NineData 數據庫 DevOps 全面支持 GaussDB,國產化管理再升級!

NineData 數據庫 DevOps 平臺現已全面兼容 GaussDB 全線產品(包括 GaussDB 企業級、DWS 數據倉庫、openGauss 開源版),實現一站式管理。無論 GaussDB 實例部署在哪個環境,企業所有開發者都可以通過 NineData 統一訪問,…

C++ - 模板進階

一、非類型模板參數模板參數 分為 類型形參與 非類型形參。 類型形參:出現在模板參數列表中,跟在 class 或者 typename 之類的參數類型名稱。 非類型形參,就是用一個常量作為類(函數)模板的一個參數,在類(函數)模板中可將該參數…

【質量管理】軟件缺陷管理實施方案(專業版)

引言 方案目標與范圍 本方案以CMMI量化管理要求與ISO 9000質量體系為框架,核心目標是通過標準化缺陷管理流程實現缺陷全生命周期可控。具體包括:確保軟件缺陷在全生命周期中被及時發現與修復,減少其對軟件質量、發布計劃及用戶體驗的負面影響;以“零缺陷”為首要目標,針對…

Elasticsearch 講解及 Java 應用實戰:從入門到落地

在數據量爆炸的今天,傳統數據庫的查詢能力越來越難以滿足復雜的檢索需求。比如電商平臺的商品搜索,需要支持關鍵詞模糊匹配、多條件篩選、熱門度排序等功能,這時候 Elasticsearch(簡稱 ES)就成了最佳選擇。作為一款分布…