シリーズトップページ |
---|
https://qiita.com/robozushi10/items/bbdcb9e3548fb5d22dcb |
概要
仮想PC (以降「VM」) が 2台必要になった場合に、Vagrant + VirtualBox を使って
VM 2台「192.168.101.1」「192.168.101.2」を立てるための手順である.
なお、VM の OS は Linux を想定しており、ここでは「Centos-7-v7.4-Minimal-CLI」を使う.
環境
物理PC
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS"
前提条件
次の (a)(b) の両方を満たしていること.
(a) 物理PC 上に VirtualBox と Vagrant がインストール済みであること.
(b) Vagrant を使って VirtualBox の操作ができること.
手順
1. Vagrantfile を作成する
https://app.vagrantup.com/CentosBox/boxes/Centos-7-v7.4-Minimal-CLI より、
下図の要領で「Centos-7-v7.4-Minimal-CLI」の雛形となる Vagrantfile を入手する.
なお、VM へのログインIDとパスワードも「vagrant
」と記されている.
雛形
Vagrant.configure("2") do |config|
config.vm.box = "CentosBox/Centos-7-v7.4-Minimal-CLI"
config.vm.box_version = "17.11.24"
end
2. Vagrantfile に今回構築したい VM「192.168.101.1」と「192.168.101.2」を定義する
下記🛑のように、VM「192.168.101.1」と「192.168.101.2」を定義している.
また、 VM のマシン名をそれぞれ「ansibleclient1」「ansibleclient2」としている.
加えて、メモリの割り当て量も 1024MB (1GB) としている.
なお、別の Box (Dockerで例えるとイメージ) を使いたい場合は、🔥 を変更すれば良い.
# coding: utf-8
# -*- mode: ruby -*-
# vi: set ft=ruby :
LINUX_OS = 'CentosBox/Centos-7-v7.4-Minimal-CLI' # 🔥
# ハッシュの配列として定義している
vm_spec = [
{
name: 'ansibleclient1',
cpu: 1,
memory: 1024,
box: LINUX_OS,
private_ip: '192.168.101.1', # 🛑
},
{
name: 'ansibleclient2',
cpu: 1,
memory: 1024,
box: LINUX_OS,
private_ip: '192.168.101.2', # 🛑
},
]
Vagrant.configure("2") do |config|
# ハッシュ配列から 1個ずつ取り出してセットアップしている
vm_spec.each do |spec|
config.vm.define spec[:name] do |v|
v.vm.box = spec[:box]
v.vm.hostname = spec[:name]
v.vm.network :private_network,ip: spec[:private_ip]
v.vm.provider "virtualbox" do |vbox|
vbox.gui = false
vbox.cpus = spec[:cpu]
vbox.memory = spec[:memory]
end
end
end
end
3. VM を稼働させる
$ vagrant up
4. VM が稼働確認をする
vagrant status
VM 2台が running 状態であることを確認する
$ vagrant status
Current machine states:
ansibleclient1 running (virtualbox)
ansibleclient2 running (virtualbox)
vagrant ssh
ホストから VM 2台に対して SSH 接続できることを確認する
$ vagrant ssh ansibleclient1
Last login: Thu Jul 27 18:09:11 2017
$ vagrant ssh ansibleclient2
Last login: Thu Jul 27 18:09:21 2017
5. ネットワーク設定をする
下図の要領で以下ができるようにする.
・ホストと VM 間の接続
・VM 同士の接続
5-1. ポートフォワーディングルールを開く
5-2. 2台の VM に対して次のようにする
5-3. vboxnet(N) (ホストオンリーアダプター) を作成する.
参考にした情報
・https://qiita.com/tukiyo3/items/24dff2b3c234382a83e2
5-3-1. 192.168.101.1 の vboxnet しか存在しないことを確認する
物理ホスト上で以下を実行する.
もしも 192.168.101.2 が存在する場合は 5-3-2 以降は不要である.
$ ip a s
(略)
14: vboxnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.101.1/24 brd 192.168.101.255 scope global vboxnet0
valid_lft forever preferred_lft forever
5-3-2. 192.168.101.2 用の vboxnet を作成する
物理ホストで以下を実行する.
$ VBoxManage hostonlyif create
5-3-3. 192.168.101.2 用の vboxnet が作成されたことを確認する
下記🛑の通り、追加された.
$ ip a s
(略)
14: vboxnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.101.1/24 brd 192.168.101.255 scope global vboxnet0
valid_lft forever preferred_lft forever
15: vboxnet1:🛑 <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 0a:00:27:00:00:01 brd ff:ff:ff:ff:ff:ff
5-3-4. VM の設定を有効にする
$ vagrant reload
5-3-5. ネットワーク疎通確認をする
最小確認として次を実行すれば良い
・ホストから「192.168.101.1」への ping チェック
・ホストから「192.168.101.2」への ping チェック
・「192.168.101.1」から「192.168.101.2」への ping チェック
以上.