目次
Envoy Task Runner
概要
インストール
タスクをコンパイルします
タスク変数
複数のサーバー
タスク マクロ
タスクの実行
Notification
HipChat
Slack
ホームページ バックエンド開発 PHPチュートリアル Laravel 基本チュートリアル -- SSH タスク

Laravel 基本チュートリアル -- SSH タスク

Jun 20, 2016 am 09:37 AM

Envoy Task Runner

概要

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 update
ログイン後にコピー

タスクをコンパイルします

すべての Envoy タスクは次のようにする必要がありますプロジェクトのルート ディレクトリにある Envoy.blade.php ファイルで定義されます。簡単な例を次に示します。

@servers(['web' => 'user@192.168.1.1'])@task('foo', ['on' => 'web'])  ls -al@endtask
ログイン後にコピー

ご覧のとおり、@servers ディレクティブはファイルの先頭で定義されており、サーバーのリストを含む配列が含まれています。 @task ディレクティブはタスクを定義するために使用されます。配列にはタスク名と配列パラメータが含まれ、その値はタスクが実行されるサーバーです。 @servers ディレクティブ リスト。 @task ディレクティブ内に Bash コードを配置する必要があります。このコードは、タスクの実行時にリモート サーバーに渡されます。

ローカル タスク

サーバーをローカルとして指定してローカル タスクを実行できます:

@servers(['localhost' => '127.0.0.1'])
ログイン後にコピー

ブート

場合によっては、Envoy タスクを実行する前に特定の PHP 操作を実行する必要がある場合があります。 @setup ディレクティブを使用して変数を宣言でき、PHP を使用してその内部で作業できます:

@setup  $now = new DateTime();  $environment = isset($env) ? $env : "testing";@endsetup
ログイン後にコピー

また、@include ディレクティブを使用して外部 PHP ファイルを含めることもできます:

@include('vendor/autoload.php')
ログイン後にコピー

タスクの確認

リモートサーバーが特定のタスクを実行する前にプロンプ​​トを表示したい場合は、タスク定義に確認ディレクティブを追加できます:

@task('deploy', ['on' => 'web', 'confirm' => true])  cd site  git pull origin {{ $branch }}  php artisan migrate@endtask
ログイン後にコピー

タスク変数

必要に応じて、コマンド ライン スイッチを使用して 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
ログイン後にコピー

複数のサーバー

複数のサーバーにわたってタスクを簡単に実行できます。まず、@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
ログイン後にコピー

デフォルトでは、タスクはサーバー間で連続して実行されます。これは、現在のサーバーのタスクが完了した後にのみ、次のサーバーのタスクが実行されることを意味します。

並列実行

サーバー間でタスクを並列実行する場合。タスク ディレクティブに並列オプションを追加できます。

@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
ログイン後にコピー

タスク マクロ

タスク マクロを使用すると、一連のタスクを順番に実行するコマンドを定義できます。たとえば、git タスクとコンポーザー タスクを実行するデプロイ マクロを定義します。

@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.blade.php ファイルで定義されたタスクを実行するには、Envoy の run コマンドを使用する必要があります。タスク名またはマクロ名をコマンドに渡すことができます。 Envoy はタスクを実行し、サーバー実行の出力を同期して表示します:

envoy run task
ログイン後にコピー

Notification

HipChat

後でメッセージを送信するには @hipchat コマンドを使用できます。タスクの実行が完了すると、メッセージがチームの HipChat ルームに通知されます。このコマンドは、メッセージに示されている API トークン、ルーム名、送信者のユーザー名を受け取ります:

@servers(['web' => '192.168.1.1'])@task('foo', ['on' => 'web'])  ls -al@endtask@after  @hipchat('token', 'room', 'Envoy')@endafter
ログイン後にコピー

必要に応じて、カスタム メッセージを HipChat ルームに送信することもできます。メッセージを作成するとき、タスクで使用できる変数もメッセージ内で使用できます:

@after  @hipchat('token', 'room', 'Envoy', "$task ran in the $env environment.")@endafter
ログイン後にコピー

Slack

HipChat に加えて、Envoy は Slack への通知の送信もサポートしています。 @slack コマンドは、Slack フック URL、チャネル名、および送信する必要があるメッセージのコンテンツを受け取ります:

@after  @slack('hook', 'channel', 'message')@endafter
ログイン後にコピー

Slack の Web サイトで Incoming WebHook を作成することで Webhook URL を取得できます。フック パラメーターは、次のような完全な Webhook URL である必要があります:

https://hooks.slack.com/services/ZZZZZZZZZ/YYYYYYYYY/XXXXXXXXXXXXXXX
ログイン後にコピー

次のいずれかのパラメーターをチャネルとして指定できます:

  • #channel チャネルに通知を送信
  • @user がユーザー
に通知を送信します
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

See all articles