- Vagrant 개요
- Vagrant 설치
- CentOS6에 VirtualBox 설치
- CentOS6에 Vagrant 설치
- Windows에 Vagrant 설치
- Vagrantfile 파일
- VM 관리
- CentOS 7 box 생성
- Ubuntu 18.04.1 LTS box 생성
- VM 관리 명령
- Snapshot 관리
- 참고문헌
Vagrant는 간소화된 가상머신(VM, Virtual Machine) 관리 서비스 이다.
홈페이지 : http://vagrantup.com
박스 다운로드 : https://app.vagrantup.com/boxes/search, http://www.vagrantbox.es/
CentOS 7 : https://app.vagrantup.com/centos/boxes/7
Ubuntu 18.04.1 LTS : https://app.vagrantup.com/ubuntu/boxes/xenial64
라이선스 : Mit License
플랫폼 : Ruby
Vagrant 개요
Vagrant 용어
Box : 기본 설정을 가진 VM Template Image
Vagrant 설치
CentOS6에 VirtualBox 설치
wget -O /etc/yum.repos.d/virtualbox.repo http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo
yum install VirtualBox-5.2
virtualbox -help
CentOS6에 Vagrant 설치
#--- https://releases.hashicorp.com/vagrant/
#--- yum -y install vagrant
rpm -ivh https://releases.hashicorp.com/vagrant/2.1.4/vagrant_2.1.4_x86_64.rpm
vagrant -v
vagrant --help
# /root/.vagrant.d/boxes/
# /root/VirtualBox VMs/
# /disk/root/.vagrant.d/
# /disk/root/VirtualBox VMs/
#--- Plugin 설치
vagrant plugin install vagrant-disksize
vagrant plugin install vagrant-vbguest
vagrant plugin list
Windows에 Vagrant 설치
Vagrant 다운로드 사이트 Vagrant 64 bits 설치 파일을 다운로드하여 설치 한다.
Vagrant 폴더
c:/HashiCorp/Vagrant/
vagrant -v #--- Vagrant 2.1.5
#--- Plugin 설치
vagrant plugin install vagrant-disksize
vagrant plugin install vagrant-vbguest
vagrant plugin install vagrant-hostmanager
vagrant plugin list
Vagrantfile 파일
# _*_ mode: ruby _*_
# vi: set ft=ruby
scada1 = "/data/scada_disk_1.vdi"
Vagrant.configure("2") do |config| #--- Vagrant version : 2
config.vm.define "scada" do |scada| #--- VM 이름 : scada
scada.vm.box = "centos/7" #--- OS : CentOS 7
# scada.vm.box = "ubuntu/xenial64" #--- OS : Ubuntu 18.04.1 LTS
# scada.disksize.size = '50GB' #--- Disk : 50GB
# scada.vm.network "public_network" #--- 브릿지 네트워트
# scada.vm.network "private_network", ip: "192.168.33.101" #--- Private network (호스트 전용 어댑터)
# scada.vm.network "private_network", type: "dhcp"
scada.vm.network "forwarded_port", guest: 7577, host: 7577 #--- Port Forward
scada.vm.network "forwarded_port", guest: 7578, host: 7578
scada.vm.network "forwarded_port", guest: 7579, host: 7579
scada.vm.network "forwarded_port", guest: 7582, host: 7582
scada.vm.network "forwarded_port", guest: 1883, host: 1883
scada.vm.network "forwarded_port", guest: 8883, host: 8883
scada.vm.network "forwarded_port", guest: 3306, host: 3306
scada.vm.network "forwarded_port", guest: 80, host: 80
scada.vm.network "forwarded_port", guest: 443, host: 443
scada.vm.network "forwarded_port", guest: 22, host: 2022
scada.vm.provider "virtualbox" do |vb|
vb.name = "SCADA" #--- VM 이름
vb.cpus = "4" #--- Cores : 4 cores
vb.memory = "3072" #--- Memory : 3GB
unless File.exist? (scada1)
#--- variant : Standard, Fixed
vb.customize ['--filename', scada1, '--variant', 'Standard', '--size', 1024]('createhd',)
end
#--- --storagectl : IDE, SCSI, --port : 1(/dev/sdb), 2, 3, ...
vb.customize [:id, '--storagectl', 'IDE', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', scada1]('storageattach',)
end
scada.vm.provision "shell", inline: "echo Hello" #--- VM 실행시 처음 실행할 명령
scada.vm.provision "shell", inline: "" do
#--- Provision 명령
end
end
end
VM 관리
CentOS 7 box 생성
mkdir -p /work/vagrant/CentOS7
cd /work/vagrant/CentOS7
#--- CentOS 7 설치를 위한 Vagrantfile을 생성 한다.
vi Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.disksize.size = '50GB'
config.vm.provider "virtualbox" do |vb|
vb.name = "CentOS7"
vb.memory = "4096"
vb.cpus = "4"
end
end
vagrant box list #--- Vagrant Box 목록 조회
Ubuntu 18.04.1 LTS box 생성
mkdir -p /work/vagrant/Ubuntu18
cd /work/vagrant/Ubuntu18
#--- Ubuntu 18.04.1 LTS 설치를 위한 Vagrantfile을 생성 한다.
vi Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.network "forwarded_port", guest: 80, host: 8080
config.disksize.size = '50GB'
config.vm.provider "virtualbox" do |vb|
vb.name = "Ubuntu18"
vb.memory = "4096"
vb.cpus = "4"
end
end
vagrant box list #--- Vagrant Box 목록 조회
VM 관리 명령
vagrant up #--- startup
vagrant reload #--- 변경된 Vagrantfile 적용 (shutdown & startup)
vagrant halt #--- shutdown
vagrant destroy -f #--- shutdown & destroy
vagrant status #--- 상태 조회
vagrant suspend #--- VM 멈춤
vagrant resume #--- 멈춘 VM 다시 시작
#--- ssh 127.0.0.1:2222, vagrant / vagrant
#--- port는 vagrant up시 표시되는 메시지에서 확인할 것
vagrant ssh #--- VM에 ssh로 접속
Snapshot 관리
vagrant snapshot push #--- 환경 저장
vagrant ssh #--- 환경 저장 후 여러가지 작업을 한다.
vagrant snapshot pop #--- 저장(push)된 환경으로 복구
vagrant snapshot save ${name} #--- Snapshot 생성
vagrant snapshot restore ${name} #--- Snapshot으로 복구
vagrant snapshot list #--- Snapshot 목록 조회
vagrant snapshot delete ${name} #--- Snapshot을 삭제
참고문헌
분류: Cloud
최종 수정일: 2024-09-30 12:26:18
이전글 :
다음글 :