Ansibleを使ってFedora23にWordPressをインストール
講義の課題で行ったので,未来の自分と友人と後輩のためにlog.Fedora23をminimal installしたためかPHPの設定でかなりハマった.
このページの続き.walkingmask.hatenablog.com
walkingmask.hatenablog.com
環境
Mac OS X El Capitan (10.11.1)
Fedora 23 server(minimal install)
VirtualBox 5.0.8
Python 2.7.10(Mac, Fedora)
Ansible 1.9.4
PHP 5.6.15
ネットワークの追加設定
ローカルマシン(Mac)のブラウザからFedoraにWordPressが正常にインストールされてるか確認するためにFedoraのネットワークに追加設定を行う.
Vartual Boxの画面でFedoraのSettingsを開いてNetworkを選択.
Adapter 1の項目のAdvancedをクリック.
更に,下の方にあるPort Fowardingをクリック.右の小さい緑色の+ボタンを押して,以下のように設定する.
OKを押して行って完了.これでWordPressの設定が完了した時に,ローカルマシンのブラウザ(Safariなど)からWordPressにアクセスできるようになる.
Pythonのインストール
Fedora 23 minimal installではPythonが入ってなかったためまずはそれを入れる.Fedoraを起動して以下のコマンドをFedora上で実行.
dnf -y install python
終わったらインストールできてるから確認.
python -V
Ansibleをインスール
HomebrewでAnsibleをローカルマシンにインストールする.
brew update brew install ansible
Ansibleの設定とテスト
以下のコマンドをローカルマシン(Mac)上で実行する.
ansible -h
- iオプションの項目を見る.多分こんな感じのことがかいてある.
-i INVENTORY, --inventory-file=INVENTORY specify inventory host file (default=/usr/local/etc/ansible/hosts)
このdefaultの指すファイルをviで開く.(ansibleディレクトリがないなら作っとく)
vi /usr/local/etc/ansible/hosts
以下のような内容になってればおk.(Fedoraの場合.ホスト名は自由に決められる)
[fedora] 192.168.56.101
これで設定は良し.次にテストとしてAnsibleでリモートホストにpingをかけてみる.
ansible fedora -u root -m ping 192.168.56.101 | success >> { "changed": false, "ping": "pong" }
無事にAnsibleが動いてるのが確認できた.(ここでエラーが返ってくる場合は,今までの設定ができてるか確認する.できてるのにエラーになる場合は頑張って調べよう!)
ansible-playbookを使ってLAMPとWordPressをFedoraにインストール
Ansibleを使ってWordPressのインストールとそのためのLAMPの設定を自動的に行う.playbook実行前にVMをcloneしておくことを強く推奨する.
playbookのサンプルをGitHubからダウンロード.(あくまでサンプルなので学習用.設定がまだまだなので実用上の使用は非推奨)github.com
ダウンロード先のディレクトリで以下のコマンドを実行.
ansible-playbook site.yml
結構時間がかかるが無事終わったらローカルのブラウザで
http://localhost:8080
へアクセス.以下のような画面が表示されればインストール成功.
あとはWordPressを設定するだけ.(できなかった場合はVMのNetworkの設定を確認する,rebootしてみるなど.それでもダメなら多分失敗.そこからは自力で努力!)
ハマった点など
ありすぎて記録してないものが多いが,覚えてるだけlog.世の中のすべてのlogに感謝.
iptables
参考サイトなどでは軒並み使用されていたのでAnsibleで設定しようとしたが,うまく設定できず.特に,playbook実行直後は起動してるがFedoraをrebootするとfirewalldが動いててiptablesが死んでたり.firewalldをmaskしてもdisableにしてもiptablesをenableにしても.結局firewalldを設定したがかなりハマった.
mariaDBのroot userの設定
mysql系のモジュールの扱いがイマイチ.test databeseの削除などmysql_secure_installationと同じように設定したかったのだけど面倒で断念.
参考にさせていただいたWebページのひとつ
AnsibleでMySQL導入 (CentOS 7) - Qiita
PHP系
一番ハマったポイント.PHPが機能してくれなくて色々調べた.minimal installをしたからかphp.iniや10-php.confの中身,php5_moduleなどがほぼないことが判明.php.iniと10-php.confはminimalじゃないインストールをして引っ張ってきた.php5_moduleはphpを再インストールすると入った.
この辺のページを参考にさせていただいた.
PHPのphpinfo()が表示されない - http://localhost/phpinfo.phpに... - Yahoo!知恵袋
httpd faild to start | Web Hosting Talk
参考にさせていただいたWebページなど
ansible-examples/wordpress-nginx at master · ansible/ansible-examples · GitHub
Ansible チュートリアル | Ansible Tutorial in Japanese
yteraoka/ansible-tutorial · GitHub
How to install LAMP on Fedora 22
Install WordPress on Fedora 22 / 21 with AMP
Fedora 23 : ダウンロード : Server World
思いついたが..., How to use dnf on ansible?ImportError: No module...
その他,各公式ドキュメント(Ansible,Fedora)など.感謝.
Special Thanks
色々と惜しまず協力してくれた@CodeHex 氏に心から感謝.omoituita.ga
(2015/11/16)
追記
・Ansibleのインストールと設定とテストについて追記.
(2015/11/17)