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

前回に引き続き、Raspberry PiにWordPressをAnsibleを使ってセットアップします。

今回は、raspbianの汎用的な設定についてのplaybookです。WordPressのセットアップ以外でも使用できるよう、メインのplaybookとは別に作成しました。playbookを作成する前にAnsibleを使わずにセットアップしたので、その方法も併せて記載しています。

1. ファイル構成

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

|--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

2. playbookの内容

playbookは以下の通りです。他のplaybook読み込まれる前提で作成しているので、hosts:やsudo:は指定しておらず、このままでは実行できませんのでご注意ください。

- name: Place The ntp Configuration File
  copy: src=conf/ntp.conf dest=/etc/

- name: Place The resolv Configuration File
  copy: src=conf/resolvconf.conf dest=/etc/

- name: Locale Settings
  locale_gen: name=ja_JP.UTF-8 state=present

- copy: src=conf/locale dest=/etc/default/

- name: Timezone Settings
  copy: src=conf/localtime dest=/etc/

- name: reload ntp
  service: name=ntp state=restarted

- name: Stop unnecessary services
  service: name=dhcpcd enabled=no

- name: install python-apt
  raw: apt-get update && apt-get install python-apt -y -q

・1~2行
ntpdの設定ファイルをコピーします。
ファイル内容は後述します。

・4~5行
名前解決の設定ファイルをコピーします。
ファイル内容は後述します。

・7~8行
Ansibleモジュール「locale_gen」を使用し、ロケール設定を行います。
/etc/locale.genの編集とlocale_genの実行までをまとめて実行しているようです。

以下サイトを参考にさせて頂きました。
LANDISK HACKING DIARY

・10行
locale_genだけではデフォルトロケールは変わらないので、デフォルトロケールの設定ファイルをコピーします。

・12~13行
タイムゾーンの設定ファイルをコピーします。
コピーするlocaltimeはバイナリファイルで、/usr/share/zoneinfo/Japanファイルと同じ内容です。本来リモートホスト上で/usr/share/zoneinfo/Japan ファイルを/etc/localtimeに置き換えすればよいのですが、Ansibleのsynchronizeモジュールでは上手くいかなかったので、一旦Ansibleサーバにリネームして置いてから、コピーする方法にしました。

以下サイトを参考にさせて頂きました。
ぺけみさお

・15~16行
コピーしたntpdの設定を有効にするため、ntpdをリロードします。

・18~19行
不要と思われるサービスを停止します。厳密に精査すれば、もっと停止すべきサービスがあるかもしれません。

・21~22行
Ansibleのaptモジュールを使ってパッケージ管理をするためには、あらかじめpython-aptをインストールしておく必要があるので、ここでインストールします。

aptモジュールを使うにはpython-aptが必要だけど、その段階ではpython-aptが無いのでaptモジュールでのインストールはできない。というジレンマ。

そのためrawモジュールでapt-getコマンドをそのまま実行しています。

3. 各設定ファイルの内容

playbook内で使用している設定ファイルの内容です。

driftfile /var/lib/ntp/ntp.drift

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

server ntp.nict.jp

restrict -4 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ntp.nict.jp noquery

上位NTPサーバはntp.nict.jpを使用しています。
クライアントとしてのみ動作し、サーバにはならない設定です。

resolv_conf=/etc/resolv.conf
name_servers=xxx.xxx.xxx.xxx

dnsmasq_resolv=/var/run/dnsmasq/resolv.conf
pdnsd_conf=/etc/pdnsd.conf
unbound_conf=/var/cache/unbound/resolvconf_resolvers.conf

デフォルトから変更しているのは”name_servers”のみです。私の自宅ではブロードバンドルータがDNSサーバの機能を持っているので、そのローカルIPアドレスを設定しました。

LANG=ja_JP.UTF-8

デフォルトロケールの設定を日本、UTF-8に指定しています。

まだまだ続きます!

コメントを残す

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

*