웹사이트 검색

Ubuntu 20.04에 WebVirtCloud KVM 관리를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. 시작하기\n
  3. 가상화 지원 확인\n
  4. KVM 하이퍼바이저 설치\n
  5. Nginx 및 기타 패키지 설치
  6. WebVirtCloud 설치 및 구성
  7. KVM 및 Libvirt 설정
  8. WebVirtCloud에 액세스
  9. 결론

WebVirtCloud는 KVM 가상화를 위한 웹 기반 관리 도구입니다. 이를 통해 관리자와 사용자는 웹 인터페이스에서 KVM 하이퍼바이저에서 실행되는 가상 머신을 생성, 관리 및 삭제할 수 있습니다. Django를 기반으로 하며 사용자 기반 권한 부여 및 인증을 지원합니다. WebVirtCloud를 사용하면 단일 설치에서 여러 QEMU/KVM 하이퍼바이저, 하이퍼바이저 네트워크 관리 및 데이터 저장소 풀 관리를 관리할 수 있습니다.

이 튜토리얼에서는 Ubuntu 20.04에 WebVirtCloud KVM 관리 도구를 설치하는 방법을 보여줍니다.

전제 조건

  • Ubuntu 20.04를 실행하는 서버.\n
  • 루트 암호는 서버에서 구성됩니다.\n

시작하기

먼저 다음 명령을 실행하여 시스템 패키지를 업데이트된 버전으로 업데이트합니다.

apt-get update -y

모든 패키지가 업데이트되면 다음 단계로 진행할 수 있습니다.

가상화 지원 확인

시작하기 전에 운영 체제가 하드웨어 가상화를 지원하는지 여부를 확인해야 합니다.

다음 명령을 실행하여 확인하십시오.

grep -E -c "vmx|svm" /proc/cpuinfo

출력이 0보다 크면 운영 체제가 하드웨어 가상화를 지원합니다.

2

다음으로 시스템이 KVM 가상 머신을 실행할 수 있는지 여부도 확인해야 합니다.

이렇게 하려면 다음 명령을 사용하여 cpu-checker를 설치하십시오.

apt-get install cpu-checker -y

설치가 완료되면 다음 명령을 실행하여 확인합니다.

kvm-ok

다음 출력이 표시되어야 합니다.

INFO: /dev/kvm exists
KVM acceleration can be used

완료되면 다음 단계로 진행할 수 있습니다.

KVM 하이퍼바이저 설치

다음으로 서버에 KVM을 설치해야 합니다. 다음 명령을 사용하여 필요한 모든 도구로 KVM을 설치할 수 있습니다.

apt-get install qemu qemu-kvm libvirt-daemon bridge-utils virt-manager virtinst -y

설치 후 KVM 모듈이 로드되었는지 여부를 확인해야 합니다. 다음 명령으로 확인할 수 있습니다.

lsmod | grep -i kvm

다음 출력이 표시되어야 합니다.

kvm_intel             286720  0
kvm                   663552  1 kvm_intel

그런 다음 다음 명령을 사용하여 libvirtd 서비스의 상태를 확인합니다.

systemctl status libvirtd

다음 출력이 표시되어야 합니다.

? libvirtd.service - Virtualization daemon
     Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-08-01 04:57:14 UTC; 1min 3s ago
TriggeredBy: ? libvirtd-admin.socket
             ? libvirtd-ro.socket
             ? libvirtd.socket
       Docs: man:libvirtd(8)
             https://libvirt.org
   Main PID: 5236 (libvirtd)
      Tasks: 19 (limit: 32768)
     Memory: 16.2M
     CGroup: /system.slice/libvirtd.service
             ??5236 /usr/sbin/libvirtd
             ??5385 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_>
             ??5386 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_>

