"Vagrant"의 두 판 사이의 차이

오픈소스 비즈니스 컨설팅
둘러보기로 가기 검색하러 가기
58번째 줄: 58번째 줄:
  
 
== Vagrantfile 파일 ==
 
== Vagrantfile 파일 ==
 +
 +
# _*_ mode: ruby _*_
 +
# vi: set ft=ruby
 +
scada = "scada.vdi"
 +
 +
Vagrant.configure("2") do |config|                          #--- 2. Vagrant version
 +
  config.vm.box = "centos/7"                                #--- CentOS 7
 +
  # config.vm.box = "ubuntu/xenial64"                      #--- Ubuntu 18.04.1 LTS
 +
  # config.disksize.size = '50GB'                          #--- Disk  : 50GB
 +
 +
  # config.vm.network "private_network", ip: "192.168.33.101"    #--- Private network
 +
  config.vm.network "forwarded_port", guest: 7577, host: 7577
 +
  config.vm.network "forwarded_port", guest: 7578, host: 7578
 +
  config.vm.network "forwarded_port", guest: 7579, host: 7579
 +
  config.vm.network "forwarded_port", guest: 7582, host: 7582
 +
  config.vm.network "forwarded_port", guest: 1883, host: 1883
 +
  config.vm.network "forwarded_port", guest: 8883, host: 8883
 +
  config.vm.network "forwarded_port", guest: 3306, host: 3306
 +
  config.vm.network "forwarded_port", guest: 80, host: 80
 +
  config.vm.network "forwarded_port", guest: 443, host: 443
 +
  config.vm.network "forwarded_port", guest: 22, host: 2022
 +
 +
  # disk = './disk.vdi'                                    #--- 추가할 Disk 이름
 +
  config.vm.provider "virtualbox" do |vb|
 +
    vb.name = "SCADA"                                      #--- VM 이름
 +
    vb.cpus = "4"                                          #--- Cores  : 4 cores
 +
    vb.memory = "3072"                                      #--- Memory : 3GB
 +
 +
    # vb.customize ['createhd', '--filename', disk, '--variant', 'Fixed', '--size', 10 * 1024]
 +
    # vb.customize ['storagectl', :id, '--name', 'SATA Controlleri', '--add', 'sata', '--portcount', 4]
 +
    # vb.customize ['storageattach', :id,  '--storagectl', 'SATA Controlleri', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', disk]
 +
  end
 +
end
  
 
== VM 관리 ==
 
== VM 관리 ==

2018년 9월 14일 (금) 17:09 판

Vagrant는 간소화된 가상머신(VM, Virtual Machine) 관리 서비스 이다.

  • 라이선스 : 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 list

Vagrantfile 파일

# _*_ mode: ruby _*_
# vi: set ft=ruby
scada = "scada.vdi"
Vagrant.configure("2") do |config|                          #--- 2. Vagrant version
  config.vm.box = "centos/7"                                #--- CentOS 7
  # config.vm.box = "ubuntu/xenial64"                       #--- Ubuntu 18.04.1 LTS
  # config.disksize.size = '50GB'                           #--- Disk   : 50GB

  # config.vm.network "private_network", ip: "192.168.33.101"    #--- Private network
  config.vm.network "forwarded_port", guest: 7577, host: 7577
  config.vm.network "forwarded_port", guest: 7578, host: 7578
  config.vm.network "forwarded_port", guest: 7579, host: 7579
  config.vm.network "forwarded_port", guest: 7582, host: 7582
  config.vm.network "forwarded_port", guest: 1883, host: 1883
  config.vm.network "forwarded_port", guest: 8883, host: 8883
  config.vm.network "forwarded_port", guest: 3306, host: 3306
  config.vm.network "forwarded_port", guest: 80, host: 80
  config.vm.network "forwarded_port", guest: 443, host: 443
  config.vm.network "forwarded_port", guest: 22, host: 2022

  # disk = './disk.vdi'                                     #--- 추가할 Disk 이름
  config.vm.provider "virtualbox" do |vb|
    vb.name = "SCADA"                                       #--- VM 이름
    vb.cpus = "4"                                           #--- Cores  : 4 cores
    vb.memory = "3072"                                      #--- Memory : 3GB

    # vb.customize ['createhd', '--filename', disk, '--variant', 'Fixed', '--size', 10 * 1024]
    # vb.customize ['storagectl', :id, '--name', 'SATA Controlleri', '--add', 'sata', '--portcount', 4]
    # vb.customize ['storageattach', :id,  '--storagectl', 'SATA Controlleri', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', disk]
  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 init [${box_name}]                                  #--- Vagrantfile로부터 생성되는 환경 초기화
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 init [${box_name}]                                  #--- Vagrantfile로부터 생성되는 환경 초기화
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을 삭제

참고문헌