読者です 読者をやめる 読者になる 読者になる

walkingmask’s development log

IT系の情報などを適当に書いていきます

MENU

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)のブラウザからFedoraWordPressが正常にインストールされてるか確認するためにFedoraのネットワークに追加設定を行う.
Vartual Boxの画面でFedoraのSettingsを開いてNetworkを選択.
f:id:walkingmask:20151116033246p:plain
Adapter 1の項目のAdvancedをクリック.
f:id:walkingmask:20151116033252p:plain
更に,下の方にあるPort Fowardingをクリック.右の小さい緑色の+ボタンを押して,以下のように設定する.
f:id:walkingmask:20151116033258p:plain
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を使ってLAMPWordPressFedoraにインストール

Ansibleを使ってWordPressのインストールとそのためのLAMPの設定を自動的に行う.playbook実行前にVMをcloneしておくことを強く推奨する.
playbookのサンプルをGitHubからダウンロード.(あくまでサンプルなので学習用.設定がまだまだなので実用上の使用は非推奨)github.com
ダウンロード先のディレクトリで以下のコマンドを実行.

ansible-playbook site.yml

結構時間がかかるが無事終わったらローカルのブラウザで

http://localhost:8080

へアクセス.以下のような画面が表示されればインストール成功.
f:id:walkingmask:20151116033305p:plain
あとはWordPressを設定するだけ.(できなかった場合はVMのNetworkの設定を確認する,rebootしてみるなど.それでもダメなら多分失敗.そこからは自力で努力!)

ハマった点など

ありすぎて記録してないものが多いが,覚えてるだけlog.世の中のすべてのlogに感謝.

python-dnf

これをインストールせずにplaybookを実行すると,playbook上でdnfを使えずerrorが出る.

dnf install wordpress

できないことはない.ただ一連のWordPressファイルが見当たらず断念.

iptables

参考サイトなどでは軒並み使用されていたのでAnsibleで設定しようとしたが,うまく設定できず.特に,playbook実行直後は起動してるがFedorarebootするとfirewalldが動いててiptablesが死んでたり.firewalldをmaskしてもdisableにしてもiptablesをenableにしても.結局firewalldを設定したがかなりハマった.

apacheのdocument rootの設定

最初は/var/www/wordpressを設定しようとしていたが,なかなかうまく設定できなくて断念.多分もう少し頑張ったらいける.

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

Ansibleの冪等性

playbookを2回以上実行した時errorになる場所の改善.mariaDBのroot userの設定はignore_errorsを使って.WordPressのダウンロードはシェルスクリプトを使って.けどイマイチ納得してない.

SELinuxhttpd.conf,my.cnf,sshdなどの設定

勉強不足で全く内容わからず.至らない点が多いと思う.ほぼ参考Webページから引用させてもらった.これから勉強してく.

Special Thanks

色々と惜しまず協力してくれた@CodeHex 氏に心から感謝.omoituita.ga
(2015/11/16)

追記

・Ansibleのインストールと設定とテストについて追記.
(2015/11/17)