[VM] 초간단 Vagrant 사용법
테스트 환경
Ubuntu (16.04.1 LTS)
Virtual Box (V5.1.14)
Vagrant (1.9.1)
먼저 Vagrant 에 대해서 간략히 소개하자면.. 개발환경을 쉽고 빠르게 설정하기 위한 Virtual Machine 관리 툴 입니다.
Vagrant는 Virtual Box 같은 Virtual Machine 프로그램을 명령어로 제어합니다.
@ Virtual Box 와 Vagrant 설치
설치는 OS 환경에 따라 약간씩 다르지만 Ubuntu 기준으로 설명합니다. (Windows 나 Mac OS의 경우 GUI 로 쉽게 설치가 가능합니다.)
1) 먼저 Virtual Box 를 설치합니다.
1. Virtual Box 설치에 앞서서 필요한 의존성 라이브러리들을 설치합니다.
$ sudo apt install libqt5x11extras5 libsdl1.2debian libsdl-ttf2.0-0 |
각자 환경에 따라서 위의 라이브러리 이외에도 추가로 필요한 것들이 있을 수도 있습니다.
2. 홈페이지에서 deb 패키지를 다운로드 합니다. (https://www.virtualbox.org/wiki/Linux_Downloads)
3. dpkg 명령어로 다운로드 받은 패키지를 설치합니다. (아래는 5.1.14 버전 예시)
$ sudo dpkg -i virtualbox-5.1.5.1.14-112924-Ubuntu-xenial_amd64.deb |
2) 이번에는 vagrant 를 설치합니다.
1. 홈페이지에서 deb 패키지를 다운로드 합니다. (https://www.vagrantup.com/downloads.html)
2. dpkg 명령어로 다운로드 받은 패키지를 설치합니다. (아래는 1.9.1 버전 예시)
$ sudo dpkg -i vagrant_1.9.1_x86_64.deb |
@ Vagrant Box
Vagrant는 Virtual Machine을 쉽고 빠르게 생성하기 위해서 Box를 이용합니다.
Box 는 Virtual Machine 을 생성하기 위한 이미지 정도로 이해하시면 됩니다.
1) 먼저 Box 관리에 대한 명령어를 알아보겠습니다.
1. 현재 로컬 컴퓨터에서 사용가능한 Box들을 확인하는 방법
$ vagrant box list |
2. 로컬 컴퓨터에 필요한 Box 를 추가하는 방법
먼저 필요한 Box 의 URI를 확인합니다. Vagrant 홈페이지에 있는 Box 링크에서 찾을 수도 있고, (https://atlas.hashicorp.com/boxes/search) 아니면 필요한 Box 이미지를 다운로드 받아서 파일 경로를 지정할 수도 있습니다.
아래 명령어를 사용하면 vagrant 가 Box를 리스트에 추가합니다.
$ vagrant box add [box name or URI] --clean |
3. 로컬 컴퓨터에 있는 Box를 제거 하는 방법
필요에 따라 같은 Box의 다른 버전들을 같이 가지고 있는 경우 버전을 명시해 주어야 합니다.
$ vagrant box remove [box name] --box-version [box version] |
4. 로컬 컴퓨터의 Box가 최신 버전인지 확인하는 방법
$ vagrant box outdated --global |
@ Virtual Machine 관리 명령어
1. Virtual Machine 생성
$ vagrant init [box name or URI] --box-version [box version] |
위의 명령어는 명령어를 실행한 경로에 "Vagrantfile" 을 생성하는데, 이 파일은 실제 Virtual Machine 을 생성할 때 필요한 설정 정보입니다.
실제로 존재하지 않는 위치를 입력해도 "Vagrantfile" 은 생성이 되지만, 다음 과정에 에러가 발생하게 됩니다.
2. Virtual Machine 시작
$ vagrant up |
위의 명령어는 "Vagrantfile" 이 있는 위치에서 실행되어야 하며, 설정파일에 맞게 새 Virtual Machine 을 Virtual Box에 실제로 생성하고 Virtual Machine 을 시작합니다. 만약 로컬 컴퓨터에 존재하지 않는 Box의 경우라도 위의 Box 링크 사이트에서 검색이 가능한 Box의 경우 다운로드하고 로컬 컴퓨터에 Box를 추가하고 나서 Virtual Machine을 생성하게 됩니다.
3. Virtual Machine 에 접속하기
$ vagrant ssh |
위의 명령어를 이용해서 해당 Virtual Machine의 ssh 서비스에 접속할 수 있습니다. "Vagrantfile" 이 위치한 곳에서 실행해야 하며, ssh 를 직접 이용하고자 한다면 인증 키를 확인해서 접속할 수 있으나 상당히 번거롭기 때문에 위의 명령어를 이용하는 것이 가장 편합니다. 윈도우 서버를 위한 rdp 나 powershell 명령어도 있는데 제대로 동작하는지 확인은 해보지 못했습니다.
4. Virtual Machine 종료시키기
$ vagrant halt |
5. Virtual Machine 삭제하기
$ vagrant destroy |
~
[Linux] Screen 명령어
Linux 콘솔에서는 기본적으로 하나의 foreground job 을 수행할 수 있는데, 여러 개의 작업을 동시에 실행할 때에는 screen 명령을 이용해서 가상의 콘솔을 이용할 수 있다.
1. 기본 사용법
> screen |
2. 스크린 추가하기
^A^C
3. 스크린 닫기
exit : 현재 스크린 닫기
^D : 현재 스크린 닫기
^A\ : 전체 스크린 종료 및 screen 명령 종료
4. 스크린 전환하기
^A^P : 이전 번호의 스크린으로
^A^N : 다음 번호의 스크린으로
^A0, ^A1, ... ^A9 : 해당 번호의 스크린으로 이동
^A' : 이동할 스크린 번호 입력해서 이동
^A^A : 바로 전에 사용한 스크린으로 이동
5. 현재 스크린 확인
^AN : 현재 스크린 번호 확인
^A^W : 전체 스크린 리스트 확인
[Linux] Job 컨트롤
Linux에서는 여러 개의 프로그램을 동시에 실행시킬 수가 있는데,
하나의 콘솔창에서는 보통 하나의 Job만 foreground에서 실행이 가능하고, 나머지 Job은 Background에서 실행이 된다.
이 포스트에서는 Foreground / Background Job을 관리하는 방법에 대해서 알아본다.
1. Job
현재 콘솔에서 실행되고 있는 Job들의 리스트를 확인하는 명령어
> jobs |
2. 백그라운드에서 프로그램을 실행하는 방법
명령 끝에 '&' 를 붙여준다. 실행 하게 되면 job id와 프로세스 id 를 보여준다. (아래 예제에서는 job id = 1, process id = 910)
> sleep 1000 & [1]+ 910 |
3. 현재 실행중인 명령을 잠시 중단하는 방법
명령어 실행 후 ^Z (ctrl + z) 를 입력한다.
> sleep 1000 & ^Z [1]+ Stopped sleep 1000 |
Stopped 라고 나오지만 실제로는 종료되지 않은 상태로 남아 있다. (jobs 명령어로 확인이 가능)
4. 잠시 중단한 명령을 백그라운드로 보내는 방법
bg %[id]
> bg %1 [1]+ sleep 1000 & |
5. 백그라운드에서 실행중인 job을 foreground로 바꾸는 방법
fg %[id]
> fg %1 sleep 1000 |
6. 실행 중인 명령을 중단하는 방법
명령어 실행 후 ^C (ctrl + c) 를 입력한다.
참고로 백그라운드에서 작업 중인 명령을 종료하기 위해서는 해당 job을 foreground로 넘긴 후 ^C 를 입력하면 된다.
혹은 kill 명령어를 이용해서 해당 process 를 종료 하면 된다. (process id 는 ps 명령어로 검색한다.)
> kill 910 |
[Linux] SWAP 메모리 추가하기
현재 사용중인 SWAP 메모리 확인
more /proc/swaps
SWAP 메모리로 사용할 파일 생성 (파일당 1GB)
cd /var/tmp
dd if=/dev/zero of=swapfile1 bs=1024 count=1048576
dd if=/dev/zero of=swapfile2 bs=1024 count=1048576
SWAP 영역으로 설정
/sbin/mkswap -c -v1 /var/tmp/swapfile1
/sbin/mkswap -c -v1 /var/tmp/swapfile2
SWAP 파일 사용시작
/sbin/swapon /var/tmp/swapfile1
/sbin/swapon /var/tmp/swapfile2
바뀐 SWAP 메모리 확인
more /proc/swaps