開発運用

AnsibleでPHPアプリをデプロイ

Ansibleは、インフラの自動化を行うための強力なツールであり、Ubuntu上でのインストールとPHPアプリケーションのデプロイに非常に有用です。本記事では、AnsibleのインストールからPHPアプリケーションのデプロイまでの手順を、詳しく説明します。

1. Ansibleのインストール

UbuntuにAnsibleをインストールするための基本的な手順は以下の通りです。まずはシステムの更新を行い、その後にAnsibleをインストールします。

1.1 パッケージリストの更新

ターミナルを開き、以下のコマンドを入力してシステムのパッケージリストを更新します。

bash
sudo apt update

1.2 Ansibleのインストール

次に、Ansibleの公式リポジトリを使用してインストールを行います。まずは、AnsibleのPPA(Personal Package Archive)を追加します。

bash
sudo apt install software-properties-common sudo add-apt-repository --yes --update ppa:ansible/ansible

その後、Ansibleをインストールします。

bash
sudo apt install ansible

インストールが完了したら、Ansibleのバージョンを確認して、正常にインストールされたことを確認します。

bash
ansible --version

これで、Ansibleがインストールされました。

2. Ansibleの設定

Ansibleのインストールが完了したら、次に基本的な設定を行います。最も基本的な設定は、インベントリファイルの作成です。このファイルに、管理するサーバーのIPアドレスやホスト名を記述します。

2.1 インベントリファイルの作成

Ansibleでは、ターゲットサーバーをインベントリファイルにリストします。デフォルトのインベントリファイルは/etc/ansible/hostsにありますが、カスタムインベントリファイルを使用することもできます。例えば、プロジェクトごとにインベントリファイルを管理することができます。

新しいインベントリファイルを作成し、管理するサーバーのIPアドレスを記述します。以下はその例です。

bash
nano ~/my_inventory

次に、インベントリファイルに以下の内容を追加します。

csharp
[web] 192.168.1.10

この設定では、192.168.1.10というIPアドレスのサーバーが管理対象サーバーとして指定されています。

2.2 SSHキーを使った接続設定

AnsibleはSSH経由でターゲットサーバーに接続します。したがって、ターゲットサーバーにSSHで接続できるように設定します。SSHキーを使用する場合、次のようにSSHキーを生成してターゲットサーバーにコピーします。

bash
ssh-keygen -t rsa -b 2048 ssh-copy-id [email protected]

これで、パスワードなしでSSH接続できるようになります。

3. PHPアプリケーションのデプロイ

Ansibleを使用してPHPアプリケーションをデプロイするために、Ansibleのプレイブックを作成します。プレイブックとは、複数のタスクを定義したYAML形式のファイルです。

3.1 プレイブックの作成

以下の例では、PHP、Apache、MySQLをインストールし、PHPアプリケーションをデプロイする手順を示します。まず、php_deploy.ymlという名前のプレイブックを作成します。

bash
nano php_deploy.yml

プレイブックの内容は次のようになります。

yaml
--- - name: Deploy PHP application hosts: web become: yes tasks: - name: Update apt cache apt: update_cache: yes - name: Install Apache, PHP, and MySQL apt: name: - apache2 - php - libapache2-mod-php - mysql-server state: present - name: Start and enable Apache service: name: apache2 state: started enabled: yes - name: Start and enable MySQL service: name: mysql state: started enabled: yes - name: Deploy PHP application copy: src: /path/to/your/php/app dest: /var/www/html/ owner: www-data group: www-data mode: '0755' - name: Restart Apache to apply changes service: name: apache2 state: restarted

このプレイブックでは、以下の作業を行います。

  1. aptキャッシュの更新
  2. Apache、PHP、MySQLのインストール
  3. ApacheおよびMySQLの起動と自動起動設定
  4. PHPアプリケーションのデプロイ(/path/to/your/php/appの部分は実際のアプリケーションのパスに変更)
  5. Apacheの再起動

3.2 プレイブックの実行

プレイブックを実行するためには、以下のコマンドを使用します。

bash
ansible-playbook -i ~/my_inventory php_deploy.yml

これで、Ansibleは指定したターゲットサーバーに対してPHPアプリケーションをデプロイします。

4. 結論

Ansibleを使ったPHPアプリケーションのデプロイは、非常に効率的で再現性のある方法です。プレイブックを使用することで、サーバーの構成からアプリケーションのデプロイまでを一貫して自動化でき、管理が簡単になります。さらに、Ansibleの利点を活かすことで、大規模なインフラの管理がスムーズに行えます。

Back to top button