Raspberry Pi(raspbian)にWordPressをAnsibleでセットアップする(その4)

今回で最後、Raspberry PiにWordPressをAnsibleを使ってセットアップします。過去記事は下記、もしくはメニューの「Server」からご覧ください。
その1 Ansibleで管理する準備
その2 raspbianの共通設定を行うplaybook
その3 外付けHDDをマウントするplaybook

wordpressのセットアップは、以下の記事をそのままをplaybookにさせて頂きました。
Raspberry Piにwordpressを設置して高速化、あと電気代

その他、その2、その3で作成したplaybookの読み込みとiptablesの設定を行います。

ファイル構成

ファイル構成は以下の通りです。ハイライト部分が今回関係するファイルです。

|--conf
| |--locale
| |--localtime
| |--ntp.conf
| |--resolvconf.conf
| |--rules.v4
| |--wp-config.php
|--vars
| |--vars.yml
|--ansible.cfg
|--my.cnf.j2
|--external_strage_connect.yml
|--raspbian_basic_settings.yml
|--wordpress-4.4.2-ja.zip
|--wordpress_server.yml

playbookの内容

playbookは以下の通りです。

2行目
対象ホストを指定します。

3行目
playbook全体をsudo権限で実行します。

4~5行目
変数ファイル”vars.yml”を読み込みます。

6行目
この行以降にタスクを記述します。

8行目
その3で作成した”external_strage_connect.yml”を読み込みます。

10行目
記載順が前後しますが、その2で作成した”raspbian_basic_settings.yml”を読み込みます。

12~20行目
aptモジュールを使用し、必要なパッケージをインストールします。iptables-persistentはiptablesの設定を行うためのパッケージ、その他はwordpressを稼働させるためのパッケージです。

22~23行目
念のため、systemdのリロードを行います。ここは一度試行錯誤していた時に追加したもので、おそらく行う必要はありません。じゃあ削除しろよという話ですが、検証していないので、そのままにしてます。

25~29行目
serviceモジュールで、サービスとして稼働するlighttpdとmysqlをenable(サービスが起動していなければ起動し、自動起動の設定も行う)に設定します。

31~32行目
これ以降50行目まで、mysqlの設定です。
mysqlのrootユーザーにパスワードを設定します。通常、rootユーザーのパスワードを変更するにはroot権限が必要ですが、インストール直後(初回playbook実行時)はパスワードが設定されていないため、パスワードなしでrootユーザーになり、変更ができます。
2回目以降のplaybook実行時は、34~35行で配置したmy.cnfファイルから認証情報を読み取り、rootユーザーのパスワード変更処理を行います。

このあたりは旧ブログにも記載しています。

34~35行目
my.cnfファイルを配置します。AnsibleのMySQLモジュールは、デフォルトで~/.my.cnfから認証情報を読み取ります。このファイルを配置した後は、my.cnfに記載されているユーザ名とパスワードでmysql_userやmysql_dbが実行されます。

37~38行目
テストデータベースを削除します。

40~41行目
匿名ユーザーを削除します。

43~44行目
リモート接続用のユーザーを削除します。

46~47行目
データベース”wordpress”を作成します。

49~50行目
wordpress用のユーザー”wordpress”を作成し、パスワードと権限設定(ALL)を行います。

52~53行目
ここからlighttpd用の設定です。commandモジュールでlnコマンドを実行し、稼働するために必要なシンボリックリンクを作成します。

55~56行目
Ansibleサーバ側 にあるwordpressの圧縮ファイルを、リモートホストの/tmp/配下に展開します。

58~59行目
/tmp/ディレクトリ配下に展開したwordpressファイル一式を、ドキュメントルートとする/var/www/html/にコピーします。

61~62行目
/var/www/配下のファイルすべての所有者をwww-dataに変更します。

64~65行目
lighttpdのデフォルトのindexファイルは、不要なので/root/配下に移動します。

67~68行目
wordpressの設定ファイル”wp-config.php”を配置します。

70~71行目
設定ファイルの内容を反映するため、lighttpdを再起動します。

73~74行目
iptablesのルールを記述した”rules.v4″を配置します。これにより、起動時にrules.v4に記載されたルールが適用されます。

76~77行目
shellモジュールでiptables-restoreコマンドを実行し、”rules.v4″に記載されたルールを適用します。

実行して最後までエラーなく完了すればセットアップ完了です。ブラウザでアクセスすると、初期設定を行う画面が表示され、設定後wordpressが使用可能になります。

各設定ファイルの内容

各設定ファイルの内容は以下の通りです。長いものは変更部分のみ記載しています。

vars.yml

変数を記述しています。mysqlのパスワードを保持するために使用しました。”*”部分は、実際にはパスワードを平文で記述しています。

wp-config.php

予め編集しておいたwordpressの設定ファイルです。wordpressに含まれている同名のファイルを編集しました。DB接続を行うためのDB名、ユーザー名、パスワードや、秘密鍵を記述しています。各値の意味は公式オンラインマニュアルにて”WordPress のインストール”をご覧ください。

AUTH_KEYからNONCE_SALTの値(秘密鍵)は、オンラインジェネレータを使用して生成した値を入力します。

rules.v4

iptablesの設定を記述したファイルです。こちらのサイトを参考にさせて頂きました。
TCP80番ポートと、LAN内部(192.168.x.x/24)からのみTCP22番を許可しています。

この記事のplaybookを使ってセットアップしたraspberry piでこのサイトは動作しています。参考にさせて頂いた各サイトの管理者様、ありがとうございました!

出典

Raspberry Piにwordpressを設置して高速化、あと電気代
Debian上でのiptablesの設定方法
Debian Wiki – iptables
WordPress のインストール

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*