在上一篇,咱們已經成功在開發機上部署了Deploy項目,下面咱們繼續在開發機上安裝Envoyphp
兩臺應用服務器的IPhtml
192.168.10.12laravel
192.168.10.18git
【高可用架構】系列連接:待部署的架構介紹github
全局安裝envoy,你也能夠安裝在當前項目下bash
composer global require laravel/envoy
在項目的根目錄下建立Envoy.blade.php文件,首先咱們先來測試一下Envoy是否能夠正常工做服務器
# vi Envoy.blade.php @servers(['app-1' => 'root@192.168.10.12', 'app-2' => 'root@192.168.10.18']) # 定義多個APP服務器 @task('deploy', ['on' => ['app-1', 'app-2']]) cd /var/www #項目所在地 ls -la @endtask
運行Envoy架構
envoy run deploy
發現沒有envoy命令,這主要是開發機沒有配置composer環境變量,你們若是按照【Linux系統】來部署環境,就不會出現這個問題。app
設置composer環境變量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 git@github.com: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 root@192.168.10.18 # 這裏只有18機要求密碼
這個原理就是將開發機上的公鑰註冊到18機的authorized_keys裏面