開発運用

AnsibleでWordPress自動インストール

WordPressをUbuntu上でAnsibleを使用して自動化インストールする方法について、詳細かつ包括的な記事を提供いたします。このプロセスを通じて、UbuntuサーバーにWordPressを効率的にインストールできるようになります。

Ansibleとは?

Ansibleは、システム管理を自動化するためのツールであり、特にインフラのセットアップや構成管理に優れています。プレイブック(Ansibleの設定ファイル)を使用して、複数のサーバーに対する操作を一元的に管理できます。これにより、手作業で行う設定を自動化し、ミスを減らし、迅速かつ効率的に作業を進めることができます。

準備:UbuntuサーバーとAnsible

まず最初に、WordPressをインストールするUbuntuサーバーと、Ansibleを動作させるローカルまたは管理用サーバーを準備します。Ubuntuサーバーは、最低限、SSHが有効で、インターネット接続がある必要があります。

1. Ansibleのインストール

Ansibleは簡単にインストールできます。Ubuntuでのインストール手順は以下の通りです:

bash
sudo apt update sudo apt install ansible

インストール後、Ansibleが正しくインストールされたか確認します:

bash
ansible --version

2. UbuntuサーバーへのSSH接続

AnsibleはSSHを通じてターゲットサーバーと通信します。そのため、UbuntuサーバーへのSSHアクセスを設定します。次のコマンドでSSH接続ができることを確認してください。

bash
ssh user@ubuntu-server-ip

ここで、userはUbuntuサーバーのユーザー名、ubuntu-server-ipはUbuntuサーバーのIPアドレスです。

Ansibleプレイブックの作成

次に、WordPressのインストールを自動化するAnsibleプレイブックを作成します。このプレイブックでは、必要なパッケージのインストール、設定、WordPressのダウンロードと設定などを行います。

1. プレイブックの作成

wordpress-setup.ymlというファイルを作成し、以下の内容を記述します。

yaml
--- - name: Set up WordPress on Ubuntu hosts: all become: yes tasks: - name: Update apt repository apt: update_cache: yes - name: Install required packages apt: name: - apache2 - mysql-server - php - libapache2-mod-php - php-mysql - unzip state: present - name: Start and enable Apache2 service service: name: apache2 state: started enabled: yes - name: Start and enable MySQL service service: name: mysql state: started enabled: yes - name: Create MySQL database for WordPress mysql_db: name: wordpress state: present - name: Create MySQL user for WordPress mysql_user: name: wordpress_user password: "securepassword" priv: "wordpress.*:ALL" state: present - name: Download WordPress get_url: url: https://wordpress.org/latest.zip dest: /tmp/wordpress.zip - name: Unzip WordPress unarchive: src: /tmp/wordpress.zip dest: /var/www/html/ remote_src: yes - name: Set correct permissions for WordPress directory file: path: /var/www/html/wordpress owner: www-data group: www-data mode: '0755' recurse: yes - name: Configure WordPress wp-config.php template: src: wp-config.php.j2 dest: /var/www/html/wordpress/wp-config.php mode: '0644' - name: Restart Apache service to apply changes service: name: apache2 state: restarted

このプレイブックは以下の作業を実行します:

  1. 必要なパッケージ(Apache2、MySQL、PHPなど)のインストール
  2. ApacheとMySQLサービスの開始と有効化
  3. MySQLデータベースとユーザーの作成
  4. WordPressのダウンロードと展開
  5. 適切なファイルの権限設定
  6. wp-config.phpの設定ファイルのテンプレートを配置
  7. Apacheの再起動

2. wp-config.phpのテンプレート作成

wp-config.php.j2というテンプレートファイルを作成し、以下の内容を記述します。これは、Ansibleがwp-config.phpを生成するために使用します。

php
define('DB_NAME', 'wordpress'); define('DB_USER', 'wordpress_user'); define('DB_PASSWORD', 'securepassword'); define('DB_HOST', 'localhost'); define('DB_CHARSET', 'utf8'); define('DB_COLLATE', ''); $table_prefix = 'wp_'; define('WP_DEBUG', false); if ( ! defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/'); require_once(ABSPATH . 'wp-settings.php');

このテンプレートでは、WordPressが接続するMySQLデータベースの設定を行います。

3. プレイブックの実行

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

bash
ansible-playbook -i inventory.ini wordpress-setup.yml

inventory.iniは、ターゲットサーバーのIPアドレスやホスト名を指定するインベントリファイルです。例えば、次のような内容になります。

ini
[wordpress_servers] ubuntu-server-ip ansible_user=user ansible_ssh_private_key_file=path/to/private_key

このコマンドを実行することで、Ansibleは指定されたUbuntuサーバー上でWordPressを自動的にセットアップします。

インストール後の設定

WordPressのインストールが完了したら、WebブラウザでUbuntuサーバーのIPアドレスにアクセスし、WordPressの初期設定画面に進むことができます。データベース名、ユーザー名、パスワードなど、設定ファイルで指定した情報を入力してください。

まとめ

Ansibleを使用してUbuntuサーバーにWordPressを自動的にインストールする手順を詳しく説明しました。この自動化されたプロセスにより、インストールの時間を大幅に短縮し、手動によるミスを防ぐことができます。プレイブックを使ってインストール作業を繰り返し行うことができるため、同じ構成を複数のサーバーに適用する際にも便利です。

Ansibleを利用することで、WordPressのインストールは簡単かつ迅速に完了し、運用にかかるコストや時間を大幅に削減できます。

Back to top button