ブログに戻る

Ansibleを使用したUbuntu 20.04でのLAMPのインストールと設定

Ansibleを使用したUbuntu 20.04でのLAMPのインストールと設定

サーバーの自動化は、効果的かつ技術に精通した方法でサーバーを管理および監視する、安全で信頼性の高いプロセスです。専任の専門家チームによって管理されるデータセンターでサーバーを管理する従来のスタイルとは異なり、すべてのサーバーは自動化を使用して管理されます。その結果、ヒューマンエラーが最小限に抑えられます。

次のような構成管理ツールは、Ansible, Puppet, Terraformなどが、一般的にサーバーの自動化に使用されます。これらのツールは、新しいサーバーの標準的な手順を確立することで自動化を使用してサーバーをセットアップし、手動で行う場合に発生する可能性のあるエラーを排除します。

Ansibleは、頑健なオープンソースプロジェクトです。柔軟で使いやすく、最も簡素化されたアーキテクチャを備えています。Ansible Playbookを使用するのにコーディングの経験は必要なく、ノードにソフトウェアをインストールする必要もありません。何よりも、スクリプトを作成して自動化を合理化できる優れた機能が満載されています。

このガイドでは、Ansibleを使用してUbuntu 20.04にLAMPをインストールおよび設定する手順を説明します.

前提条件

このチュートリアルを進めるには、以下が必要です。

Ansible Playbookの目的は何ですか?

このAnsible Playbookは、ガイド「LAMPスタックのセットアップ Linux Apache MySQL PHP.

Ansible Playbookを実行すると、Ansibleホストで次のアクションが実行されます。

  • インストールする: aptitude(Ansibleが推奨する、 aptパッケージマネージャーの代替)。

  • 必要なすべてのLAMPパッケージをインストールする。

  • 新しいApacheの VirtualHostを作成し、専用のドキュメントルートを設定する。

  • 有効(ON)にする:新しい VirtualHost.

  • 無効(OFF)にする:デフォルトのApache Webサイト。つまり、disable_default変数を true.

  • に設定する。MySQLのrootユーザーのパスワードを選択する。

  • 匿名のMySQLアカウントとテストデータベースを削除する。

  • 設定されたポート(デフォルトは )でHTTPトラフィックを許可するようにUFWを設定する。80.

  • PHPテストスクリプトをセットアップする。

Ansible Playbookの実行が完了すると、設定した構成に従ってApache上で動作するWeb PHP環境が表示されます。

Ansible Playbookの利用

まず、LAMP Playbookとその依存関係をdo-community/ansible-playbooksリポジトリから取得します。次に、LAMP Playbookを含むリポジトリをAnsibleコントロールノード内のローカルフォルダーにクローンします。

次の git pullコマンドを実行して、このチュートリアルで使用する適切なコンテンツにアクセスできることを確認します。

初めて do-community/ansible-playbooksリポジトリを使用する場合は、ホームフォルダーにリポジトリをクローンすることを検討してください:

Go to the lamp_ubuntu2004フォルダーに移動すると、次のような構造が表示されます:

これらのファイルが何を意味するかの概要は次のとおりです:

  • files/info.php.j2:これは、WebサーバーのルートにPHPテストページをセットアップできるテンプレートファイルです。

  • files/apache.conf.j2:Apache VirtualHostのセットアップに使用されるもう1つのテンプレートファイルです。

  • vars/default.yml:Playbookの設定をカスタマイズするための変数ファイルです。

  • playbook.yml:このファイルには、リモートサーバーで実行されるタスクのすべての内容が含まれています。

  • readme.md: このプレイブックに関する情報が含まれているREADMEファイル。

プレイブックの変数ファイルを変更して、MySQLとApacheの設定をカスタマイズしましょう。 lamp_ubuntu2004 ディレクトリに移動し、 vars/default.yml ファイルを nano エディタを使用して開きます:

On opening the vars/default.yml ファイルを開くと、変更が必要な変数のリストが表示されます:

