전자책 출간 알림 [마이크로서비스패턴 쉽게 개발하기]

티스토리 뷰

1. 목적

본 문서는 학습 목적으로 Oracle Virtualbox를 이용하여 VM을 자신의 PC에 만드려는 사람들을 위해 제작되었습니다.

사전준비사항
- Oracle Virtualbox 설치: https://www.virtualbox.org/wiki/Downloads
- MobaXTerm 설치: https://mobaxterm.mobatek.net/download-home-edition.html
MobaXTerm은 Window 전용 원격 터미널 프로그램입니다. Portable edition은 무설치 버전으로 압축만 해제하면 됩니다.

 

2 VM 만들기

2.1 VM Image 다운로드
VM image는 osboxes.org에서 무료로 다운로드 합니다.

Step 설명
VM 다운로드
압축풀기 적절한 디렉토리에 압축을 풉니다.
7zip을 설치하고 풀어줍니다.

맥은 아래와 같이 설치하고 사용합니다.
- 설치: brew install p7zip
- 풀기: 7z x {file}
- 압축: 7z {압축파일명} {압축대상 디렉토리}
uuid 변경 각 vm image는 고유uuid가 있어 여러 번 사용할 수가 없습니다.
그래서 virtualbox명령을 이용해서 uuid를 바꿔줘야 합니다.


먼저 다운로드한 초기 image를 복사하여 생성할 VM 수만큼 새로운 vm image를 만듭니다. 

virtualbox가 설치된 디렉토리로 이동하여, 각 image에 대해 uuid변경 작업을 합니다.
VBOXMANAGE.EXE internalcommands sethduuid "vid파일명"

ex)
C:\Program Files\Oracle\VirtualBox>VBOXMANAGE.EXE internalcommands sethduuid "c:\study\vmimage\CentOS 8.4 (64bit).vdi"
UUID changed to: 36d6f9e5-4102-4b7d-b755-8c1661372083

Mac은
/Applications/VirtualBox.app/Contents/MacOS로 이동하여 아래 예와 같이 실행합니다. 
ex) VBoxManage internalcommands sethduuid "/Users/admin/Documents/vm/CentOS 8.4 Server (64bit).vdi"


2.2 VM 만들기
사용할 네트워크 어댑터를 만들고, VM을 만듭니다.

Step 설명
Virtualbox 실행 설치한 virtualbox를 실행합니다.
네트워크어댑터 생성 도구 > 네트워크를 선택합니다. 



'만들기'버튼을 눌러, Host-only Ethernet Adapter를 만듭니다.

만약 Mac에서 "vboxnetadpctl: error while adding new interface: failed to open /dev/vboxnetctl: no such file or directory" 에러가 나면 아래와 같이 조치하십시오.




-  "시스템 설정 > 보안 및 개인정보 보호 > 일반" 선택하고, 맨 아래 자물쇠 누르고 Mac어드민 암호 넣기 
- '세부사항' 클릭
- 'Oracle America, Inc.'체크하고 확인
- PC재시작 

 


DHCP사용을 uncheck하고, IPv4주소를 다른 곳에 기록해 놓습니다.


VM만들기 도구에서 '환영합니다'를 선택합니다. 



'새로 만들기'를 선택합니다. 




이름을 적절히 입력하고 종류는 'Linux'로 변경합니다. 


메모리 크기는 2048MB정도로 조정합니다. 메모리가 많다면 더 늘리셔도 됩니다. 


하드 디스크는 '기존 가상 하드 디스크 파일 사용'을 선택합니다. 


위 화면 맨 아래에 있는 폴더 아이콘을 클릭합니다. '추가'버튼을 누르고, 다운로드한 VM image를 지정합니다. 




끝으로, [만들기]를 눌러 VM을 생성합니다.


위 과정을 VM수만큼 반복하여 수행합니다.
VM설정하기 관련있는 VM은 그룹으로 묶습니다.
이렇게 하면 동시 시작, 중지가 가능하여 편합니다.



