[Vagrant] 테스트 환경을 자동으로 구성하는 도구
OS환경은 Windows 10 기준으로 작성되었습니다.
2.1 테스트 환경을 자동으로 구성하는 도구
2.1.1 버추얼박스 설치하기
-
버추얼박스 다운로드 페이지 접속
https://www.virtualbox.org/wiki/Downloads
-
사용하는 운영체제에 맞는 버전을 다운로드
-
다운로드 받은 설치 파일을 찾아 실행하고 [Next] 클릭하여 설치
2.1.2 베이그런트 설치하기
-
베이그런트 다운로드 페이지 접속
https://www.vagrantup.com/downloads
-
사용하는 운영체제에 맞는 버전을 다운로드
-
다운로드 받은 설치 파일 찾아 실행하고 [Next] 클릭하여 설치
2.1.3 베이그런트 구성하고 테스트하기
자주 사용하는 베이그런트 명령어
vagrant init | 프로비저닝을 위한 기초 파일을 생성 |
vagrant up | Vagrantfile을 읽어 프로비저닝을 진행 |
vagrant halt | 베이그런트에서 다루는 가상머신을 종료 |
vagrant destory | 베이그런트에서 관리하는 가상머신 삭제 |
vagrant ssh | 베이그런트에서 관리하는 가상 머신에 ssh 접속 |
vagrant provision | 베이그런트에서 관리하는 가상 머신에 변경된 설정 적용 |
-
베이그런트 초기화
vagrant init
명령어를 실행하여 기본 코드를 생성 -
명령어를 실행하면
Vagrantfile
파일이 작성된다. 에디터로 해당 파일을 오픈하여 내용 수정config.vm.box = "base" 이 부분을 찾아서 config.vm.box = "sysnet4admin/CentOS-k8s" 로 변경
Vagrantfile
파일 저장 및 종료 후vagrant up
명령어 실행vagrant up
Vagrantfile 수정이 귀찮으신분들은
vagrant init sysnet4admin/CentOS-k8s
명령어로 한번에 수정 없이 할 수 있다.-
Hyper-V가 활성화 되어있지 않은 경우 아래와 같은 에러가 발생합니다.
친절하게 제어판에 Windows 기능에서 활성화 하라고 알려주네요. -
제어판 > 프로그램 및 기능 > Windows 기능 켜기/끄기 순으로 들어가서
Hyper-V
,Windows 하이퍼바이저 플랫폼
활성화 - 다시
vagrant up
명령어를 실행 후 가상 머신 이미지를 내려 받는지 확인.vagrant up
- 설치 된 CentOS 에 접속
vagrant ssh
- 설치 된 CentOS 빠져 나가기
exit
- 설치 된 CentOS 종료
vagrant destroy -f
2.2베이그런트로 테스트 환경 구축하기
2.2.1 가상 머신에 필요한 설정 자동으로 구성하기
문법 간략 설명
Vagrant.configure(“2”) | 숫자 2는 vagrant api 버전 |
do | 설정의 시작, do 와 end의 들여쓰기 위치를 정확히 해야한다. |
config.vm.define | 가상 머신 tag를 정의 |
cfg.vm.box | provisioning할 이미지를 정의 |
cfg.vm.provider | provider를 virtualbox로 정의 |
vb.name | 가상 머신 이름 정의 |
vb.customize | 가상머신 스펙을 정의 |
cfg.vm.host_name | hostname 정의 |
cfg.vn.network | 네트워크에 대한 설정 |
cfg.vm.synced_folder | host와 사용하게될 공유 폴더를 지정 |
end | 설정의 종료, do 와 end의 들여쓰기 위치를 정확히 해야한다. |
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.define "m-k8s" do |cfg|
cfg.vm.box = "sysnet4admin/CentOS-k8s"
cfg.vm.provider "Virtualbox" do |vb|
vb.name = "m-k8s"
vb.customize ["modifyvm", :id, "--cpus", 1]
vb.customize ["modifyvm", :id, "--memory", 1024]
end
cfg.vm.host_name = "m-k8s"
cfg.vm.network "private_network", ip: "192.168.1.10"
cfg.vm.network "forwarded_port", guest: 22, host: 60010, auto_correct: true, id: "ssh"
cfg.vm.synced_folder "./data", "vagrant", disabled: true
end
end
- 저장 후
vagrant up
명령어를 실행합니다.vagrant up
-
vagrant ssh
명령어를 실행하여 가상머신에 접속.
2.2.2 가상 머신에 추가 패키지 설치하기
- install_pkg.sh 작성
#!/usr/bin/env bash # install packages yum install epel-release -y yum install vim-enhanced -y
- 셀 프로비전 추가
cfg.vm.provision "shell", path: "install_pkg.sh"
vagrant provision
명령어를 통해 스크립트 실행하여 패키지 설치vagrant provision
2.2.3 가상 머신 추가로 구성하기
- vagrantfile
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| (1..3).each do |i| config.vm.define "w#{i}-k8s" do |cfg| cfg.vm.box = "sysnet4admin/CentOS-k8s" cfg.vm.provider "virtualbox" do |vb| vb.name = "w#{i}-k8s" vb.customize ["modifyvm", :id, "--cpus", 1] vb.customize ["modifyvm", :id, "--memory", 1024] end cfg.vm.host_name = "w#{i}-k8s" cfg.vm.network "private_network", ip: "192.168.1.1#{i}" cfg.vm.network "forwarded_port", guest: 22, host: "6010#{i}", auto_corrent: true, id: "ssh" cfg.vm.synced_folder "./data", "vagrant", disabled: true cfg.vm.provision "shell", path: "install_pkg.sh" end end end
2.3 터미널 프로그램으로 가상 머신 접속하기
- 책에서는 푸티 또는 슈퍼푸티를 가이드하지만, 개인적으로 MobaXterm을 편하게 쓰고 있어, MobaXterm 기준으로 작성하였습니다.
2.3.1 MobaXterm 설치하기
-
MobaXterm 다운로드 페이지 접속
https://mobaxterm.mobatek.net/download.html
-
Home Edition 무료 버전을 다운로드 [Download now] 클릭
-
저는 Portable 버전으로 다운로드 하겠습니다.
-
다운로드 받은 zip 파일 찾아 압축을 해제
2.3.2 가상 머신 접속하기
-
MobaXterm 실행하여 좌측에서 우클릭 하여 [New Session] 클릭
-
local에 서버가 띄워져 있고,
forwarded_port
를 통해 포트포워딩을 했기 때문에 이전에 띄운 가성 머신에 포워딩 한 포트로 접속 할 수있습니다.
IP:127.0.0.1
, PORT:60010
을 입력하고 [OK] 클릭 -
ID:
root
, PW:vagrant
입력 후 로그인하여 접속.