2018년 7월 23일 월요일

Vagrant 사용 방법 (2)

저번 포스트에서 vagrant 를 통한 centos 초기화 방법에 대해 살펴보았다.

맨 처음 vagrant init 를 수행할때, 구동되기 까지 시간이 오래 걸렸고,
뭔가 다운로드 되고 있다는걸 느낄 수 있었다.

맨 처음에 init 할때는 https://vagrantcloud.com/boxes/search 에서 이미지를 다운로드 하기 때문이다.

다운로드 되어진 이미지는 아래 경로에 저장되어 있다.
~/.vagrant.d/boxes/centos-VAGRANTSLASH-7/1804.02/virtualbox
(이름이 같지 않을 수 있다)

vagrant up 으로 virtualbox 가 구동될때 이미지가 없으면 다운로드를 하고,
이미지가 있으면 그 이미지를 기반으로 아래 경로에 새로운 이미지로 구동된다.
~/VirtualBox VMs/cent_default_1529396971762_7086
(이름이 같지 않을 수 있다)

vagrantcloud 에는 다양한 이미지들이 존재하고,
그 이미지를 미리 다운로드 해서 보유하고 있을 수 있다.
% vagrant box add [이름]

예를 들어 Ubuntu 12.04 이미지를 다운로드 하고 싶다면,
아래처럼 하면 된다.
% vagrant box add hashicorp/precise64


이미지는 아래 경로에 저장이 된다.
~/.vagrant.d/boxes/hashicorp-VAGRANTSLASH-precise64/1.1.0/virtualbox

이미지를 기반으로 가상머신(guest)을 구동해 보자.
"vagrant box" 가 정상적으로 수행되었다면,
"Vagrantfile" 파일이 생성되었을 것이다.

16번째쯤 line 으로 가면, config.vm.box 항목을 수정하자.
config.vm.box = "hashicorp/precise64"

구동을 해보자.
% ./vagrant up

% vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'hashicorp/precise64'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'hashicorp/precise64' is up to date...
==> default: Setting the name of the VM: test_default_1529398362219_57644
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
Vagrant is currently configured to create VirtualBox synced folders with
the `SharedFoldersEnableSymlinksCreate` option enabled. If the Vagrant
guest is not trusted, you may want to disable this option. For more
information on this option, please refer to the VirtualBox manual:

  https://www.virtualbox.org/manual/ch04.html#sharedfolders

This option can be disabled globally with an environment variable:

  VAGRANT_DISABLE_VBOXSYMLINKCREATE=1

or on a per folder basis within the Vagrantfile:

  config.vm.synced_folder '/host/path', '/guest/path', SharedFoldersEnableSymlinksCreate: false
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2200 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2200
    default: SSH username: vagrant
    default: SSH auth method: private key
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default:
    default: Guest Additions Version: 4.2.0
    default: VirtualBox Version: 5.2
==> default: Mounting shared folders...
    default: /vagrant => /home/ck0911/test

잘 구동이 되었다.



vagrant 는 기본적으로, guest 머신의 /vagrant 디렉토리와
host 머신의 project 디렉토리(Vagrantfile 있는 디렉토리)가 서로 공유된다.

만약, host 머신에서 /home/kimchki/test/Vagrantfile 이 존재하고,
이 파일을 사용해서 가상머신(guest)을 실행했다면,
guest 머신의 /vagrant 가 위 디렉토리랑 sync 가 된다는 말이다.

테스트를 해보자.
host 머신에서 아래 명령어를 실행하자.
% echo "123" > /home/kimchki/test/123
guest 머신의 /vagrant 에 123 파일이 생성되어 있는걸 확인할 수 있다.

오~ guest 머신과 host 머신 사이에 연결 통로가 만들어진 셈이다.






출처
https://stackoverflow.com/questions/10155708/where-does-vagrant-download-its-box-files-to
https://www.vagrantup.com/intro/getting-started/index.html

댓글 없음:

댓글 쓰기

화곡 어쩌라고, 굴사냥

석화찜(굴찜)을 먹으러 여의도로 갔다 그런데 재료가 모두 소진되었다고 마감이라고 한다 응? 다들 굴에 미쳤나? 굴을 찾아 헤매다 보니, 화곡까지 가게 되었다. 화곡은 처음 가본다. 첫인상은 "술집 겁네 많네" 피똥쌀때까지 마실 수 있...