LoginSignup
7
8

More than 5 years have passed since last update.

VagrantにてAnsibleでソースからhttpd, MySQL, PHPをインストールして起動確認するまで

Last updated at Posted at 2015-05-22

経緯

LAMPが主戦場という会社はまだまだ多くあり
Vagrant+AnsibleでLAMP構築するのも需要があるかな、
と思い個人的に利用していたものをまとめました。

何故ソースから?

バージョン指定が明確な為です。

yumでのインストールはリポジトリに左右され
バージョン指定がしにくいです。

なので指定バージョンのソースからのインストールをするようにしました。

開発環境

  • MacOSX Yosemite 10.10.3
  • VirtualBox 4.3.26 r98988
  • Vagrant 1.7.2
  • Ansible 1.9.1

手順

1. Vagrant Box追加

$ vagrant box add centos6.5 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.1/centos65-x86_64-20131205.box

2. gitリポジトリをclone

$ git clone https://github.com/kenzo0107/Vagrant-Ansible

こちらのGitでは以下バージョンを指定しています。
- httpd : 2.4.12
- mysqld : 5.5.39
- PHP : 5.3.6

※バージョン変更する際、URLが正しく存在するかチェックした後に変更してください。
※変数以外の箇所も異なる場合は変更するようにしてください。

3. vagrantからVM起動

$ cd Vagrant-Ansible/centos6
$ vagrant up

4. ssh-config設定をssh.configへ転記

vagrant起動後に以下実行します。
一度vagrant haltなどで停止状態にした後再度vagrant upした場合でも以下実行してください。

$ vagrant ssh-config > ssh.config

▼ssh.configは以下のようになります。

Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/kenzo/Vagrant/Vagrant-Ansible/centos6/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

※IdentityFile のパスはgitをcloningし、vagrant upしたパス配下のprivate_keyが指定されます。

▼ansible.cfg

Ansibleの設定ファイルに以下設定しておくとコマンドがシンプルになります。
イベントリファイル hostfile = hosts
ssh接続時の設定 ssh_args = -F ssh.config

[defaults]
hostfile = hosts

[ssh_connection]
ssh_args = -F ssh.config

▼hosts

Vagrantのnode名は変更していない限り、defaultなので
defaultを指定しています。
Ansibleはこのhostsで指定したnodeにしかアクセスできません。

default

5. VM疎通テスト

それでは疎通テストしてみましょう。

$ ansible default -m ping

※defaultというnodeに対し、-m でモジュール(コマンド)指定しています。

default | success >> {
    "changed": false,
    "ping": "pong"
}

上記のようにsuccessと出力されれば成功!
疎通確認でき、環境構築準備が整いました。

6. Ansibleで環境構築実行

$ ansible-playbook lamp.yml

※時折、Timeoutが確認されましたが、再度実行いただくと問題なく構築されたことを確認してます。

簡単にlamp.ymlについて概要説明です。

  • httpdインストール
A. httpdをビルドする為に必要な以下モジュールをインストールしビルド
- APR (Apache Portable Runtime)
- APR-Util (Apache Portable Runtime Util)
B. ドキュメントルートを /var/www/htmlに変更
C. apacheユーザ追加
D. 起動スクリプト登録/起動
  • mysqlインストール
A. mysqlをビルドする為に必要な以下モジュールをインストールしビルド
- CMAKE
B. mysqlユーザ追加
C. 起動スクリプト登録/起動
  • PHP
A. PHPソースをインストールしビルド

7. Apache起動確認

http://192.168.33.10にアクセスし
Working!と表示されれば成功

8. phpからMySQLへの接続確認

http://192.168.33.10/dbtest.phpにアクセスし
Connect Success: Localhost via UNIX socket
と表示されれば成功

以上です。


その他、Vagrant+AnsibleでCentOS7にSentry構築も個人ブログですがまとめました。

今度は Vagrant+Ansibleで nginx + golang 環境構築 辺りを着手してみよう♪

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8