【高可用架構】藉助Envoy工具發佈項目到多臺服務器(二)

前言


在上一篇,咱們已經成功在開發機上部署了Deploy項目,下面咱們繼續在開發機上安裝Envoyphp

兩臺應用服務器的IPhtml

192.168.10.12laravel

192.168.10.18git

【高可用架構】系列連接:待部署的架構介紹github

演示


安裝envoy

全局安裝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

2

發現沒有envoy命令,這主要是開發機沒有配置composer環境變量,你們若是按照【Linux系統】來部署環境,就不會出現這個問題。app

設置composer環境變量composer

# vi ~/.bashrc
PATH=$PATH:/root/.config/composer/vendor/bin

保存後,執行source ~/.bashrc,使其生效

再執行envoy命令

3

執行成功,能夠正常訪問兩臺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服務器更新成功

4

免密碼登陸

在執行任務的時候老是要求輸入密碼,如今來解決一下這個問題

在開發機上執行下面命令

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.10.18 # 這裏只有18機要求密碼

這個原理就是將開發機上的公鑰註冊到18機的authorized_keys裏面

相關文章
相關標籤/搜索