前回に引き続き、Raspberry PiにWordPressをAnsibleを使ってセットアップします。
今回は、raspbianの汎用的な設定についてのplaybookです。WordPressのセットアップ以外でも使用できるよう、メインのplaybookとは別に作成しました。playbookを作成する前にAnsibleを使わずにセットアップしたので、その方法も併せて記載しています。
ファイル構成
ファイル構成は以下の通りです。ハイライト部分が今回関係するファイルです。
|--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は以下の通りです。他の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コマンドをそのまま実行しています。
各設定ファイルの内容
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に指定しています。
まだまだ続きます!