Computing

[jhVM][3] ssh 로그인 설정(비번 없이 로그인), qcow2 복사(VM 복제) 본문

Cloud/jhVM

[jhVM][3] ssh 로그인 설정(비번 없이 로그인), qcow2 복사(VM 복제)

jhson989 2022. 11. 15. 01:01

이전글

- [jhVM][1] virt-manager, CentOS 7 qcow2 image (root password, 용량 설정 등)

- [jhVM][2] CentOS 7 user 추가(sudo 권한 부여), 가상머신 네트워크 설정 및 virbr0(static internal IP 부여)

 

이전 글에 이어 CentOS 7 가상머신들을 이용한 쿠버네티스 환경 구축 과정에서 배운 내용을 정리하고자고 한다. 공부 중인 단계에서 정리하는 글이기에 부족하거나 정확하지 않은 내용도 있을 수도 있다. 자세한 내용은 추후 다시 한번 정리해볼 예정이다.

 

 

 

SSH 로그인 및 hosts 설정

CentOS 7 Cloud version image는 ssh가 설치되어 제공된다. 그렇기에 다음과 같이 ssh 접속이 가능하다.

 

# ssh 접속
# ssh [user-name]@[vm-ip]
ssh vm@192.168.122.10

 

다만 이렇게 접속할 경우 접속 시마다 vm의 IP주소(192.168.122.10)와 vm의 password를 입력해야 한다. 개발을 편리하게 하기 위해 주소 [192.168.122.10]에 외우기 쉬운 도메인 네임을 부여하고, password 없이 로그인이 가능하도록 할 예정이다.

 

일단 내부망 내 컴퓨터에 도메인 네임을 부여하기 위해서는 /etc/hosts 파일을 수정하여야 한다. Fig 1.과 같이 hosts 파일을 열고 "192.168.122.10 vm1" 이라는 문장을 추가하자(sudo 권한 필요). 이를 통해 앞으로는 주소 [192.168.122.10]에 "vm1" 이라는 도메인 네임이 부여된다. 추가적으로 Host 컴퓨터(192.168.122.1)에도 "master"라는 도메인 네임을 부여하였다.

 

Fig 1. /etc/hosts 파일 수정

 

다음으로 vm1 가상머신에 비밀번호 없이 로그인할 수 있도록 설정해보자. Host 컴퓨터의 public ssh-key를 vm1 가상머신에 저장하면 된다.

 

1. Host 컴퓨터의 ssh-key 생성

$ ssh-keygen -t rsa

 

2. 가상머신 vm1의 유저 vm에 public-key 복사하기

$ ssh-copy-id vm@vm1

 

3. 비밀번호 없이 vm@vm1 접속 가능 (만약 host컴퓨터의 user가 vm일 시, [ssh vm1]도 가능)

$ ssh vm@vm1 

 

 

 

QCOW2 복사를 통한 VM 복제

이번 포스팅들의 목적은 1 master, 1 worker 이 참여하는 쿠버네티스 환경을 구축하는 것이다. 따라서 vm1 가상머신 뿐만 아니라 추가적인 가상머신(앞으로 vm2) 하나 더가 필요하다. 이미 vm1에 vim 등 개발 환경을 구축해두었기에 이를 그대로 복사해 가상머신 vm2를 생성하고자 한다.

 

가상머신 복제는 생각외로 간단하다. vm1이 사용하는 qcow2 이미지를 그대로 복사하고, 그 이미지를 기반으로 다시 virt-manager를 이용해 vm2를 생성하면 된다. 이 과정에서 mac address, ip 주소 등이 자동으로 재설정되는데, 이 과정이 어떻게 진행되는 지는 좀 더 깊게 공부해 보아야 겠다. (vm 생성 시 cloud-init 과정이 다시 진행되는 지 여부, libvirt에 전달되는 xml이 어떻게 생성되는 지 등을 좀 보면 되지 않을까 싶다)

 

vm1.qcow2 파일 복사 후 vm2.qcow2 파일 기반으로 vm2 가상머신을 생성한다. 이후 앞서 했던 것과 같이 vm2에 static internal ip 부여, ssh-key를 복사, /etc/hosts 파일에 vm2 추가 작업을 진행하였다.