Vagrant 설치 및 기본 명령어

강재민·2022년 4월 26일
1
post-thumbnail

Vagrant는 가상컴퓨터의 개발환경을 쉽게 Code로 구축해주는 프로그램이다. hashicorp 에서 제작했는데 요즘 성장중인 스타트업 회사이다.


Vagrant 설치

  1. Chocolatey를 먼저 터미널에 설치
  2. 터미널에 choco install vagrant -y 명령어를 입력하고 설치
  3. 터미널에 vagrant라고 입력해보면 설치가 잘 되어있는지 확인할 수 있다.

    프로그램을 설치할 때 에러가 뜬다면 터미널을 관리자권한으로 실행했는지 확인해보자


vagrant 기본 파일 생성

  1. vagrant를 실행할 폴더를 하나 만들어준다.
mkdir vagrant
cd ./vagrant/
mkdir test
cd test
pwd

vagrant를 실행할 때 경로가 매우 중요하다. 경로가 다르면 실행할 파일을 찾지 못하기 때문이다. 다음에 다시 vagrant를 실행하기 위해서는 생성했던 경로를 꼭 cd로 변경해주고 실행해야한다.

  1. 생성할 가상 컴퓨터의 기본 이미지를 고른다.
    https://app.vagrantup.com/boxes/search 여기에 보면 미리 준비 되어있는 이미지를 제공한다. 우리는 centos7을 사용해볼 예정이다. 아래 명령어를 터미널에 입력한다. 이 명령어를 통해 vagrant를 설정할 기본 파일을 만들어줄 수 있다.
vagrant init centos/7
  1. 아래 명령어로 생성한 vagrant 기본 파일을 편집할 수 있다.
    해당 파일의 언어는 ruby로 구성되어있는데 vagrant 자체가 ruby를 기반으로 만들어 졌기 때문이다. 하지만 다음 버전부터는 Go로 만들 예정이라 나중에는 파일구조가 바뀔 것이다.
notepad .\vagrantfile

Vagrant 기본 명령어

명령어를 실행시키기 전에 꼭 디렉토리 경로가 잘 되어있는지 확인

명령어의미
vagrant upvm을 만들어주고 실행시켜준다. 그리고 이미 설치된 상태에서 vagrant up 하면 실행만 시켜준다.
vagrant status상태를 확인 가능
vagrant halt전원을 꺼준다
vagrant -h커맨드들의 용도나 사용법 확인 가능
vagarnt ssh가상컴퓨터 내부로 접속 가능
vagrant destroy가상 컴퓨터를 지워주게 된다.

간단한 실습

  1. ~/vagrant/ansible/Vagrantfile경로 디렉토리를 만들어준다.
cd ~/vagrant/
mkdir ansible
cd ansible
mkdir Vagrantfile
cd Vagrnatfile
  1. vagrant 기본 파일을 만들어준다.
    이 때 vagrant init 명령어로 파일을 만들고나서 편집을 하는 방법도 있지만 아래 명령어로 txt파일로 기본파일을 만드는 방법도 소개해보겠다.
  2. 아래 명령어로 파일을 생성해주고 편집기를 열어준다.
notepad .\vagrantfile
  1. 아래 예제 코드를 복사 붙여넣기 해준다.
Vagrant.configure("2") do |config|
	# Define VM
	config.vm.define "controller" do |centos|
		centos.vm.box = "centos/7"
		centos.vm.hostname = "controller"
		centos.vm.network "private_network", ip: "192.168.100.10"
		centos.vm.provider "virtualbox" do |vb|
			vb.name = "controller"
			vb.cpus = 2
			vb.memory = 2048
		end
	end
	# Define VM
	config.vm.define "node1" do |centos|
		centos.vm.box = "centos/7"
		centos.vm.hostname = "node1"
		centos.vm.network "private_network", ip: "192.168.100.11"
		centos.vm.provider "virtualbox" do |vb|
			vb.name = "node1"
			vb.cpus = 2
			vb.memory = 2048
		end
	end
	# Define VM
	config.vm.define "node2" do |centos|
		centos.vm.box = "centos/7"
		centos.vm.hostname = "node2"
		centos.vm.network "private_network", ip: "192.168.100.12"
		centos.vm.provider "virtualbox" do |vb|
			vb.name = "node2"
			vb.cpus = 2
			vb.memory = 2048
		end
	end
end
  1. 다시 터미널로 돌아와서 아래 명령어로 확장자를 제거해준다.
    vagrant파일은 확장자를 지정하면 실행이 안된다.
mv .\Vagrantfile.txt .\Vagrantfile
  1. vagrant파일 실행해서 가상머신 구축하기
vagrant up
  1. 가상머신에 접속하기
    가상머신이 1개 밖에 없을 때는 아래 명령어로 접속이 가능하지만 우리는 지금 controllernode1 node2를 구축했기 때문에 아래 명령어로는 접속이 안된다.
vagrant ssh

그래서

vagrant ssh controller

이렇게 어떤 가상머신으로 접속할지 입력해주어야한다.

  1. 접속 확인
PS C:\Users\Administrator\vagrant\ansible\Vagrantfile> vagrant ssh controller
[vagrant@controller ~]$

0개의 댓글