ホームページ >バックエンド開発 >PHPチュートリアル >[ Laravel 5.2 ドキュメント ] サービス -- Envoy タスクランナー
Laravel Envoy は、リモートホスト上で実行される一般的なタスクを定義するためのクリーンで単純化された構文を提供します。 Blade スタイルの構文を使用すると、開発用のタスクやアーティザン コマンドなどを簡単に設定できます。現在、Envoy は Mac と Linux オペレーティング システムのみをサポートしています。
まず、Composer のグローバル コマンドを使用して Envoy をインストールします:
composer global require "laravel/envoy=~1.0"
~/.composer/vendor/bin ディレクトリがシステム パス PATH にあることを確認してください。そうでない場合、envoy をインストールできないため、ターミナルでコマンドを実行できません。見つかった。
Envoy を更新する
Composer を使用して、インストールされている Envoy を最新バージョンに保つこともできます。
composer global update2. タスクを書き込む
@servers(['web' => 'user@192.168.1.1'])@task('foo', ['on' => 'web']) ls -la@endtaskご覧のとおり、@servers 配列はファイルの先頭で定義されているため、@task 宣言の on オプションを使用してこれらのサーバーを参照できます。 、実行する Bash コードを配置する必要があります。
スタートアップ
Envoy タスクを評価する前に、いくつかの PHP コードを実行する必要がある場合があります。Envoy ファイルで @setup ディレクティブを使用して、変数と実行される PHP コードを宣言できます。
@setup $now = new DateTime(); $environment = isset($env) ? $env : "testing";@endsetup@ を使用することもできます。外部 PHP ファイルを導入するためにインクルードします:
@include('vendor/autoload.php');タスクの確認
サーバー上で特定のタスクを実行する前に確認のポップアップ プロンプトが必要な場合は、タスク ステートメントで確認ディレクティブを使用できます:
@task('deploy', ['on' => 'web', 'confirm' => true]) cd site git pull origin {{ $branch }} php artisan migrate@endtask2.1 タスク変数
envoy run deploy --branch=masterBlade の「echo」構文を介してタスクでこのオプションを使用できます:
@servers(['web' => '192.168.1.1'])@task('deploy', ['on' => 'web']) cd site git pull origin {{ $branch }} php artisan migrate@endtask2.2 複数のサーバー
@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番目のサーバー。
並列実行
複数のサーバーで並列実行したい場合は、タスク宣言に並列オプションを追加します:
@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@endtask2.3 タスク マクロ
@servers(['web' => '192.168.1.1'])@macro('deploy') git composer@endmacro@task('git') git pull origin master@endtask@task('composer') composer install@endtaskマクロを定義した後は、次の 1 つのコマンドで実行できます:
envoy run deploy
envoy run task
@servers(['web' => '192.168.1.1'])@task('foo', ['on' => 'web']) ls -la@endtask@after @hipchat('token', 'room', 'Envoy')@endafter
必要に応じて、Envoy タスクで有効なすべての変数は、メッセージの作成時にも有効です:
@after @hipchat('token', 'room', 'Envoy', "{$task} ran in the {$env} environment.")@endafter
4.2 Slack
@after @slack('hook', 'channel', 'message')@endafter
Slack Web サイトに統合された Incoming WebHook を作成することでフック URL を取得できます。フック パラメータは Incoming によって統合されます。 Webhook Slack 完全な Webhook URL を指定します。例:
https://hooks.slack.com/services/ZZZZZZZZZ/YYYYYYYYY/XXXXXXXXXXXXXXX
次の 2 つのいずれかをチャネル パラメーターとして指定できます:
チャネルにメッセージを送信します: #channel