Envoyer.ioの紹介(パート1)
このパートでは、Envoyerのより高度な機能について説明します。
カスタマイズ展開フック
Envoyerには、展開プロセスに4つのステップがあり、これらのステップの前後 に任意のスクリプトを実行できます。 これらの手順は次のとおりです。 新しいリリースのクローン作成、 composer依存関係のインストール 、新しいリリースのアクティブ化、 古いリリースの削除 。
各ステップの近くには「ギア」ボタンがあり、クリックすると次の画面が表示されます。
そこで、選択したステップの前後にフックを追加できます。 必要な部分の[ フックの追加]をクリックします。
ご覧のように、各フックについて、名前を指定し、スクリプトを実行するユーザーと、最新リリースのフォルダーにパスを保存する
{{release}}
変数にアクセスできるフックの本体を指定できます(例:
/home/my-user/website.com/releases/20150316083301
)。
ドラッグアンドドロップを使用して、フックの実行順序を変更することもできます。
キャンセル
しかし、新しい展開を実行し、すべてが壊れていることに気付いた場合はどうでしょうか? 通常、ssh、
git log
を介してサーバーに接続し、必要なコミットを探し、コミットハッシュをコピーし、
git checkout THAT_HASH
、
composer install
、そしてその後数分間落ち着きます。
Envoyerを使用すると、
releases
フォルダーで以前のリリースが動作可能になります。 プロジェクトのダッシュボードに移動して、作業コードをデプロイしたデプロイを見つけ、「再デプロイ」ボタンをクリックします。
current
のシンボリックリンクは、
releases
フォルダー内の作業フォルダーを指すようになり、すべてが再び機能します。
健康
プロジェクトダッシュボードに[ 展開後の正常性]セクションが表示される場合があります。 ニューヨーク、ロンドン、シンガポール用のアイコンがあります-Envoyerがアプリケーションの可用性をチェックする3つの地域。 ヘルスチェックURLを入力するまで、これらのアイコンは疑問符になります。
各プロジェクトには、各展開後にEnvoyerによって呼び出されるヘルスチェックURLを含めることができます 。 プロジェクト設定でこのURLを編集できます。
展開後、Envoyerは指定されたURLからのHTTP応答を調べ、応答コードが
200
(OK)かどうかを確認します。 その場合、Envoyerはアプリを「健康」と見なします。 サイトのホームページを指定するか、サーバーが「正常」かどうかを完全に示すことができる特別なテストURLを作成できます。
すべて順調であれば、緑色のチェックマークが表示されます。
何かが壊れると、赤い十字が表示されます(そして、おそらく「キャンセル」セクションが必要になります)。
複数のサーバーに展開する
一度に複数のサーバーに展開する場合は、それらをプロジェクトに追加するだけで、サーバーは自動的に展開に参加します。
展開段階
展開プロセスが進行中の場合、各サーバーでの前の展開手順が完了するまで、それ以降の手順は開始されないため、サーバーは互いに完全に同期されたままになります。
環境設定の同期
サーバーと同期する必要があるローカル構成ファイル(Laravel 5の
.env.php
、Laravel 4の
.env.php
)がある場合は、プロジェクトダッシュボードの[環境の管理 ]ボタンをクリックします。
ファイルはEnvoyerに保存されていないパスワードで暗号化されているため、「環境キー」を紛失しないでください。
パスワードを入力するとすぐに、テキストフィールドが表示されます。これは基本的にコードエディターです。 このフィールドに必要なものを書き込むと、内容がファイルに保存されます(プロジェクトタイプLaravel 5またはその他を
.env.php
場合は
.env.php
、プロジェクトタイプがLaravel 4の場合は
.env.php
)。
次に、保存先のサーバーを選択して保存します。
Envoyerは、このファイルをサーバー上のプロジェクトのルートに保存し、必要なすべてのシンボリックリンクを作成します。
通知
[通知]タブで、重要なイベントを通知するようにEnvoyerを構成できます。 Envoyerは現在HipchatとSlackで通知できます。
ハートビート
サーバーの状態を管理する際の最大の課題の1つは、すべてのcronタスクが常に機能するようにすることです。 Envoyer Heartbeatsを使用すると、指定されたURLが指定された頻度で応答する場合、cron作業が「有効」であるという条件を設定できます。 pingがない場合、Envoyerはこれを通知します。
ハートビートを追加するには、「ハートビート」タブで「ハートビートを追加」ボタンをクリックします。
名前を指定し、cronタスクからpingを受信する頻度を指定できます。
追加すると、ステータスは「正常」になります。 指定された時間が経過するまで、ステータスは健全なままです。 つまり、10分間を選択した場合、作成後10分間は健全なままです。
Pingのハートビート
各ハートビートには固有のURLがあり、これは[ハートビート]タブで取得できます。 次の形式になります。
beats.envoyer.io/heartbeat/203849102395790125
通常のcronファイルでは、以下を実行してハートビートをpingできます。
php yourfile.php && curl https://beats.envoyer.io/heartbeat/203849102395790125
Laravelを使用している場合、最新バージョンでは
thenPing()
メソッドが
thenPing()
に追加されており、cronタスクの完了後に任意のURLをpingできます。 これはハートビートに最適です。
pingがない場合の通知は次のとおりです。
チームワーク
Envoyerでは、無制限の人数のユーザーがサーバーにアクセスできます。 チームの誰かがサーバーの展開であなたと協力したいが、支払いカードの詳細を使用してアカウントを作成したくない場合は、「他の人と共同作業しています」を選択してアカウントを作成できます。
各プロジェクトには[共同編集者]タブがあり、メールを指定してユーザーを追加できます。
これらのユーザーは、プロジェクトの削除を除くすべての機能にアクセスできることに注意してください。
よくある質問
Envoyerは代替フォージになりますか?
いや Envoyerはサーバーを管理しません。 しかし、彼はフォージの素晴らしいペアを作ります。
Envoyerはどのようにサーバーにログインしますか?
新しいサーバーを追加すると、EnvoyerはSSHキーを提供します。これは、目的のユーザーの
authorized_keys
ファイルに追加する必要があります
Envoyerを非Laravelプロジェクトで使用できますか?
はい、もちろんです。 確かに、一部の自動設定は機能しません。 たとえば、
storage
フォルダーへのシンボリックリンクの自動作成。 しかし、これはフックを使用して実現できます。
Forgeを使用する場合、サイトをForgeのGitリポジトリに接続する必要がありますか?
いいえ、リポジトリに接続せずにサイトを開始するだけです。 エンボイアーが残りを行います。
展開ステップでエラーが発生するとどうなりますか?
Envoyerはこれに気づき、それについて通知します。 デプロイはキャンセルされます。