Aug 01 04:57:14 ubunt4 systemd[1]: Started Virtualization daemon.
Aug 01 04:57:15 ubunt4 dnsmasq[5385]: started, version 2.80 cachesize 150
Aug 01 04:57:15 ubunt4 dnsmasq[5385]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth net>
Aug 01 04:57:15 ubunt4 dnsmasq-dhcp[5385]: DHCP, IP range 192.168.122.2 -- 192.168.122.254, lease time 1h
Aug 01 04:57:15 ubunt4 dnsmasq-dhcp[5385]: DHCP, sockets bound exclusively to interface virbr0
Aug 01 04:57:15 ubunt4 dnsmasq[5385]: reading /etc/resolv.conf
Aug 01 04:57:15 ubunt4 dnsmasq[5385]: using nameserver 127.0.0.53#53
Aug 01 04:57:15 ubunt4 dnsmasq[5385]: read /etc/hosts - 5 addresses
Aug 01 04:57:15 ubunt4 dnsmasq[5385]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses
Aug 01 04:57:15 ubunt4 dnsmasq-dhcp[5385]: read /var/lib/libvirt/dnsmasq/default.hostsfile

완료되면 다음 단계로 진행할 수 있습니다.

Nginx 및 기타 패키지 설치

다음으로 Nginx, Python 및 기타 필수 패키지를 서버에 설치해야 합니다. 다음 명령으로 모두 설치할 수 있습니다.

apt-get install git virtualenv python3-virtualenv python3-dev python3-lxml libvirt-dev zlib1g-dev libxslt1-dev nginx supervisor libsasl2-modules gcc pkg-config python3-guestfs libsasl2-dev libldap2-dev libssl-dev -y

모든 패키지가 설치되면 다음 단계로 진행할 수 있습니다.

WebVirtCloud 설치 및 구성

먼저 다음 명령을 사용하여 Git 리포지토리에서 최신 버전의 WebVirtCloud를 다운로드합니다.

git clone https://github.com/retspen/webvirtcloud

다운로드가 완료되면 디렉토리를 webvirtcloud로 변경하고 샘플 setting.py 파일을 복사합니다.

cd webvirtcloud
cp webvirtcloud/settings.py.template webvirtcloud/settings.py

다음으로 다음 명령을 사용하여 비밀 키를 생성합니다.

openssl rand -base64 32

다음 출력이 표시되어야 합니다.

mTHhsUm5adG8DABJaIvmRLpQjNbL1vdeIpBDi/jQCV0=

다음으로 settings.py 파일을 편집하고 비밀 키를 정의합니다.

nano webvirtcloud/settings.py

다음 줄을 변경합니다.

SECRET_KEY = "mTHhsUm5adG8DABJaIvmRLpQjNbL1vdeIpBDi/jQCV0="

파일을 저장하고 닫은 다음 WebVirtCloud 구성 파일을 Nginx 및 Supervisor 디렉터리에 복사합니다.

cp conf/supervisor/webvirtcloud.conf /etc/supervisor/conf.d
cp conf/nginx/webvirtcloud.conf /etc/nginx/conf.d

다음으로 홈 디렉터리로 돌아가 webvirtcloud 디렉터리를 /srv 디렉터리로 이동합니다.

cd ..
mv webvirtcloud /srv/

다음으로 webvirtcloud 디렉터리에 적절한 소유권을 설정합니다.

chown -R www-data:www-data /srv/webvirtcloud/

다음으로 디렉터리를 webvirtcloud로 변경하고 가상 환경을 만듭니다.

cd /srv/webvirtcloud/
virtualenv -p python3 venv

그런 다음 다음 명령을 사용하여 가상 환경을 활성화합니다.

source venv/bin/activate

다음으로 다음 명령을 사용하여 필요한 Python 종속 항목을 설치합니다.

pip install -r conf/requirements.txt

다음 출력이 표시되어야 합니다.

Successfully built libvirt-python qrcode rwlock websockify
Installing collected packages: sqlparse, pytz, asgiref, Django, soupsieve, beautifulsoup4, django-bootstrap5, django-icons, django-login-required-middleware, django-otp, segno, django-qr-code, gunicorn, six, libsass, libvirt-python, lxml, qrcode, rwlock, numpy, websockify, zipp, pyasn1, ldap3
Successfully installed Django-3.2.5 asgiref-3.4.1 beautifulsoup4-4.9.3 django-bootstrap5-2.0.1 django-icons-4.0.0 django-login-required-middleware-0.6.1 django-otp-1.0.6 django-qr-code-2.2.0 gunicorn-20.1.0 ldap3-2.9 libsass-0.21.0 libvirt-python-7.4.0 lxml-4.6.3 numpy-1.21.1 pyasn1-0.4.8 pytz-2021.1 qrcode-7.0 rwlock-0.0.7 segno-1.3.3 six-1.16.0 soupsieve-2.2.1 sqlparse-0.4.1 websockify-0.9.0 zipp-3.4.1

