Prepare CentOS 7 with Vagrant & VirtualBox

Haje Kim·2021년 8월 17일
0

개발환경

목록 보기
3/4
post-thumbnail

Vagrant 간단한 소개

단일 워크플로에서 가상 머신 환경을 구축하고 관리하기 위한 도구입니다.
현재는 HashiCorp에서 관리하고 있으며, 포터블한 가상화 개발 환경 관리 도구입니다.
VirutalBox, VMWare, Docker 등과 연동하여 인스턴스를 관리할 수 있습니다.
본 문서에서는 Oracle VM VirtualBox를 사용합니다.

Preface

Vagrant를 이용하여 2개의 CentOS 7 인스턴스를 구성해봅니다.

설치하기

01. Vagrant & VirtualBox 설치

# Vagrant 설치
brew install --cask vagrant vagrant-manager

# VirtualBox 설치
brew install --cask virtualbox

Homebrew를 이용하여 Vagrant와 VirtualBox를 설치합니다.
각 사이트에서 바이너리 파일을 다운 받아 설치할 수도 있습니다.
취향에 따라 구성하세요.

02. Vagrantfile 디렉토리 생성

Vagrant에서 프로젝트를 관리하기 위해 사용할 디렉토리를 만든 후에, 디렉토리 하위에 Configuration File을 구성합니다.
init 명령어를 이용하면 디렉토리 하위에 Vagrantfile이 생성됩니다.
Vagrant에서 제공하는 다양한 OS 이미지는 Vagrant Cloud 확인할 수 있습니다.

mkdir ~/vagrant
cd ~/vagrant
vagrant init centos/7

03. Vagrantfile 수정

생성할 인스턴스의 설정을 입력합니다.
2개의 CentOS 7을 아래의 스펙과 Hostname으로 구성합니다.

  • Hostname : cent01 / cent02
  • CPU : 1
  • Memory : 512
  • IP : 192.168.2.11 / 192.168.2.12
vi ~/vagrant/Vagrantfile
Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.box_check_update = true
 
  # Create the cent01
  config.vm.define "cent01" do |cent01|
   cent01.vm.hostname = "cent01"
   cent01.vm.network "private_network", ip:"192.168.2.11"
   cent01.vm.provider "virtualbox" do |v|
    v.name = "cent01"
    v.memory = 512
    v.cpus = 1
    v.linked_clone = true
    v.gui = false
  end
end
 
  # Create the cent02
  config.vm.define "cent02" do |cent02|
   cent02.vm.hostname = "cent02"
   cent02.vm.network "private_network", ip:"192.168.2.12"
   cent02.vm.provider "virtualbox" do |v|
    v.name = "cent02"
    v.memory = 512
    v.cpus = 1
    v.linked_clone = true
    v.gui = false
  end
end

04. CentOS 7 스타트!

생성한 vagrant 프로젝트 디렉토리에서 명령어를 입력하여 인스턴스를 켜보도록 합니다.

vagrant up

Bringing machine 'cent01' up with 'virtualbox' provider...
Bringing machine 'cent02' up with 'virtualbox' provider...
==> cent01: Checking if box 'centos/7' version '2004.01' is up to date...
==> cent01: Clearing any previously set forwarded ports...
==> cent01: Clearing any previously set network interfaces...
==> cent01: Preparing network interfaces based on configuration...
    cent01: Adapter 1: nat
    cent01: Adapter 2: hostonly
==> cent01: Forwarding ports...
    cent01: 22 (guest) => 2222 (host) (adapter 1)
==> cent01: Running 'pre-boot' VM customizations...
==> cent01: Booting VM...
==> cent01: Waiting for machine to boot. This may take a few minutes...
    cent01: SSH address: 127.0.0.1:2222
    cent01: SSH username: vagrant
    cent01: SSH auth method: private key
==> cent01: Machine booted and ready!
==> cent01: Checking for guest additions in VM...
    cent01: No guest additions were detected on the base box for this VM! Guest
    cent01: additions are required for forwarded ports, shared folders, host only
    cent01: networking, and more. If SSH fails on this machine, please install
    cent01: the guest additions and repackage the box to continue.
    cent01:
    cent01: This is not an error message; everything may continue to work properly,
    cent01: in which case you may ignore this message.
==> cent01: Setting hostname...
==> cent01: Configuring and enabling network interfaces...
==> cent01: Rsyncing folder: /Users/haje/vgrt/ => /vagrant
==> cent01: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> cent01: flag to force provisioning. Provisioners marked to run always will still run.
==> cent02: Checking if box 'centos/7' version '2004.01' is up to date...
==> cent02: Clearing any previously set forwarded ports...
==> cent02: Fixed port collision for 22 => 2222. Now on port 2200.
==> cent02: Clearing any previously set network interfaces...
==> cent02: Preparing network interfaces based on configuration...
    cent02: Adapter 1: nat
    cent02: Adapter 2: hostonly
==> cent02: Forwarding ports...
    cent02: 22 (guest) => 2200 (host) (adapter 1)
==> cent02: Running 'pre-boot' VM customizations...
==> cent02: Booting VM...
==> cent02: Waiting for machine to boot. This may take a few minutes...
    cent02: SSH address: 127.0.0.1:2200
    cent02: SSH username: vagrant
    cent02: SSH auth method: private key
==> cent02: Machine booted and ready!
==> cent02: Checking for guest additions in VM...
    cent02: No guest additions were detected on the base box for this VM! Guest
    cent02: additions are required for forwarded ports, shared folders, host only
    cent02: networking, and more. If SSH fails on this machine, please install
    cent02: the guest additions and repackage the box to continue.
    cent02:
    cent02: This is not an error message; everything may continue to work properly,
    cent02: in which case you may ignore this message.
==> cent02: Setting hostname...
==> cent02: Configuring and enabling network interfaces...
==> cent02: Rsyncing folder: /Users/haje/vgrt/ => /vagrant
==> cent02: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> cent02: flag to force provisioning. Provisioners marked to run always will still run.

05. Vagrant 인스턴스 SSH 접속

생성한 인스턴스에 손쉽게 접속하도록 합니다.

vagrant ssh cent01
profile
Solutions Architect

1개의 댓글

comment-user-thumbnail
2021년 12월 10일

여기가 그렇게 유명한 블로그 맛집인가요?

답글 달기