Ansibleは、インフラの自動化を行うための強力なツールであり、Ubuntu上でのインストールとPHPアプリケーションのデプロイに非常に有用です。本記事では、AnsibleのインストールからPHPアプリケーションのデプロイまでの手順を、詳しく説明します。
1. Ansibleのインストール
UbuntuにAnsibleをインストールするための基本的な手順は以下の通りです。まずはシステムの更新を行い、その後にAnsibleをインストールします。
1.1 パッケージリストの更新
ターミナルを開き、以下のコマンドを入力してシステムのパッケージリストを更新します。
bashsudo apt update
1.2 Ansibleのインストール
次に、Ansibleの公式リポジトリを使用してインストールを行います。まずは、AnsibleのPPA(Personal Package Archive)を追加します。
bashsudo apt install software-properties-common
sudo add-apt-repository --yes --update ppa:ansible/ansible
その後、Ansibleをインストールします。
bashsudo apt install ansible
インストールが完了したら、Ansibleのバージョンを確認して、正常にインストールされたことを確認します。
bashansible --version
これで、Ansibleがインストールされました。
2. Ansibleの設定
Ansibleのインストールが完了したら、次に基本的な設定を行います。最も基本的な設定は、インベントリファイルの作成です。このファイルに、管理するサーバーのIPアドレスやホスト名を記述します。
2.1 インベントリファイルの作成
Ansibleでは、ターゲットサーバーをインベントリファイルにリストします。デフォルトのインベントリファイルは/etc/ansible/hosts
にありますが、カスタムインベントリファイルを使用することもできます。例えば、プロジェクトごとにインベントリファイルを管理することができます。
新しいインベントリファイルを作成し、管理するサーバーのIPアドレスを記述します。以下はその例です。
bashnano ~/my_inventory
次に、インベントリファイルに以下の内容を追加します。
csharp[web]
192.168.1.10
この設定では、192.168.1.10
というIPアドレスのサーバーが管理対象サーバーとして指定されています。
2.2 SSHキーを使った接続設定
AnsibleはSSH経由でターゲットサーバーに接続します。したがって、ターゲットサーバーにSSHで接続できるように設定します。SSHキーを使用する場合、次のようにSSHキーを生成してターゲットサーバーにコピーします。
これで、パスワードなしでSSH接続できるようになります。
3. PHPアプリケーションのデプロイ
Ansibleを使用してPHPアプリケーションをデプロイするために、Ansibleのプレイブックを作成します。プレイブックとは、複数のタスクを定義したYAML形式のファイルです。
3.1 プレイブックの作成
以下の例では、PHP、Apache、MySQLをインストールし、PHPアプリケーションをデプロイする手順を示します。まず、php_deploy.yml
という名前のプレイブックを作成します。
bashnano 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
このプレイブックでは、以下の作業を行います。
- aptキャッシュの更新
- Apache、PHP、MySQLのインストール
- ApacheおよびMySQLの起動と自動起動設定
- PHPアプリケーションのデプロイ(
/path/to/your/php/app
の部分は実際のアプリケーションのパスに変更) - Apacheの再起動
3.2 プレイブックの実行
プレイブックを実行するためには、以下のコマンドを使用します。
bashansible-playbook -i ~/my_inventory php_deploy.yml
これで、Ansibleは指定したターゲットサーバーに対してPHPアプリケーションをデプロイします。
4. 結論
Ansibleを使ったPHPアプリケーションのデプロイは、非常に効率的で再現性のある方法です。プレイブックを使用することで、サーバーの構成からアプリケーションのデプロイまでを一貫して自動化でき、管理が簡単になります。さらに、Ansibleの利点を活かすことで、大規模なインフラの管理がスムーズに行えます。