첫번째 VM을 선택하고, [설정]을 클립합니다.



메모리와 CPU수를 적절히 조정합니다.



네트워크: 어댑터1은 기본 그대로 NAT로 지정합니다.




네트워크: 어댑터2는 호스트 전용 어댑터로 선택하고, 미리 만들어 놓은 Ethernet Adapter를 지정합니다.
고급 > 무작위 모드는 '모두 허용'으로 변경합니다.



위 설정을 각 VM에 대해 수행합니다.


NAT는 VM 간 연결하기 위한 Adapter이고 Host-Only는 VM과 Host PC간 네트워크 연결을 위한 Adapter입니다.
NAT어댑터에는 private IP(10.0.2.x)가 부여되고, Host-only 어댑터에는 public ip(192.168.x.x)가 부여됩니다.


2.3 VM 네트워크 설정하기
VM을 선택하고, 우측 상단의 '시작'버튼을 클릭하여 실행합니다. 

화면이 매우 작을겁니다. 아래와 같이 'Scaled Mode'로 변경하여, 화면을 크게 만드십시오.


1) 로그인:
초기 계정인 osboxes로 로그인합니다.
- username: osboxes
- password: osboxes.org

2) root암호변경
# su - root
초기 암호는 osboxes.org입니다.
# passwd

3) 네트워크 설정

VM은 IP를 고정으로 지정합니다. 이래야 재시작해도 동일한 IP로 접근할 수 있습니다.
참고: https://m.blog.naver.com/anysecure3/221671704958

보다 자세한 centos의 네트워크 설정은 아래 글을 참고하세요.
https://happycloud-lee.tistory.com/140?category=832818

 

Red Hat System Administration I: 네트워크 관리

ip보기, ipv6 주소로 ping하기 ip보는 명령은 'ip a'입니다. ipv6 주소는 fe80으로 항상 시작합니다. ipv4 주소는 ping 명령어를 사용하고, ipv6는 ping6명령을 사용합니다. 아래 예제와 같이 'ping6 % '형식으로.

happycloud-lee.tistory.com

- /etc/sysconfig/network-scripts로 이동
- 네트워크 어댑터 1(NAT)를 위한 설정파일을 변경
. ip r | grep default 명령으로 NAT의 gateway IP를 구합니다.
. ifcfg-enp0s3파일 설정: 아래 주석 처리한 항목이 기존 값입니다.
기존 값에서 DHCP와 IPV6를 disable시키고, IP, PREFIX, GATEWAY, DNS를 추가합니다.
PREFIX는 서브넷 마스크이고, 24 또는 32를 입력하면 됩니다.
GATEWAY는 위에서 구한 IP를 추가합니다.
DNS는 구글 DNS로 설정 합니다.

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
#BOOTPROTO=dhcp
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
#IPV6INIT=yes
#IPV6_AUTOCONF=yes
#IPV6_DEFROUTE=yes
IPV6INIT=no
IPV6_AUTOCONF=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
NAME=enp0s3
UUID=38850678-8c5d-47fb-894e-368bd2056ba6
DEVICE=enp0s3
ONBOOT=yes

# Add below items
IPADDR=10.0.2.3
PREFIX=32
GATEWAY=10.0.2.2
#IPADDR1=192.168.56.2
#PREFIX1=32
#GATEWAY1=192.168.56.0
DNS1=8.8.8.8
DNA2=8.8.4.4


- 네트워크 어댑터 2(호스트전용)
먼저, Network Connection을 추가합니다. 이때 IP는 VirtualBox Host전용 어댑터의 IP보다 크면 됩니다.

$ nmcli conn add con-name "enp0s8" ifname enp0s8 type ethernet ip4 192.168.114.3/24 

