본문 바로가기
카테고리 없음

[Vagrant] Windows VirtualBox VM 3대 구성

by 쿡노트 2023. 9. 26.
반응형

Windows에서 VirtualBox에 VM을 3대 만들어서 서로 통신하게 만들고 싶은데, 각각 VM을 만들어서 네트워크 설정하는 건 까다롭거나 시간이 걸릴 수 있다.
Vagrant 설치해서 몇 분 만에 VM 3대를 만들고 통신이 되게끔 할 수 있다.

Vagrant는 주로 가상머신을 생성하고 관리할 때 사용된다.

 

전반적인 글의 내용은 아래 블로그를 참고하였습니다. (Vagrant 사용 시 많은 도움을 받았습니다.)

https://jungeol.github.io/2020/01/07/Vagrant-Windows-%EC%82%AC%EC%9A%A9%EB%B2%95/  

 

VirtualBox는 이미 설치했다고 가정한다.(다운로드하여서 몇 번의 클릭만으로 install 가능)
--Vagrant 2.3.4 버전은 VirtualBox 버전 6.1.x 까지만 호환
--Vagrant 2.3.7 버전(최신 버전 23.6.16 Release)은 VirtualBox 버전 7.0.x 까지 호환 가능

Vagrant Windows 64bit 버전 다운로드하여 설치(AMD64)

https://developer.hashicorp.com/vagrant/downloads

Vagrant 설치 후 버전 확인 (Windows CMD)

c:\>vagrant -v
Vagrant 2.3.4

Vagrant init

Vagrant init 명령을 수행한 디렉터리에 Vagrant 설정 파일이 생성되며, VM은 VertualBox 환경설정 > '기본 머신 폴더' 지정한 경로에 생성된다.
vagrant init을 수행할 디렉터리 이동 후 (또는 VM 생성될 디렉터리 이동) vagrant init 수행 
D:\>cd VirtualBox VMs\CentOS7.9>

*참고: D드라이브 이동법

C:\>D:

d:\VirtualBox VMs\CentOS7.9>vagrant init

해당 디렉터리에 아래 두 파일이 및 폴더가 생성된다.

Vagrantfile 수정

메모장에서 Vagrantfile을 열면 안에 설명이 되어 있는데 해당 내용 대신 아래 'Vagrantfile' 스크립트 전체를 복사하면 된다.
(본인의 사양에 맞게 편집 또는 그대로 복사)

 

**base image는 아래 링크를 통해 원하는 버전 검색
https://app.vagrantup.com/boxes/search

Vagrantfile

 

 

$init_script = <<SCRIPT

yum -y update

yum -y install wget

SCRIPT

Vagrant.configure("2") do |config|

    # Define base image
        config.vm.box = "bento/centos-7.9"

    # Manage /etc/hosts on host and VMs (hostmanager 필요시 설정 config.hostmanager 4개 전부 주석 처리함)
    #config.hostmanager.enabled = false
    #config.hostmanager.manage_host = true
    #config.hostmanager.include_offline = true
    #config.hostmanager.ignore_private_ip = false

# server01
    config.vm.define :server01 do |server01|
        server01.vm.provider :virtualbox do |v|
            v.name = "server01"
            v.customize ["modifyvm", :id, "--memory", "1024"]
        end
        server01.vm.network :private_network, ip: "192.168.56.101"
        server01.vm.hostname = "server01"
        server01.vm.provision :shell, :inline => $init_script # 초기화 스크립트 실행
    end

# server02
    config.vm.define :server02 do |server02|
        server02.vm.provider :virtualbox do |v|
            v.name = "server02"
            v.customize ["modifyvm", :id, "--memory", "1024"]
        end
        server02.vm.network :private_network, ip: "192.168.56.102"
        server02.vm.hostname = "server02"
        server02.vm.provision :shell, :inline => $init_script # 초기화 스크립트 실행
    end

# server03
    config.vm.define :server03 do |server03|
        server03.vm.provider :virtualbox do |v|
            v.name = "server03"
            v.customize ["modifyvm", :id, "--memory", "1024"]
        end
        server03.vm.network :private_network, ip: "192.168.56.103"
        server03.vm.hostname = "server03"
        server03.vm.provision :shell, :inline => $init_script # 초기화 스크립트 실행
    end
end

 

 

Vagrant up

터미널 창에서 vagrant up 수행하면, vagrantfile을 읽어서 이미 설치되었던 VirtualBox에 VM을 생성해준다.
#3개의 CentOS 7.9 버전 설치 로그

d:\VirtualBox VMs\CentOS7.9>vagrant up

Bringing machine 'server01' up with 'virtualbox' provider...
Bringing machine 'server02' up with 'virtualbox' provider...
Bringing machine 'server03' up with 'virtualbox' provider...
==> server01: Box 'bento/centos-7.9' could not be found. Attempting to find and install...
    server01: Box Provider: virtualbox
    server01: Box Version: 202107.21.0

VM root 패스워드 설정

> vagrant ssh [서버이름]
각각 3대의 서버에 접속해서 sudo passwd root 입력 후 원하는 패스워드 설정

d:\VirtualBox VMs\CentOS7.9>vagrant ssh server01
This system is built by the Bento project by Chef Software
More information can be found at https://github.com/chef/bento
[vagrant@server01 ~]$ sudo passwd root
Changing password for user root.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[vagrant@server01 ~]$ exit
logout
Connection to 127.0.0.1 closed.

*server02, server03 동일하게 수행
d:\VirtualBox VMs\CentOS7.9>vagrant ssh server02

[vagrant@server02 ~]$ sudo passwd root
d:\VirtualBox VMs\CentOS7.9>vagrant ssh server03

[vagrant@server03 ~]$ sudo passwd root

(참조)$init_script 부분에 yum으로 설치한 wget 패키지 설치 확인

[vagrant@server01 ~]$ rpm -qa | grep wget
wget-1.14-18.el7_6.1.x86_64

Vagrant 기본 명령어 참조

> vagrant halt
가상머신을 종료한다.
> vagrant destroy
가상머신을 삭제한다.

 

감사합니다.

반응형