"Vagrant"의 두 판 사이의 차이
둘러보기로 가기
검색하러 가기
잔글 (→CentOS 7 box 생성) |
|||
(같은 사용자의 중간 판 16개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
Vagrant는 간소화된 가상머신(VM, Virtual Machine) 관리 서비스 이다. | Vagrant는 간소화된 가상머신(VM, Virtual Machine) 관리 서비스 이다. | ||
− | *홈페이지 : | + | *홈페이지 : http://vagrantup.com |
− | *다운로드 : | + | *다운로드 : https://www.vagrantup.com/downloads.html |
**https://vagrantcloud.com/ | **https://vagrantcloud.com/ | ||
− | ** | + | **http://files.vagrantup.com/ |
− | ** | + | **http://vagrantbox.es/ |
* 박스 다운로드 : https://app.vagrantup.com/boxes/search, http://www.vagrantbox.es/ | * 박스 다운로드 : https://app.vagrantup.com/boxes/search, http://www.vagrantbox.es/ | ||
:* CentOS 7 : https://app.vagrantup.com/centos/boxes/7 | :* CentOS 7 : https://app.vagrantup.com/centos/boxes/7 | ||
37번째 줄: | 37번째 줄: | ||
# /disk/root/.vagrant.d/ | # /disk/root/.vagrant.d/ | ||
# /disk/root/VirtualBox VMs/ | # /disk/root/VirtualBox VMs/ | ||
+ | |||
+ | #--- Plugin 설치 | ||
+ | vagrant plugin install vagrant-disksize | ||
+ | vagrant plugin install vagrant-vbguest | ||
+ | vagrant plugin list | ||
+ | |||
+ | === Windows에 Vagrant 설치 === | ||
+ | |||
+ | [https://www.vagrantup.com/downloads.html 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 ['createhd', '--filename', scada1, '--variant', 'Standard', '--size', 1024] | ||
+ | end | ||
+ | #--- --storagectl : IDE, SCSI, --port : 1(/dev/sdb), 2, 3, ... | ||
+ | vb.customize ['storageattach', :id, '--storagectl', 'IDE', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', scada1] | ||
+ | end | ||
+ | |||
+ | scada.vm.provision "shell", inline: "echo Hello" #--- VM 실행시 처음 실행할 명령 | ||
+ | scada.vm.provision "shell", inline: "" do | ||
+ | #--- Provision 명령 | ||
+ | end | ||
+ | end | ||
+ | end | ||
== VM 관리 == | == VM 관리 == | ||
56번째 줄: | 122번째 줄: | ||
end | end | ||
end | end | ||
− | |||
vagrant box list #--- Vagrant Box 목록 조회 | vagrant box list #--- Vagrant Box 목록 조회 | ||
69번째 줄: | 134번째 줄: | ||
config.vm.box = "ubuntu/xenial64" | config.vm.box = "ubuntu/xenial64" | ||
config.vm.network "forwarded_port", guest: 80, host: 8080 | config.vm.network "forwarded_port", guest: 80, host: 8080 | ||
+ | config.disksize.size = '50GB' | ||
config.vm.provider "virtualbox" do |vb| | config.vm.provider "virtualbox" do |vb| | ||
− | vb.name = " | + | vb.name = "Ubuntu18" |
− | vb.memory = " | + | vb.memory = "4096" |
− | vb.cpus = " | + | vb.cpus = "4" |
end | end | ||
end | end | ||
− | |||
vagrant box list #--- Vagrant Box 목록 조회 | vagrant box list #--- Vagrant Box 목록 조회 | ||
105번째 줄: | 170번째 줄: | ||
== 참고문헌 == | == 참고문헌 == | ||
− | * | + | *http://www.slideshare.net/kthcorp/h3-2012-vagrant |
*[http://adhoc.tistory.com/entry/Vagrant-Box-%EB%A7%8C%EB%93%A4%EA%B8%B0 Vagrant Box 만들기, 2015.1] | *[http://adhoc.tistory.com/entry/Vagrant-Box-%EB%A7%8C%EB%93%A4%EA%B8%B0 Vagrant Box 만들기, 2015.1] | ||
[[Category:Cloud|Category:Cloud]] | [[Category:Cloud|Category:Cloud]] |
2020년 4월 1일 (수) 16:51 기준 최신판
Vagrant는 간소화된 가상머신(VM, Virtual Machine) 관리 서비스 이다.
- 홈페이지 : http://vagrantup.com
- 다운로드 : https://www.vagrantup.com/downloads.html
- 박스 다운로드 : 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 ['createhd', '--filename', scada1, '--variant', 'Standard', '--size', 1024] end #--- --storagectl : IDE, SCSI, --port : 1(/dev/sdb), 2, 3, ... vb.customize ['storageattach', :id, '--storagectl', 'IDE', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', scada1] 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을 삭제