Vagrant로 CentOS 가상머신 구성하기

Vagrant로 CentOS 가상머신 구성하기

개요

Vagrant는 HashiCorp에서 개발한 가상머신 환경을 신속하게 구축할 수 있는 도구입니다. 본 문서에서는 Vagrant와 Oracle VM VirtualBox를 조합하여 Windows 10 환경에서 CentOS 7 가상머신을 빠르게 생성하는 방법을 설명합니다. 사전에 Vagrant와 VirtualBox가 설치되어 있어야 합니다.

CentOS 7 가상머신 구축

1. 베이스 이미지 검색

먼저 Vagrant Cloud에서 centos 이미지를 검색합니다.

2. 프로젝트 디렉토리 생성

Windows의 원하는 드라이브에 vagrant_vm 디렉토리를 생성합니다(한글이나 공백이 포함되지 않은 경로 권장). 생성된 디렉토리에서 명령 프롬프트를 실행하고 다음 명령을 입력합니다:

vagrant init centos/7

3. 가상머신 실행

VirtualBox를 미리 실행한 상태에서 다음 명령어로 가상머신을 시작합니다:

vagrant up

설치가 완료되면 VirtualBox 목록에 실행 중인 가상머신이 표시됩니다.

4. 다운로드 속도 향상

초기 설치 과정이 느린 경우 다음方法来加速:

설치 로그에서 다음과 같은 줄을 찾습니다:

Downloading: https://vagrantcloud.com/centos/boxes/7/versions/2004.01/providers/virtualbox.box

나열된 URL을 복사하여 다운로드管理器로 다운로드합니다. 다운로드가 완료되면 .box 파일을 vagrant_vm 디렉토리에 저장하고 centos7.box로 이름을 변경합니다(다른 파일과 디렉토리는 삭제).

다음으로, 기존 이미지를 가져옵니다:

vagrant box add centos/7 centos7.box

이제 box를 초기화합니다:

vagrant init centos/7

초기화가 완료되면 가상머신을 시작합니다:

vagrant up

온라인 다운로드와 동일한 결과를 얻을 수 있습니다.

Vagrant 기본 명령어

가상머신 상태 확인

vagrant status

가상머신 종료

vagrant halt

가상머신 시작

vagrant up

가상머신 일시중지

vagrant suspend

일시중지 전 상태가 저장됩니다.

일시중지 복구

vagrant resume

가상머신 재시작

vagrant reload

가상머신 완전 삭제

vagrant destroy

SSH 연결

vagrant ssh

원격 도구로 가상머신 연결

vagrant ssh 사용 시 개인 키 파일 권한 관련 오류가 발생할 수 있습니다. 이 경우 SSH 클라이언트 도구를 사용하여 연결합니다.

기본 사용자 로그인

먼저 일반 사용자(vagrant)로 로그인합니다.

root 계정 활성화

vagrant 사용자로 로그인한 후 root로 전환:

su root

비밀번호: vagrant

root 로그인을 가능하게 하려면 SSH 설정을 수정합니다:

vim /etc/ssh/sshd_config

다음과 같이 변경:

# PermitRootLogin prohibit-password
PermitRootLogin yes
# PasswordAuthentication on
PasswordAuthentication yes

SSH 서비스를 재시작:

systemctl restart sshd

이제 다음 명령으로 가상머신을 재시작하면 root/vagrant로 직접 로그인할 수 있습니다:

vagrant reload

디렉토리 공유

Vagrant 프로젝트 디렉토리와 가상머신의 /vagrant 디렉토리는 자동 공유됩니다. 프로젝트 디렉토리에 생성된 파일은 가상머신에서도 즉시 확인 가능합니다.

사용자 정의 공유 디렉토리 설정

Vagrantfile에서 공유 디렉토리를 구성할 수 있습니다:

config.vm.synced_folder
   "your_folder",        // 호스트 디렉토리 (절대경로 또는 상대경로)
  ,"vm_folder",          // 가상머신 마운트 경로
  ,create: false,        // 선택: 마운트 디렉토리가 없으면 생성
  ,disabled: false,      // 선택: true면 해당 공유 비활성화
  ,owner: "vagrant",     // 선택: 파일所有者 (기본값: vagrant)
  ,group: "vagrant",     // 선택: 파일所有組 (기본값: vagrant)
  ,mount_options: ["dmode=775","fmode=664"], // 선택: 디렉토리/파일 권한
  ,type: nil             // 선택: 공유 방식 지정 (예: 'nfs')

vbguest 플러그인 설치

마운트 실패를 방지하기 위해 다음 플러그인을 설치합니다:

vagrant plugin install vagrant-vbguest

업데이트 비활성화 설정:

config.vbguest.auto_update = false
config.vbguest.no_remote = true

사용자 정의 공유 디렉토리 적용

Vagrantfile을 편집하여 기본 공유를 비활성화하고 새 공유를 추가합니다:

config.vm.synced_folder ".", "/vagrant", disabled: true
config.vm.synced_folder "./data", "/vagrant_data", create: true, owner: "root", group: "root"

위 설정은 현재 디렉토리의 data 폴더를 가상머신의 /vagrant_data에 공유하며, 소유자는 root입니다.

Vagrantfile 수정 후 다음 명령으로 재시작:

vagrant reload

네트워크 구성

사설 네트워크

Vagrantfile에서 사설 네트워크를 활성화합니다:

config.vm.network "private_network", ip: "192.168.33.10"

재시작:

vagrant reload

Windows에서 해당 IP로 ping 테스트:

ping 192.168.33.10

가상머신에서 IP 확인:

ip addr

공유 네트워크

사설 네트워크 설정을 주석 처리하고 공유 네트워크를 활성화합니다:

config.vm.network "public_network"

재시작 시 현재 네트워크 환경에 맞는 네트워크 어댑터를 선택합니다.

공유 네트워크는 라우터에서 자동 할당된 IP를 사용하며,同一 Wi-Fi 네트워크의 다른 기기에서도 접근 가능합니다.

멀티 호스트 구성

Vagrantfile에서複数の仮想머신을 정의하여 개발 환경을 확장할 수 있습니다.

태그: vagrant CentOS virtualbox virtual-machine 가상화

6월 9일 22:46에 게시됨