LoginSignup
9
8

More than 5 years have passed since last update.

Vagrant+ansibleでLAMP環境構築(1)

Posted at

Codeception を実案件で個人的に導入していますが、もっと汎用的に色々試すことができる環境が欲しくなり、折角環境を作るなら、Vagrant+ansible で、と思ったので手順をメモする

今回は、Vagrant のセットアップまで。

今回のトピックス

  • CentOS7 では ifconfig が使えない!
  • Vagrant が 古い(1.7.2とか)だと CentOS7 で IPアドレスが付与されない
    (CentOS7 でも、ifconfig 等の net-tools をインストールしていれば古くても問題ないっぽいけど試していない)

動作環境

  • OS:Mac OS X El Capitan
  • Vagrant, ansible はインストール済み

構築したい環境

  • OS:CentOS7(Vagrant)
  • DB:MySQL5.7
  • Web:Apache+PHP7

Vagrantセットアップ

利用する box はcentos/7

まずは、vagrant init centos/7 して Vagrantfile を作成し、適宜修正する
Vagrantfile のサンプルは以下

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
  config.vm.box = "centos/7"

  ## ポート番号の設定
  config.vm.network :"forwarded_port", guest: 80, host: 8888
  config.vm.network :"forwarded_port", guest: 22, host: 2023

  ## プライペートネットワークの IP アドレスを指定する
  config.vm.network :"private_network", ip: "10.0.0.5"

  # the path on the host to the actual folder. The second argument is
  # the path on the guest to mount the folder. And the optional third
  # argument is a set of non-required options.
  # config.vm.synced_folder "../data", "/vagrant_data"

  config.vm.provider "virtualbox" do |vb|
    ## VirtualBoxで表示する名前
    vb.name = "DevServer1"
    ## メモリ
    vb.memory = "1024"
    ## ホストと時間を同期させる設定
    vb.customize ["setextradata", :id, 
        "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled", 0]  
  end
end

vagrant up でゲストを起動し、vagrant ssh で SSH 接続してみる
正常にログインできると、以下のようになる

$ vagrant up
## 省略 ##
$ vagrant ssh
Last login: Thu Mar  3 01:59:52 2016 from 10.0.2.2
[vagrant@localhost ~]$ 

ただ、ゲストは、上の Vagrantfile で 10.0.0.5 に設定しているはずなのに、
ホストからゲストへの ping がタイムアウトになってしまう。。。

$ ping 10.0.0.5
PING 10.0.0.5 (10.0.0.5): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
--- 10.0.0.5 ping statistics ---

とりあえず、再度 ssh でログインし、ifconfig してみるが、コマンドがないと怒られる。。。

[vagrant@localhost ~]$ ifconfig
-bash: ifconfig: コマンドが見つかりません

調べたら、CentOS7 では ifconfig ではなく、ip a とかするらしいので、そちらを実行すると、localhost とホストオンリー用の NIC しか表示されず、Vagrantfile の設定が反映されていない

[vagrant@localhost ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:7c:4f:9a brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic eth0
       valid_lft 75142sec preferred_lft 75142sec
    inet6 fe80::5054:ff:fe7c:4f9a/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:c1:b8:ff brd ff:ff:ff:ff:ff:ff

今まで CentOS6 系ではここでつまづくことなかったので、7 系でコマンドが変わったことが問題か・・・?と思い、Vagrant のバージョンを確認すると、結構古かったので、最新化してみる

$ vagrant version
Installed Version: 1.7.2
Latest Version: 1.8.1

To upgrade to the latest version, visit the downloads page and
download and install the latest version of Vagrant from the URL
below:

  http://www.vagrantup.com/downloads.html

If you're curious what changed in the latest release, view the
CHANGELOG below:

  https://github.com/mitchellh/vagrant/blob/v1.8.1/CHANGELOG.md

念のため、一度 vagrant destroy でイメージ削除してから vagrant up で起動

$ vagrant up
## 省略 ##
$ vagrant ssh
[vagrant@localhost ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:7c:4f:9a brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic eth0
       valid_lft 85775sec preferred_lft 85775sec
    inet6 fe80::5054:ff:fe7c:4f9a/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:fa:25:ed brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.5/24 brd 10.0.0.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fefa:25ed/64 scope link 
       valid_lft forever preferred_lft forever

今度はきちんと IP アドレスが設定されており、ホストからの ping も通ったので、Vagrant はこれでOK

9
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
9
8