0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[03] Vagrant を使って VM「192.168.101.1」と「192.168.101.2」を立てる

Last updated at Posted at 2021-08-28
シリーズトップページ
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」と記されている.

image.png

雛形

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. ポートフォワーディングルールを開く

image.png

5-2. 2台の VM に対して次のようにする

image.png

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 チェック

 

以上.

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?