<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 服務 —— Envoy 任務運行器(SSH任務) ## 1、簡介 [Laravel Envoy](https://github.com/laravel/envoy)?為定義運行在遠程主機上的通用任務只支持Mac和Linux操作系統。 ### 1.1 安裝 首先,使用Composer的`global`?命令安裝Envoy: ~~~ composer global require "laravel/envoy=~1.0" ~~~ 確保`~/.composer/vendor/bin`目錄在系統路徑PATH中否則在終端中由于找不到`envoy`而無法執行該命令。 ### 1.1.1 更新Envoy 還可以使用Composer保持安裝的Envoy是最新版本: ~~~ composer global update ~~~ ## 2、編寫任務 所有的Envoy任務都定義在項目根目錄下的`Envoy.blade.php`文件中,下面是一個讓你開始的示例: ~~~ @servers(['web' => 'user@192.168.1.1']) @task('foo', ['on' => 'web']) ls -la @endtask ~~~ 正如你所看到的,`@servers`數組定義在文件頂部,從而允許你在任務聲明中使用`on`選項引用這些服務器,在?`@task`聲明中,應該放置將要在服務器上運行的Bash代碼。 **啟動** 有時候,你需要在評估Envoy任務之前執行一些PHP代碼,可以在Envoy文件中使用`@setup`指令來聲明變量和要執行的PHP代碼: ~~~ @setup $now = new DateTime(); $environment = isset($env) ? $env : "testing"; @endsetup ~~~ 還可以使用`@include`來引入外部PHP文件: ~~~ @include('vendor/autoload.php'); ~~~ **確認任務** 如果你想要在服務器上運行給定任務之前彈出彈出提示進行確認,可以在任務聲明中使用`confirm`指令: ~~~ @task('deploy', ['on' => 'web', 'confirm' => true]) cd site git pull origin {{ $branch }} php artisan migrate @endtask ~~~ ### 2.1 任務變量 如果需要的話,你可以使用命令行開關傳遞變量到Envoy文件,從而允許你自定義任務: ~~~ envoy run deploy --branch=master ~~~ 你可以在任務中通過Blade的“echo”語法使用該選項: ~~~ @servers(['web' => '192.168.1.1']) @task('deploy', ['on' => 'web']) cd site git pull origin {{ $branch }} php artisan migrate @endtask ~~~ ### 2.2 多個服務器 你可以輕松地在多主機上運行同一個任務,首先,添加額外服務器到`@servers`聲明,每個服務器應該被指配一個唯一的名字。定義好服務器后,在任務聲明中簡單列出所有服務器即可: ~~~ @servers(['web-1' => '192.168.1.1', 'web-2' => '192.168.1.2']) @task('deploy', ['on' => ['web-1', 'web-2']]) cd site git pull origin {{ $branch }} php artisan migrate @endtask ~~~ 默認情況下,該任務將會依次在每個服務器上執行,這意味著,該任務在第一臺服務器上運行完成后才會開始在第二臺服務器運行。 ### 2.2.1 平行運行 如果你想要在多個服務器上平行運行,添加`parallel`選項到任務聲明: ~~~ @servers(['web-1' => '192.168.1.1', 'web-2' => '192.168.1.2']) @task('deploy', ['on' => ['web-1', 'web-2'], 'parallel' => true]) cd site git pull origin {{ $branch }} php artisan migrate @endtask ~~~ ### 2.3 任務宏 宏允許你使用單個命令中定義多個依次運行的任務。例如,`deploy`宏會運行git和composer任務: ~~~ @servers(['web' => '192.168.1.1']) @macro('deploy') git composer @endmacro @task('git') git pull origin master @endtask @task('composer') composer install @endtask ~~~ 宏被定義好了之后,你就可以通過如下單個命令運行它: ~~~ envoy run deploy ~~~ ## 3、運行任務 要從`Envoy.blade.php`文件中運行一個任務,需要執行Envoy的`run`命令,然后傳遞你要執行的任務的命令名或宏。Envoy將會運行命令并從服務打印輸出: ~~~ envoy run task ~~~ ## 4、通知 ### 4.1?HipChat 運行完一個任務后,可以使用Envoy的`@hipchat`指令發送通知到團隊的[HipChat](https://www.hipchat.com/)房間,該指令接收一個API令牌、房間名稱、和用戶名: ~~~ @servers(['web' => '192.168.1.1']) @task('foo', ['on' => 'web']) ls -la @endtask @after @hipchat('token', 'room', 'Envoy') @endafter ~~~ 需要的話,你還可以傳遞自定義發送給HipChat房間的消息,所有在Envoy任務中有效的變量在構建消息時也有效: ~~~ @after @hipchat('token', 'room', 'Envoy', "{$task} ran in the {$env} environment.") @endafter ~~~ ### 4.2?Slack 除了HipChat之外,Envoy還支持發送通知到[Slack](https://slack.com/)。`@slack`指令接收一個Slack鉤子URL、頻道名稱、和你要發送給該頻道的消息: ~~~ @after @slack('hook', 'channel', 'message') @endafter ~~~ 你可以通過創建集成到Slack網站的Incoming WebHooks來獲取鉤子URL,該hook參數是由?Incoming Webhooks Slack?集成提供的完整webhook URL,例如: ~~~ https://hooks.slack.com/services/ZZZZZZZZZ/YYYYYYYYY/XXXXXXXXXXXXXXX ~~~ 你可以提供下面兩種其中之一作為頻道參數: * 發送消息到頻道:?`#channel` * 發送消息到用戶:?`@user`
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看