Cloud Architect 꿈꾸기

Virtual Machine/VirtualBox

Vagrant 설치

HwanJae 2021. 1. 6. 13:46

Vagrant를 통해 로컬 개발 환경의 IaC (Infrastructure as Code)를 구성하려한다.

Vagrant는 HashiCorp사에서 제공하는 가상 환경 구축 도구이다.

간단하게 가상환경을 쉽게 Provisioning 해주는 도구라고 이해할 수 있겠다.

Vagrant의 설치는 공식 홈페이지에서 받을 수 있다.

www.vagrantup.com/

설치가 완료되었으면 간단한 Vagrantfile을 생성하고 가상머신 환경을 구축해보겠다.

vagrant init

명령어는 vagrant가 실행되는데 필요한 Vagrantfile 템플릿을 자동으로 생성해준다.

간단히 Vagrantfile을 편집해준다.

base가 될 가상머신의 운영체제를 centos로 설정해주고 이름, 네트워크를 설정해준다.

이제 가상머신을 생성해주겠다.

vagrant up

vagrant는 가상머신에 의존성을 가진 도구이기 때문에 떄문에, 만약 가상화 소프트웨어가 없다면 소프트웨어를 설치해달라는 문구가 나오게 된다.

 

가상화 소프트웨어가 존재할 경우 vagrant up을 통해 가상머신이 구축된다.

vagrant로 생성된 가상머신에 접속하는 방법은

1) VirtualBox를 통한 접속

2) Vagrant ssh를 이용한 접속

3) Putty등의 SSH 클라이언트를 이용한 접속이 있겠다.

 

여기서는 간단히 putty를 통해 가상머신에 접속해보겠다.

ssh를 통해 접속할 경우에는 key 파일이 필요한데 key가 담긴 위치는

vagrant ssh-config

를 통해 확인할 수 있다.

putty의 경우는 키를 ppk 파일로 변환해주어야 하기 때문에 PUTTYgen을 사용해준다.

이후 위에 작성된 ip와 포트를 통해 가상머신 내부로 접속한다.

정상적으로 접속되었다.

 

가상머신을 정지하고 삭제하는 방법으로는

vagrant halt
vagrant destroy

두 가지 명령어를 이용할 수 있다.

 

vagrant를 응용하면 팀 단위로 웹 서버가 설치된 동일한 가상 환경을 공유하는 등 가상 환경의 구성이 매우 용이해진다.

아래는 참조코드

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

Vagrant.configure("2") do |config|
# config.vm.box = "centos/7"
  config.vm.box = "generic/centos7"
  config.vm.hostname = "demo"
  config.vm.network "private_network", ip: "192.168.33.10"
  config.vm.synced_folder ".", "/home/vagrant/sync", disabled: true
  config.vm.provision "shell", inline: $script
end

$script = <<SCRIPT
  yum install -y epel-release
  yum install -y nginx
  echo "Hello, Vagrant" > /usr/share/nginx/html/index.html
  systemctl start nginx
SCRIPT

'Virtual Machine > VirtualBox' 카테고리의 다른 글

VirtualBox Network 종류  (0) 2021.01.04
가상 머신 실습 환경 구성을 위한 도구들  (0) 2021.01.04