前言
在上一篇,我們已經成功在開發機上部署了Deploy專案,下面我們繼續在開發機上安裝Envoy
兩臺應用服務器的IP
192.168.10.12
192.168.10.18
【高可用架構】系列鏈接:待部署的架構介紹
演示
安裝envoy
全域安裝envoy,你也可以安裝在當前專案下
composer global require laravel/envoy
在專案的根目錄下創建Envoy.blade.php檔案,首先我們先來測驗一下Envoy是否可以正常作業
# vi Envoy.blade.php
@servers(['app-1' => '[email protected]', 'app-2' => '[email protected]']) # 定義多個APP服務器
@task('deploy', ['on' => ['app-1', 'app-2']])
cd /var/www #專案所在地
ls -la
@endtask
運行Envoy
envoy run deploy

發現沒有envoy命令,這主要是開發機沒有配置composer環境變數,大家如果按照【Linux系統】來部署環境,就不會出現這個問題,
設定composer環境變數
# vi ~/.bashrc
PATH=$PATH:/root/.config/composer/vendor/bin
保存后,執行source ~/.bashrc,使其生效
再執行envoy命令

執行成功,可以正常訪問兩臺APP服務器,中途可能需要輸入密碼,先正常輸入,我們后面去解決,
部署專案
在部署專案之前,修改下.gitignore檔案
.env #這行去掉
添加初始化任務
# vi Envoy.blade.php
@task('init', ['on' => ['app-1', 'app-2']])
mkdir -p /var/www/ #統一專案地址
cd /var/www/
git clone [email protected]:SexyPhoenix/Deploy.git #部署的github專案,在github專案中復制鏈接
cd Deploy
composer install --no-dev
chmod -R 0777 storage
@endtask
執行任務
envoy run init
運行成功
更新專案
在開發機上修改Deploy/resources/views/welcome.blade.php檔案84行
服務器IP:{{ $server_ip }}
提交修改
git add .
git commit -m 'fix IP name'
git push
修改deploy任務
# vi Envoy.blade.php
@task('deploy', ['on' => ['app-1', 'app-2']])
cd /var/www/Deploy
git pull origin master
@endtask
執行任務
envoy run deploy
兩臺APP服務器更新成功

免密碼登錄
在執行任務的時候總是要求輸入密碼,現在來解決一下這個問題
在開發機上執行下面命令
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] # 這里只有18機要求密碼
這個原理就是將開發機上的公鑰注冊到18機的authorized_keys里面
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/35290.html
標籤:架構設計
上一篇:“資料中臺”的再思考
