최근 Docker 또는 Kubernetes 인기로 인하여 Container가 인기의 주역이 되면서
주로 VM 환경과 같이 사용되는 Vagrant의 인기가 많이 줄어든 것 같다.
하지만, 여전히 VM에 대한 수요는 있고
Vagrant의 효용성도 여전히 높다고 여겨지기에 공부를 해보려 한다.
01. Vagrant
- Vagrant 메인 사이트는 vagrant.com이 아니라 vagrantup.com 이다 ^^
02. Install
- 설치는 별거 없다. 그냥 슝슝~
03. Vagrant Hub ?
- DockerHub처럼 Vagrant에서도 Hub가 있다 !!
04. VirtualBox Guest OS 준비
- Ubuntu 20.04 Server 이미지를 만들어서 업로드 해봤다.
- Vagrant Box로 만들기 위해서는 다음의 과정을 거쳐야 한다.
① 작업 환경
- Host PC(Windows 10)에서 VirtualBox 설치
- VirtualBox에서 Guest OS로 Ubuntu 20.04 Server 설치
→ Vagrant Box 업로드 用 이미지로 만들기 위한 과정 진행 !!
② vagrant 계정 생성
- 패스워드도 vagrant로 설정
$ sudo adduser vagrant
③ visudo 등록
$ sudo visudo
# Add the following line to the end of the file.
vagrant ALL=(ALL) NOPASSWD:ALL
④ SSH 설정
$ sudo su vagrant
$ cd
$ mkdir .ssh
$ wget --no-check-certificate https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub -O .ssh/authorized_keys
--2021-07-04 18:37:56-- https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub
Resolving raw.github.com (raw.github.com)... 185.199.111.133, 185.199.109.133, 185.199.108.133, ...
Connecting to raw.github.com (raw.github.com)|185.199.111.133|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub [following]
--2021-07-04 18:37:57-- https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133, 185.199.111.133, 185.199.110.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 409 [text/plain]
Saving to: ‘.ssh/authorized_keys’
.ssh/authorized_keys 100%[========================================================>] 409 --.-KB/s in 0s
2021-07-04 18:37:57 (36.9 MB/s) - ‘.ssh/authorized_keys’ saved [409/409]
⑤ SSH Server 설치
$ sudo apt install -y openssh-server
$ sudo nano /etc/ssh/sshd_config
Port 22
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PermitEmptyPasswords no
$ sudo service ssh restart
⑥ hostname 변경
- 이 부분은 꼭 필요한 과정은 아니고, 필요에 따라서...
$ hostnamectl set-hostname whatwant
⑦ 불필요한 계정 정리
- 이 부분 역시 꼭 필요한 과정은 아니고, 필요에 따라서...
$ sudo deluser whatwant
⑧ 동적 디스크 정리
- VIrtualBox의 디스크 영역을 깨끗하게 정리하기 위해서 수행
$ sudo dd if=/dev/zero of=/EMPTY bs=1M
$ sudo rm -f /EMPTY
⑨ 시스템 종료
$ sudo shutdown -h now
05. convert Image(Vagrant Box)
- 이제 준비된 VirtualBox Image를 Vagrant Image로 convert 해보자.
- VirtualBox Guest 파일들이 저장된 위치를 찾아서 이동
> dir
total 14473272
drwxr-xr-x 1 whatw 197609 0 7월 4 18:30 Logs/
drwxr-xr-x 1 whatw 197609 0 7월 4 18:23 Snapshots/
-rw-r--r-- 1 whatw 197609 20613 7월 4 18:30 'Ubuntu 20.04 Server Worker1.vbox'
-rw-r--r-- 1 whatw 197609 20642 7월 4 18:23 'Ubuntu 20.04 Server Worker1.vbox-prev'
-rw-r--r-- 1 whatw 197609 14820573184 5월 5 16:49 'Ubuntu Server 20.vdi'
- `package` 명령어를 이용해서 convert 하면 된다.
- 아래 타이핑한 내역을 잘 살펴보기 바란다 (.vbox 사용하지 않기와 같은...^^)
> vagrant package --base "Ubuntu 20.04 Server Worker1" --out "ubuntu2004server.box"
==> Ubuntu 20.04 Server Worker1: Attempting graceful shutdown of VM...
Ubuntu 20.04 Server Worker1: Guest communication could not be established! This is usually because
Ubuntu 20.04 Server Worker1: SSH is not running, the authentication information was changed,
Ubuntu 20.04 Server Worker1: or some other networking issue. Vagrant will force halt, if
Ubuntu 20.04 Server Worker1: capable.
==> Ubuntu 20.04 Server Worker1: Forcing shutdown of VM...
==> Ubuntu 20.04 Server Worker1: Exporting VM...
==> Ubuntu 20.04 Server Worker1: Compressing package to: C:/Users/whatw/VirtualBox VMs/Ubuntu 20.04 Server Worker1/ubuntu2004server.box
06. add Box
- 위에서 만든 Box를 등록하는 과정이다
> vagrant box add "ubuntu2004server" "C:\Users\whatw\ubuntu2004server.box"
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'ubuntu2004server' (v0) for provider:
box: Unpacking necessary files from: file:///C:/Users/whatw/ubuntu2004server.box
box:
==> box: Successfully added box 'ubuntu2004server' (v0) for 'virtualbox'!
07. SHASUM
- 뒤에 사용될 것을 미리 확인해놓자
- 파일 이름 뒤의 `SHA256`을 꼭 써줘야 한다!!!
> certutil -hashfile .\ubuntu2004server.box sha256
SHA1의 .\ubuntu2004server.box 해시:
7e6b73addaaea6c430c54dc16fd968ba740c7272e68807e0cf57f6fa5e28c499
CertUtil: -hashfile 명령이 성공적으로 완료되었습니다.
08. Vagrant Cloud 준비
- `03. Vagrant Hub ?`에서 회원가입을 했다면 아래와 같은 화면을 확인할 수 있다.
- `Create a new Vagrant Box` 클릭하고 계속 진행해보자.
- 버전은... 링크로 있는 `RubyGems versioning`을 한 번 확인해보기 바란다.
- 제대로 사용하도록 하려면 사실 `1.0.0`으로 해주는 것이...
- 앞에서 미리 확인한 SHA Checksum 값을 넣어주면 된다. (위의 이미지에 있는 Checksum 값은 틀렸다 ^^)
- 업로드~ 쭉~ 쭉~ 쭉쭉쭉~
- 처음에는 위와 같이 `unreleased` 상태로 나온다.
- `Release` 버튼을 눌러버리면 ...
- 이제 뭔가 잘 된 것 같다!
끄읕~~~ (정리는 왠지 항상 힘들어...)
'Dev Tools > VirtualBox' 카테고리의 다른 글
Vagrant 여러 개의 VM 생성하기 (0) | 2021.07.26 |
---|---|
Vagrant 사용하기 - 기본 (0) | 2021.07.14 |
VirtualBox 공유 폴더 사용하기 (Ubuntu 12.04/14.04) (0) | 2014.08.17 |
VirtualBox 4.3.6 (released 2013-12-18) (0) | 2013.12.22 |
VirtualBox 4.3 released! (2013.10.15) (4) | 2013.10.17 |