Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

経緯

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構築も個人ブログですがまとめました。

http://kenzo0107.hatenablog.com/entry/2015/05/10/234645

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

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away