여러 가상머신에 별도 IP를 할당해보자! (VirtualBox, Vagrant)

sua_ahn·2024년 4월 5일
0

Server

목록 보기
4/4

Vagrant를 통한 VirtualBox 구성

Vagrant

: 복잡한 VM 관리를 도와주는 오픈소스 utility

Vagrantfile

: VM configuration file로, VM에 필요한 것들을 정의해 놓으면 Vagrant가 자동으로 VM에 환경을 구성함

→ 해당 파일에서 가상 서버의 IP를 설정할 수 있음!

 


1. 설치 및 초기화

설치파일 버전

아래 버전보다 버전업 시 연동 안될 수 있음

  • VirtualBox : 6.1.50
  • Vagrant : 2.2.19
  • tabby(윈도우 터미널 프로그램) : 1.0.207

플러그인 설치 및 초기화

vagrant-vbguest 설치
(VirtualBox의 그래픽 개선 프로그램인 Guest Additions를 최신상태로 유지시켜주는 플러그인)

→ Vagrant를 초기화하여 Vagrantfile 생성

>> vagrant plugin install vagrant-vbguest --plugin-version 0.21

>> vagrant init

 

2. Vagrantfile 수정

맨 위 두 줄은 Vagrantfile이 ruby 언어를 사용한다는 것을 알려주는 글이므로 지우면 안되고, 나머지 주석은 삭제한다.

Vagrant는 Vagrant cloud를 통해 Vagrant Box==Virtual Machine Image(Ubuntu, Centos, etc)를 제공한다. 도커 허브에서 도커 이미지를 가져오는 것과 비슷하다. 기본적으로 박스는 base로 기본 설정이 되어있는데, 이 부분을 원하는 OS로 수정하여 설치한다.

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

    config.vm.define "was01" do |was01|
      was01.vm.box="centos/7"
      was01.vm.hostname="was01"
      was01.vm.network "private_network", ip: "192.16.3.31"
      was01.vm.synced_folder "./data", "/vagrant_data"
   end

   config.vm.define "web01" do |web01|
      web01.vm.box="centos/7"
      web01.vm.hostname="web01"
      web01.vm.network "private_network", ip: "192.16.3.32"
      web01.vm.synced_folder "./data", "/vagrant_data"
   end

   config.vm.define "db01" do |db01|
      db01.vm.box="centos/7"
      db01.vm.hostname="db01"
      db01.vm.network "private_network", ip: "172.17.102.213"
      db01.vm.synced_folder "./data", "/vagrant_data"
   end

end

→ 잘 저장되었는지 확인

>> vagrant status

 

3. 가상 머신 생성

>> vagrant up was01
>> vagrant up db01

OS가 설치되고 기타 dependencies도 설치되기 때문에 시간이 걸린다.


→ 완료가 되면 running 상태가 된다.

아래와 같이 에러가 뜨면 Vagrantfile 내 synced_folder에 적은 대로 "data" 디렉토리 생성 후 재시도

 

4. 가상머신 설정

서버 종료 후 설정

>> vagrant halt

→ VirtualBox 실행 → 좌측 메뉴에서 서버 선택 → 설정 버튼

→ 시스템-마더보드에서 기본 메모리를 2048MB로 설정

→ 시스템-프로세서 에서 프로세서 개수를 2개로 설정

 

5. 실행 및 접속

>> vagrant up was01

>> vagrant ssh was01

SSH 세션 종료는 CTRL+D

 

IP 확인

>> ifconfig

-bash: ifconfig: command not found
CentOS7부터는 기본 탑재 명령어가 아님
ifconfig 명령어가 포함된 net-tools package 설치!

>> su -
Password: vagrant
>> yum install net-tools

 

SFTP 접속

방화벽 설정

방화벽 구동 확인
>> firewall-cmd --state

열린 포트 확인
>> firewall-cmd --zone=public --list-all

포트 개방
>> firewall-cmd --permanent --zone=public --add-port=22/tcp

적용
>> firewall-cmd --reload

 

SSH 설정

>> vi /etc/ssh/sshd_config

65번째 줄에서 비밀번호 인증 허용

// 기존
PasswordAuthentication no

// 수정
PasswordAuthentication yes

sshd 재시작

>> systemctl restart sshd

 

tabby로 SFTP 접속

좌상단 설정 버튼 - Profiles & connectrions terminal - SSH connection - Duplicate

Name, Host, Username, Password 입력
(Username, Password 둘 다 vagrant)

상단 탭 클릭 - Open SFTP panel

 


*참고사이트
https://devopscube.com/vagrant-tutorial-beginners/

profile
해보자구

0개의 댓글