And Brain said,

Vagrant, 가상 환경의 유목민 본문

IT/DevOps \ Architecture

Vagrant, 가상 환경의 유목민

The Man 2023. 10. 31. 14:06
반응형

 

Vagrant는 HashiCorp에서 개발한 오픈소스 소프트웨어로, 개발 환경의 일관성과 재현성을 향상시키기 위한 도구로, 개발자와 운영팀 간의 "내 로컬에서는 잘 돌아갔는데..."라는 문제를 해결하기 위해 고안되었습니다.

Vagrant를 사용하면, 각 개발자의 로컬 PC, 테스트 서버, 스테이징 서버 등 다양한 환경에서 동일한 환경을 갖출 수 있습니다.

Vagrant는 여러 가상화 플랫폼과 통합될 수 있으며, 대표적으로 VirtualBox, VMware, Hyper-V 등이 있습니다. 그 중 VirtualBox는 오픈소스로 제공되며 Vagrant와 자주 사용됩니다.

Vagrant에서는 기본 이미지를 '상자(Box)'라고 부릅니다. 이 상자는 기본 OS 및 추가 소프트웨어를 포함할 수 있습니다.
여러 개의 상자를 다운로드하여 사용할 수 있으며, 자신만의 상자를 생성하여 공유하는 것도 가능합니다. 시작합시다.

 

 

먼저, 아래 링크를 통해 각자의 환경에 맞게 설치해줍니다.

https://developer.hashicorp.com/vagrant/downloads?product_intent=vagrant

 

Install | Vagrant | HashiCorp Developer

Explore Vagrant product documentation, tutorials, and examples.

developer.hashicorp.com

 

설치되었다면, vagrant init 명령어를 통해 Vagrantfile을 생성합니다.

--- (기존 설정들) ---
config.vm.box = "centos/7"
  
--- (기존 설정들) ---
config.vm.synced_folder ".", "/vagrant", disabled: true

생성된 Vagrantfile 내에 config 정보들을 변경해줍니다.

 

설치 후, vagrant up 명령어를 통해 

시작되는지 테스트해봅니다. VirtualBox에 가상머신이 생성된 것까지 확인하실 수 있으실 겁니다. 이 가상머신은 지워줍시다.

 

이제 Vagrant를 사용하여, VirtualBox에 Ansible 노드들을 구성해보도록 합시다.

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

Vagrant.configure("2") do |config|
  config.vm.define :ansible_server do |cfg|
    cfg.vm.box = "centos/7"
    cfg.vm.provider "virtualbox" do |vb|
      vb.name = "Ansible-Server"
      # VirtualBox Guest Additions 확인을 비활성화
      vb.check_guest_additions = false
      vb.functional_vboxsf     = false
    end
    cfg.vm.hostname = "ansible-server"
    cfg.vm.synced_folder ".", "/vagrant", disabled: true
    cfg.vm.network "public_network", ip: "192.168.33.111"
    cfg.vm.network "forwarded_port", guest: 22, host: 19210, auto_correct: false, id: "ssh"
    cfg.vm.provision "shell", path: "bootstrap.sh"
  end
end

 

그리고, vagrant up 명령어를 다시 실행해주면, VirtualBox에 default 가상 머신과 Ansible-Server 라는 가상 머신이 생성된 것을 확인하실 수 있습니다.

 

완료되었다면, vagrant ssh ansible_server 명령어를 통해 ssh 접속을 한 후 ansible 명령어를 입력하여 잘 설치되었는지 확인.

 

오늘 배운 Vagrant는 다음 Ansible 포스팅에서 사용이 될 것입니다.

 

Thanks for watching, Have a nice day.

반응형
Comments