国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Envoy 部署工具

Envoy 部署工具


Laravel Envoy

簡(jiǎn)介

Laravel Envoy 為定義遠(yuǎn)程服務(wù)器的日常任務(wù),提供了一套簡(jiǎn)潔、輕量的語(yǔ)法。Blade 風(fēng)格語(yǔ)法即可實(shí)現(xiàn)部署任務(wù)的配置、Artisan 命令的執(zhí)行等。目前,Envoy 僅支持 Mac 和 Linux 操作系統(tǒng)。.

安裝

首先,運(yùn)行 Composer 的 global require 命令進(jìn)行全局安裝 Envoy:

composer global require laravel/envoy

由于全局 Composer 庫(kù)有時(shí)會(huì)導(dǎo)致包版本沖突,因此您可能希望考慮使用 cgr ,它是 composer global require 命令的直接替代品。  cgr 庫(kù)的安裝說(shuō)明可參閱 found on GitHub.

確保將 ?/ .composer / vendor / bin 目錄放在 PATH 中,以便在終端中運(yùn)行 envoy 命令時(shí)找到 envoy 可執(zhí)行文件。

更新 Envoy

您也可以使用 Composer 使您的 Envoy 安裝保持最新。 使用 composer global update 命令將更新所有全局安裝的 Composer 包:

composer global update

編寫任務(wù)

您的所有 Envoy 任務(wù)都應(yīng)該在項(xiàng)目根目錄中的 Envoy.blade.php 文件中定義。 這是一個(gè)讓你入門的例子:

@servers(['web' => ['user@192.168.1.1']])
@task('foo', ['on' => 'web'])
    ls -la
@endtask

如您所見(jiàn),在文件頂部定義了一個(gè) @server 數(shù)組,允許您在任務(wù)聲明的 on 選項(xiàng)中引用這些服務(wù)器。 在你的 @ task 聲明中,你應(yīng)該放置在任務(wù)執(zhí)行時(shí)應(yīng)該在你的服務(wù)器上運(yùn)行的 Bash 代碼。

您可以通過(guò)將服務(wù)器的 IP 地址指定為 127.0.0.1 來(lái)強(qiáng)制腳本在本地運(yùn)行:

@servers(['localhost' => '127.0.0.1'])

配置

有時(shí),您可能需要在執(zhí)行 Envoy 任務(wù)之前執(zhí)行一些 PHP 代碼。 您可以使用 @ setup 指令聲明變量,并在執(zhí)行任何其他任務(wù)之前執(zhí)行其他常規(guī) PHP 工作:

@setup
    $now = new DateTime();    
    $environment = isset($env) ? $env : "testing";
@endsetup

如果在執(zhí)行任務(wù)之前需要其他 PHP 文件,可以在 Envoy.blade.php 文件的頂部使用 @include 指令:

@include('vendor/autoload.php')
@task('foo')   
 # ...
@endtask

變量

如果需要,您可以使用命令行將選項(xiàng)值傳遞到 Envoy 任務(wù):

envoy run deploy --branch=master

您可以通過(guò) Blade 的「echo」 語(yǔ)法訪問(wèn)任務(wù)中的選項(xiàng)。 您也可以在任務(wù)中使用 if 語(yǔ)句和循環(huán)。 例如,在執(zhí)行 git pull 命令之前,讓我們驗(yàn)證 $ branch 變量的存在:

@servers(['web' => '192.168.1.1'])
@task('deploy', ['on' => 'web'])
    cd site

    @if ($branch)
        git pull origin {{ $branch }}
    @endif

    php artisan migrate
@endtask

Stories

Stories 將一組任務(wù)分組在一個(gè)方便的名稱下,允許您將小型,集中的任務(wù)分組到大型任務(wù)中。 例如, deploy 故事可以通過(guò)在其定義中列出任務(wù)名稱來(lái)運(yùn)行 gitcomposer 任務(wù):

@servers(['web' => '192.168.1.1'])
@story('deploy')
    git
    composer
@endstory

@task('git')
    git pull origin master
@endtask

@task('composer')
    composer install
@endtask

一旦編寫了 story ,你可以像一個(gè)典型的任務(wù)一樣運(yùn)行它:

envoy run deploy

多服務(wù)器

Envoy 允許您輕松跨多個(gè)服務(wù)器運(yùn)行任務(wù)。 首先,在 @server 聲明中添加其他服務(wù)器。 應(yīng)為每個(gè)服務(wù)器分配一個(gè)唯一的名稱。 定義了其他服務(wù)器后,列出任務(wù)的「on」數(shù)組中的每個(gè)服務(wù)器:

@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

并行運(yùn)行

默認(rèn)情況下,將在每個(gè)服務(wù)器上串行執(zhí)行任務(wù)。 換句話說(shuō),任務(wù)將在繼續(xù)在第二臺(tái)服務(wù)器上執(zhí)行之前在第一臺(tái)服務(wù)器上完成運(yùn)行。 如果您想并行運(yùn)行多個(gè)服務(wù)器上的任務(wù),請(qǐng)?jiān)谌蝿?wù)聲明中添加 parallel 選項(xiàng):

@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

運(yùn)行任務(wù)

要運(yùn)行在 Envoy.blade.php 文件中定義的任務(wù)或故事,請(qǐng)執(zhí)行 Envoy 的 run 命令,傳遞您要執(zhí)行的任務(wù)或故事的名稱。 當(dāng)任務(wù)運(yùn)行時(shí), Envoy 將運(yùn)行任務(wù)并顯示服務(wù)器的輸出:

envoy run task

任務(wù)確認(rèn)

如果您希望在服務(wù)器上運(yùn)行給定任務(wù)之前提示您進(jìn)行確認(rèn),則應(yīng)將 confirm 指令添加到任務(wù)聲明中。 此選項(xiàng)對(duì)于破壞性操作特別有用:

@task('deploy', ['on' => 'web', 'confirm' => true])
    cd site
    git pull origin {{ $branch }}
    php artisan migrate
@endtask

消息通知

Slack

Envoy 還支持在執(zhí)行每個(gè)任務(wù)后向 Slack 發(fā)送通知。   @slack 指令接受 Slack 鉤子 URL 和通道名稱。 您可以通過(guò)在 Slack 控制面板中創(chuàng)建 Incoming WebHooks 集成來(lái)檢索您的 webhook URL 。 您應(yīng)該將整個(gè) webhook URL 傳遞給 @slack 指令:

@finished
    @slack('webhook-url', '#bots')
@endfinished

您可以提供以下其中一項(xiàng)作為頻道參數(shù):

  • 給頻道發(fā)送通知: #channel
  • 給用戶發(fā)送通知: @user

Discord

Envoy 還支持在執(zhí)行每項(xiàng)任務(wù)后向 Discord 發(fā)送通知。  @ discord 指令接受 Discord 鉤子 URL 和消息。 您可以通過(guò)在 Webhook 中創(chuàng)建 Webhook 并選擇 webhook 應(yīng)發(fā)布到哪個(gè)頻道來(lái)檢索您的 webhook URL。 您應(yīng)該將整個(gè) Webhook URL 傳遞到 @ discord 指令:

@finished
    @discord('discord-webhook-url')
@endfinished
本文章首發(fā)在 LearnKu.com 網(wǎng)站上。