그런 다음 마이그레이션 명령을 실행하여 모든 테이블을 생성합니다.

python3 manage.py migrate

다음 출력이 표시되어야 합니다.

  Applying otp_totp.0001_initial... OK
  Applying otp_totp.0002_auto_20190420_0723... OK
  Applying sessions.0001_initial... OK
* Creating default admin user
! SHOW_PROFILE_EDIT_PASSWORD is found inside settings.py
* Applying permission can_change_password for all users
! Warning!!! Setting to True for all users
! Don`t forget to remove the option from settings.py
* Migrating can_clone_instaces user attribute to permission
* Applying permission passwordless_console for all users

그런 다음 다음 명령을 사용하여 Python 가상 환경에서 비활성화합니다.

deactivate

다음으로 다음 명령을 사용하여 webvirtcloud 디렉터리에 적절한 소유권을 설정합니다.

chown -R www-data:www-data /srv/webvirtcloud/

다음으로 Nginx 기본 가상 호스트 구성 파일을 제거합니다.

rm /etc/nginx/sites-enabled/default

그런 다음 Nginx 및 감독자 서비스를 다시 시작하여 변경 사항을 적용합니다.

systemctl restart nginx
systemctl restart supervisor

이제 다음 명령을 사용하여 Nginx의 상태를 확인할 수 있습니다.

systemctl status nginx

다음 출력이 표시되어야 합니다.

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-08-01 10:35:57 UTC; 12s ago
       Docs: man:nginx(8)
    Process: 29055 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 29068 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 29076 (nginx)
      Tasks: 3 (limit: 4691)
     Memory: 3.4M
     CGroup: /system.slice/nginx.service
             ??29076 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??29077 nginx: worker process
             ??29078 nginx: worker process

Aug 01 10:35:57 ubunt4 systemd[1]: Starting A high performance web server and a reverse proxy server...
Aug 01 10:35:57 ubunt4 systemd[1]: Started A high performance web server and a reverse proxy server.

KVM 및 Libvirt 설정

다음으로 다음 스크립트를 실행하여 KVM 및 Libvirt를 설정합니다.

wget -O - https://bit.ly/36baWUu | sh

다음 출력이 표시되어야 합니다.

Length: 151 [text/plain]
Saving to: ‘/etc/supervisor/conf.d/gstfsd.conf’

/etc/supervisor/conf.d/gstfsd.conf  100%[==================================================================>]     151  --.-KB/s    in 0s      

2021-08-01 10:36:51 (5.50 MB/s) - ‘/etc/supervisor/conf.d/gstfsd.conf’ saved [151/151]

 *  INFO: Found function daemons_running_ubuntu
 * DEBUG: DAEMONS_RUNNING_FUNC=daemons_running_ubuntu
 *  INFO: Running daemons_running_ubuntu()

마지막으로 다음 명령을 사용하여 www-data 그룹에 KVM 사용자를 추가합니다.

adduser www-data kvm

WebVirtCloud에 액세스

이 시점에서 WebVirtCloud가 설치되고 구성됩니다. WebVirtCloud 웹 인터페이스에 액세스할 시간입니다.

웹 브라우저를 열고 URL http://your-server-ip를 입력합니다. WebVirtCloud 로그인 페이지로 리디렉션됩니다.

기본 사용자 이름과 비밀번호를 admin/admin으로 입력하고 로그인 버튼을 클릭합니다. 다음 페이지에 WebVirtCloud 대시보드가 표시되어야 합니다.

결론

축하합니다! Ubuntu 20.04 서버에 WebVirtCloud를 성공적으로 설치했습니다. 이제 웹 기반 인터페이스에서 가상 머신을 만들고 관리할 수 있습니다. 궁금한 점이 있으면 언제든지 문의해 주세요.