それぞれの変数について詳しく理解しましょう:

  • mysql_root_password: root MySQLアカウントのパスワードを保存します。

  • app_user: アプリケーションファイルの所有者として機能する、Ansibleホスト上のリモートの非rootユーザーです。

  • http_host: ドメイン名を表示します。

  • http_conf: Apache内に作成された設定ファイルの名前を表示します。

  • http_port: このバーチャルホストのHTTPポートであり、 80 がデフォルトです。

  • disable_default: Apacheに付属するデフォルトのオプションを無効にするために使用されます。

その後、 vars/default.yml ファイルを保存して閉じます。

すべてのセットアップが完了したら、サーバー上でこのプレイブックを実行する準備が整います。デフォルトでは、プレイブックのほとんどのサーバーは、インベントリ内のすべてのサーバーで実行されるように設定されています。それでは、 -l フラグを使用して、プレイブックの影響を受ける単一のサーバーまたは選択したグループのサブセットのみに影響を与えましょう。あるいは、 -u フラグを使用して、どのリモートサーバーが接続され、リモートホスト上で実行されているかの詳細なビューを取得することもできます。

1つのサーバー server1 でプレイブックを実行し、1つのユーザー justin:

以下のような出力が表示されます:

プレイブックの実行完了を確認したら、Webブラウザを開いてサーバーのホストにアクセスします。IPの末尾に /info.php を追加するのを忘れないでください:

このURLをクリックすると、次のようなページが表示されます:

警告: 表示されたページには、PHP環境に関する機密情報が含まれています。そのため、次のコマンドを使用してサーバーから個人情報を削除することをお勧めします。

rm -f /var/www/info.php

プレイブックには何が含まれていますか?

次に、 ansible-プレイブックのコンテンツで使用されているファイルの意義と重要性を理解しましょう:

  • vars/default.yml

The default.yml 変数ファイルには、MySQLの root アカウントのドメイン名とパスワードが含まれています。これらは、 ansible-プレイブック のタスクで使用されるデフォルト値です:

  • files/apache.conf.j2

The apache.conf.j2 ファイルは、新しいApache VirtualHostを構成するために使用される Jinja 2 テンプレートファイルです。このテンプレート内で使用される変数は、 vars/default.yml 変数ファイルで定義されている必要があります:

  • files/info.php.j2

Similar to files/apache.conf.j2 と同様に、 info.php.j2 ファイルもJinjaテンプレートです。このファイルを使用して、新しく構成されたLAMPサーバーのドキュメントルートにテスト用のPHPスクリプトをセットアップします:

  • playbook.yml

The プレイブック.yml ファイルは、このセットアップのすべてのタスクが定義されている場所です。このファイルで、すべてのLAMPスタックが構成されます。対象となるサーバーのグループの定義から始まり、これは all に設定されます。また、 become の値を true ( become: true)として受け取り、実行する必要があるすべてのタスクを定義します。次に、 yaml ファイルには、構成オプションをロードするためのデフォルトファイルである vars/default.yml 変数ファイルがあります:

プロジェクトのニーズや要件に基づいて、これらのファイルを変更できます。

まとめ

このチュートリアルでは、Ansibleを使用してリモートサーバーにLAMPをインストールし、設定する手順を説明しました。他にも実験できるカスタマイズオプションはたくさんあります。例えば、Ansible公式ドキュメント を参照したり、Ansibleモジュールの mysql_user の使用例を参考にすることは、スキルアップに最適な方法です。また、このガイドで説明した手順に従って、他の構成管理ツールやOSを使用した自動化を練習し、難易度を上げてみてください。

LAMPスタックが初めてで、このトピックを深く掘り下げたいですか?次のチュートリアルを、当社のブログでご覧ください::

快適なコンピューティングを!

author

Hark Labs

著者 · CloudSigma

Preslav DobrevはCloudSigmaのクリエイティブデザイナーであり、従来型および革新的なマーケティングチャネルを活用した一貫性のあるビジネスアイデンティティに注力しています。彼は芸術的なビジョンと戦略的マーケティングを融合させ、インパクトのあるブランドナラティブを生み出すことに長けています。

コメント

コメントはまだありません。最初のコメントを投稿しましょう。