ubuntu前書きこのチュートリアルでは、Ansibleを使用して基本的なPHPアプリケーションをプロビジョニングするプロセスについて説明します。このチュートリアルの最後の目標は、ターゲットのドロップレットで単一のSSH接続または手動コマンドを実行することなく、基本的なPHPアプリケーションを新しいWebサーバーで処理できるようにすることです。framework]を使用しますが、これらの手順は、すでに独自のフレームワークとアプリケーションをサポートしている場合は簡単に変更できます。14.04ドロップレットにNginx、PHP、およびその他のサービスをインストールおよび構成します。[この基本的なAnsibleチュートリアル]最初。このチュートリアルを実行するには、次のものが必要です。14.04ドロップレット。このマシンのIPアドレスは、チュートリアル全体で「++」と呼ばれます。14.04ドロップレット。これは、このチュートリアル全体でログインするドロップレットです。usersは両方のドロップレット用に設定されています。ステップ1-Ansibleのインストール最初のステップは、Ansibleをインストールすることです。+`でインストールすることで簡単に実現できます。+`コマンドを使用してPPAを追加します。+`キャッシュを更新します。update最後に、Ansibleをインストールします。ansibleAnsibleをインストールしたら、新しいディレクトリを作成して作業し、基本的な構成をセットアップします。+`にあるhostsファイルを使用します。このファイルには、管理しているすべてのサーバーが含まれています。このファイルは一部のユースケースでは問題ありませんが、グローバルなファイルなので、ここでは必要ありません。このチュートリアルでは、ローカルホストファイルを作成し、代わりに使用します。これを行うには、作業ディレクトリ内に新しいAnsible構成ファイルを作成します。これを使用して、同じディレクトリ内でhostsファイルを探すようにAnsibleに指示できます。新しいディレクトリを作成します(このチュートリアルの残りの部分で使用します)。~/ansible-php新しいディレクトリに移動します。+」またはお好みのテキストエディターを使用して編集します。+`の値を追加します。`ファイルを保存して閉じます。+`ファイルを作成します。このファイルには、アプリケーションをデプロイするPHPドロップレットのIPアドレスが含まれます。+」のセクションに追加し、「」をサーバーのIPアドレスに、「」をPHPドロップレットの前提条件で作成したsudo非ルートユーザーに置き換えます。`ファイルを保存して閉じます。+`モジュールを呼び出して、Ansibleが期待どおりにホストに接続できることを確認します。ping以前にそのホストにログインしたことがあるかどうかに応じて、SSHホスト認証チェックを取得できます。pingは次のような正常な応答で返されます。"pong"}Ansibleがインストールされ、構成されました。Webサーバーのセットアップに進むことができます。+`を使用して、必要なシステムパッケージをインストールします。+`パッケージをインストールします。`モジュールを追加して必要なパッケージをインストールする前に、基本的なプレイブックを作成する必要があります。このプレイブックを基に、チュートリアルを進めていきます。+`という新しいプレイブックを作成します。php.yml次の構成に貼り付けます。+`を使用してコマンドが実行されるようにします。残りは、必要なパッケージを含むモジュールを追加します。独自のアプリケーション用にこれをカスタマイズするか、サンプルのLaravelアプリケーションと一緒に使用する場合は、以下の構成を使用できます。`ファイルを保存します。`を実行して、Dropletにパッケージをインストールします。+`オプションを使用することを忘れないでください。--ask-sudo-pass手順3-システム構成ファイルの変更このセクションでは、PHPドロップレットのシステム構成ファイルの一部を変更します。+`ファイル全体を含めます。lineinfileモジュールを使用して、ファイル内の構成値が予想どおりになっていることを確認できます。[正規表現]を使用して実行できるため、Ansibleはパラメーターが含まれる可能性のあるほとんどの形式を理解できます。+`セクションに追加する必要があります。ハンドラーは、タスクが変更されたときにのみ起動されるため、これに最適です。プレイブックの最後で実行されるため、複数のタスクが同じハンドラーを呼び出すことができ、1回だけ実行されます。上記を行うセクションは次のようになります。`モジュールが有効になっていることを確認する必要もあります。+`ファイルが正しい場所にあることを確認することで実行されます。タスクが特定のファイルを作成することをAnsibleに伝えていることに注意してください。そのファイルが存在する場合、タスクは実行されません。php.yml上記のタスクとハンドラーを追加して、ファイルが以下と一致するようにします。state=restarted最後に、プレイブックを実行します。--ask-sudo-passこれで、Dropletにすべての必要なパッケージがインストールされ、基本構成がセットアップされ、準備が完了しました。ステップ4-Gitリポジトリーの複製このセクションでは、Gitを使用してLaravelフレームワークリポジトリをDropletにクローンします。+`ファイル全体をコピーして貼り付けます。+`が存在することを確認する必要があります。これを行うには、ファイルモジュールを使用してタスクを作成します。mode=0700前述のように、Gitモジュールを使用してリポジトリをDropletに複製する必要があります。`コマンドに必要なのはソースリポジトリのみであるため、プロセスは単純です。`を設定して、リポジトリが既に存在する場合は更新しないようにAnsibleに指示します。www-data`ユーザーとしてタスクを実行する必要があります。+`を使用して特定のユーザーとしてコマンドを実行するようAnsibleに指示できます。最終的なタスクは次のようになります。+`を追加して、SSHホスト検証がタスクをハングさせないようにすることができます。+`ファイルを開きます。php.yml上記のタスクをプレイブックに追加します。ファイルの終わりは次と一致する必要があります。state=restartedプレイブックを保存して閉じ、実行します。--ask-sudo-pass手順5-Composerを使用したアプリケーションの作成このステップでは、Composerを使用してPHPアプリケーションとその依存関係をインストールします。+`コマンドがあります。これは、アプリケーションを最初に使用するために正しくセットアップするための最良の方法です。+」としてグローバルにダウンロードおよびインストールできます。これにより、Ansibleを含むDropletを使用する誰でもアクセスできるようになります。/usr/local/bin/composerComposerがインストールされている場合、使用できるComposerモジュールがあります。+`コマンドを実行します。+`パラメーターも追加する必要があります。www-data`ユーザーとして実行して、パーミッションが有効であることを確認したいと思います。すべてをまとめると、次のタスクが得られます。+`タスクは新しいドロップレットでかなりの時間がかかる場合があります。+`ファイルを開きます。+」の上にタスクを追加します。state=restarted最後に、プレイブックを実行します。`が再度実行されます。したがって、代わりに必要なのは、そのタスクを新しいクローンの後にのみ実行するように設定することです。`タスク内でそれらの結果を確認することで、1回だけ実行されることを保証できます。ない場合はスキップされます。+`モジュールのいくつかのバージョンにはバグがあるようです。+`ファイルを開きます。`タスクを見つけます。+`変数に保存します。create-project`タスクを見つけます。+`変数が変更されたかどうかを確認します。www-dataプレイブックを保存して実行します。+`の変更を停止します。ステップ6-環境変数の更新このステップでは、アプリケーションの環境変数を更新します。`ファイルが付属しています。false」に交換します。+`モジュールを使用するだけで実行できます。+`ファイルを開きます。php.ymlこのタスクをプレイブックに追加します。ファイルの終わりは次と一致する必要があります。state=restartedプレイブックを保存して実行します。+`モジュールは、テキストファイルをすばやく調整するのに非常に役立ちます。このような環境変数を正しく設定するのに最適です。手順7-Nginxの構成このセクションでは、PHPアプリケーションを提供するためにNginxを構成します。+)、Laravelの新しいプロジェクトページの代わりにNginxのデフォルトページが表示されます。Webサーバーを設定する必要があるためです。+`のサポートを追加して、PHPスクリプトを処理できるようにする必要があります。+`という新しいファイルを作成します。nginx.confこのファイル内にこのサーバーブロックを保存します。https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-14-04#step-fourのステップ4を確認できます。[このチュートリアル]。+`として使用することを確認しています。nginx.conf`ファイルを保存して閉じます。これで、テンプレートモジュールを使用して、新しい構成ファイルをプッシュできます。`モジュールと非常によく似た見た目と発音の場合がありますが、大きな違いがあります。`は単一のファイルをコピーし、ファイル内のすべての変数を解決します。+`ファイルで使用したIPアドレスに解決します。このように、Ansibleが使用する構成ファイルをハードコーディングする必要はありません。タスクを作成するときに通常行われるように、ドロップレットで何が起こるかを考慮する必要があります。`を再起動する必要があります。+`オプションを使用して行われます。php.ymlタスクセクションの最後にこのnginxタスクを追加します。+`ファイル全体は次のようになります。state=restartedプレイブックを保存して再度実行します。--ask-sudo-pass完了したら、ブラウザに戻って更新します。Laravelの新しいプロジェクトページが表示されます。結論このチュートリアルでは、パブリックリポジトリを使用したPHPアプリケーションのデプロイについて説明します。Ansibleがどのように機能するかを学習するには最適ですが、常にオープンなリポジトリを備えた完全なオープンソースプロジェクトに取り組むとは限りません。+`を認証する必要があることを意味します。これは、SSHキーを使用して非常に簡単に実行できます。+`タスクの前にそれらをサーバーにコピーして設定できます。mode=0600これにより、サーバーがアプリケーションを正しく認証およびデプロイできるようになります。これらはすべて、PHPドロップレットに直接ログインし、1つの手動コマンドを実行する必要なく完了しています。