[root@osboxes network-scripts]# nmcli c s 
NAME UUID TYPE DEVICE 
enp0s3 38850678-8c5d-47fb-894e-368bd2056ba6 ethernet enp0s3 
enp0s8 9f331660-def5-40ac-a8c9-ea3a429e568b ethernet enp0s8 

[root@osboxes network-scripts]# ll 
total 8 
-rw-r--r--. 1 root root 459 Aug 21 22:20 ifcfg-enp0s3 
-rw-r--r--. 1 root root 336 Aug 22 00:17 ifcfg-enp0s8



- 설정을 적용 합니다.

[root@osboxes network-scripts]# ifdown enp0s3 
Connection 'enp0s3' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1) 

[root@osboxes network-scripts]# ifup enp0s3 
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4) 

[root@osboxes network-scripts]# ifup enp0s8 
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)


- IP가 적용되었는지 확인합니다.

- nslookup으로 통신이 되는지 확인합니다.


- Host인 PC에서 Ping이 되는지 확인합니다. 

주의) Host PC에서 지금 실행하고 있는 VM으로 ping이 되는걸 테스트하는겁니다. Host PC에서 아래 예제와 같이 수행 하십시오. 

C:\Users\HaeKyoungLee>ping 192.168.114.3 
Ping 192.168.114.3 32바이트 데이터 사용: 

192.168.114.3의 응답: 바이트=32 시간<1ms TTL=64 
192.168.114.3의 응답: 바이트=32 시간<1ms TTL=64

* 만약 Ping이 안되면, "2.2 VM만들기"의 첫번째의 네트워크 어댑터 부분을 참조하여, 기존 네트워크 어댑터를 지우고,
새로 생성하십시오. 그리고, 부여된 IP에 맞게 ifconfig-enp0s8의 IP를 변경한 후 ifdown, ifup으로 재시작 하십시오.

2.4 SSH 서버 설치
Virtualbox의 console은 copy-paste도 안되고 사용하기 힘듭니다.
편리한 Terminal툴인 MobaXTerm에서 각 VM을 연결하기 위해서는 VM에 SSH서버가 설치되어 있어야 합니다.
각 VM에서 아래와 같이 설치 하십시오.

Step 설명
OS 업그레이드 #  yum upgrade
위 작업은 네트워크 속도에 따라 10분 ~ 20분 정도 걸립니다.
ssh 설치 # yum install openssh-server
설정 변경 # cd /etc/ssh
# vi sshd_config
. PermitRootLogin 의 주석을 해제하고 값을 yes로 변경



# systemctl start sshd.service
# systemctl enable sshd.service
MobaXTerm 설정 Host PC에서 MobaXTerm을 실행하십시오.
Mac사용자는 터미널을 열고 'ssh root@{VM IP}'명령을 실행하고, 변경한 root암호로 로그인하시면 됩니다. 

기본 에디터 지정
MobaXTerm에서 PC의 에디터를 지정하면, vi를 사용하지 않고 익숙한 에디터로 사용할 수 있습니다.


Terminal의 폰트종류와 크기를 지정합니다.
MobaXTerm에서 연결: master 새 폴더를 작성


새 연결 세션 작성


VM IP와 username을 root로 지정합니다.



Session name을 적절히 변경합니다.



[OK]를 누르면 연결을 시도할 겁니다.
root암호를 정확하게 입력하면, 암호 저장 여부를 묻는데 [Yes]를 클릭하여 저장하십시오.
그래야 앞으로는 암호를 묻지 않고 연결이 됩니다.
MobaXTerm에서 연결 나머지 Worker VM들은 master 설정을 복사하여 작성하면 편합니다.


   

 

'Infrastructure > VM관련' 카테고리의 다른 글

Oracle Virtualbox ubuntu VM 만들기  (0) 2019.09.12
IBM Cloud VM 신청하기  (0) 2019.09.12
댓글

전자책 출간 알림 [마이크로서비스패턴 쉽게 개발하기]