Rocky Linux/AlmaLinux 9|8에 WebvirtCloud 설치
WebVirtCloud는 하이퍼바이저와 가상 머신을 관리하는 데 도움을 주는 웹 기반 KVM 가상화 관리 플랫폼입니다. 이를 통해 터미널 기반 작업 대신 웹 대시보드에서 가상 머신을 생성, 관리, 접근 및 삭제할 수 있습니다. 또한 WebVirtCloud는 Ubuntu, Debian, Fedora, CentOS, AlmaLinux 및 Rocky Linux와 같은 인기 운영 체제를 포함한 사전 구성된 템플릿을 통해 VM 생성 과정을 간소화합니다.
이 게시물에서는 Rocky/AlmaLinux 또는 기타 엔터프라이즈 리눅스 기반 배포판을 사용하는 Linux 사용자에게 지침을 제공합니다. 이 가이드에서는 설치 완료 후 주요 작업은 다루지 않지만, 앞으로 더 많은 튜토리얼이 공유될 것으로 기대합니다. 설치를 시작할 준비가 되었다면, 터미널을 열어 시작하세요!
1) 의존성 설치
작업 중인 시스템이 최신 상태인지 확인하세요. 새로 프로비저닝된 가상 머신(강력히 권장)일 수 있으며, KVM이 실행 중인 동일한 컴퓨터(권장하지 않음)일 수도 있습니다. KVM 하이퍼바이저 호스트에 배포하기로 선택한 경우, 계획되지 않은 패키지 업그레이드로 인해 시스템이 손상될 수 있으므로 주의하세요.
아래 명령어를 실행하여 설치된 모든 패키지로 시스템을 업데이트하세요.
sudo dnf -y update
업그레이드 과정 중 커널 업데이트를 확인하고, 참이면 시스템을 재부팅합니다
sudo reboot시스템이 다시 온라인 상태가 되면 터미널을 열거나 WebvirtCloud를 설정하는 데 필요한 종속 항목을 설치하세요.
# Enable EPEL repository
sudo dnf -y install epel-release
# On EL 9 based systems enable crb repository
sudo dnf config-manager --set-enabled crb 2>/dev/null
# Install group development tools
sudo dnf -y groupinstall "Development Tools"
# Install the following additional packages
sudo dnf -y install git gcc libvirt-devel \
glibc supervisor iproute-tc cyrus-sasl-md5 \
cyrus-sasl-devel openldap-devel openssl-devel SELinux를 허용 모드(Permissive)로 설정하세요:
sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config2) Python 3.11 이상 설치
우리는 더 최신 버전의 파이썬을 설치할 필요가 있습니다. 파이썬 3.11 이상을 설치할 수 있습니다.
sudo dnf install python3.12 python3.12-pip python3.12-devel사용 편의를 위해 설치된 python과 pip의 심볼릭 링크를 생성하세요
sudo ln -sf /usr/bin/python3.12 /usr/bin/python3
sudo ln -sf /usr/bin/pip3.12 /usr/bin/pip3Python과 Pip 버전을 확인하여 설치 여부를 확인하세요.
$ /usr/bin/python3 --version
Python 3.12.3
$ /usr/bin/pip3 --version
pip 23.2.1 from /usr/lib/python3.12/site-packages/pip (python 3.12)Pip을 최신 버전으로 업그레이드:
sudo /usr/bin/python3 -m pip install --upgrade pip3) Nginx 웹 서버 설치
우리는 WebvirtCloud 웹 서버로 Nginx를 사용하고 있습니다. 다음 명령어를 실행하여 패키지를 설치하십시오:
sudo dnf -y install nginxnginx 서비스를 시작하고 활성화하세요.
sudo systemctl enable --now nginxfirewalld가 실행 중일 때, http와 https 서비스를 허용할 수 있습니다.
sudo firewall-cmd --add-service={http,https} --permanent
변경 사항을 적용하려면 firewalld 규칙을 다시 로드하세요:
sudo firewall-cmd --reload4) WebVirtCloud 설치 및 구성
이 가이드에서 설명하는 설치 방법은 소스에서 설치하는 방법입니다. Github에서 프로젝트 소스 코드를 클론하세요.
git clone https://github.com/retspen/webvirtcloud.gitwebvirtcloud 디렉토리로 이동하세요.
cd webvirtcloudsettings.py의 템플릿이 제공됩니다. 복사하거나 이름을 바꾸세요.
cp webvirtcloud/settings.py.template webvirtcloud/settings.py아래 명령어를 실행하여 SECRET_KEY 값을 생성하세요.
SECRET=$(python3 conf/runit/secret_generator.py)settings.py 파일에서 SECRET_KEY 값을 업데이트하세요.
sed -i "s|SECRET_KEY = \"\"|SECRET_KEY = \"$SECRET\"|" webvirtcloud/settings.py안전하지 않은 요청에 대해 신뢰할 수 있는 출처 목록에 서버 호스트명을 추가하세요
$ vi webvirtcloud/settings.py
CSRF_TRUSTED_ORIGINS = ['http://localhost','http://webvirtcloud.example.net']DNS 서버에 구성되었거나 /etc/hosts 파일에 매핑된 올바른 서버 호스트명/FQDN으로 webvirtcloud.example.net를 대체하세요. 예:
172.20.30.10 webvirtcloud.example.netnginx와 supervisord 구성 파일을 복사하세요.
sudo cp conf/nginx/webvirtcloud.conf /etc/nginx/conf.d
sudo cp conf/supervisor/webvirtcloud.conf /etc/supervisord.d/webvirtcloud.iniRHEL 기반 시스템에서 nginx 사용자는 www-data 계정이 아닌 nginx 계정으로 실행됩니다. 아래와 같이 supervisor 설정 파일을 업데이트하세요:
sudo sed -i 's/www-data/nginx/g' /etc/supervisord.d/webvirtcloud.ini
nginx 구성 파일 열기 및 편집
sudo vi /etc/nginx/conf.d/webvirtcloud.conf서버 이름의 올바른 값을 설정하고 로그용 파일을 구성하세요.
server {
listen 80;
server_name webvirtcloud.example.net; #Replace with correct hostname
access_log /var/log/nginx/webvirtcloud_access_log;
error_log /var/log/nginx/webvirtcloud_error_log;webvirtcloud 디렉토리를 /srv로 이동합니다.
cd ..
sudo mv webvirtcloud /srvWebvirtCloud용 파이썬 가상 환경을 생성하세요.
cd /srv/webvirtcloud
/usr/bin/python3 -m venv venv새로 생성된 가상 환경 활성화
source venv/bin/activate가상 환경 안에 Python 종속성을 설치하세요
pip3 install --upgrade pip
pip3 install -r conf/requirements.txt마이그레이션을 수행하고 정적 파일을 생성합니다.
pip3 install setuptools
python3 manage.py migrate
python3 manage.py collectstatic --noinput소유권을 웹 서버 사용자로 설정합니다.
sudo chown -R nginx:nginx /srv/webvirtcloudnginx와 supervisor 서비스를 시작하고 활성화합니다
sudo systemctl enable nginx supervisord
sudo systemctl restart nginx supervisord슈퍼바이저가 관리하는 서비스가 실행 중인지 확인하세요
$ sudo supervisorctl status
novncd RUNNING pid 73923, uptime 0:00:10
socketiod RUNNING pid 73924, uptime 0:00:10
webvirtcloud RUNNING pid 73925, uptime 0:00:10nginx 서비스 상태도 확인할 수 있습니다
systemctl status nginx5) WebvirtCloud 대시보드에 접속하기
브라우저를 열고 http://yourserverdomain에서 WebvirtCloud 웹 인터페이스에 접속하세요
기본 사용자 이름과 비밀번호는 admin/admin입니다. 비밀번호를 변경하려면 사용자 admin > 프로필로 이동하세요.
새 비밀번호를 설정하려면 '비밀번호 변경'을 클릭하세요.
새 비밀번호를 설정하고 확인하세요.
6) KVM 호스트를 WebvirtCloud에 추가
필요한 패키지를 설치하고 기타 설정을 수행하여 KVM 호스트를 준비하세요.
KVM 하이퍼바이저에서
우리는 KVM 노드를 설정하는 데 도움이 되는 bash 스크립트를 만들었습니다. 이 스크립트는 우리 GitHub 저장소에서 사용할 수 있습니다.
curl -O https://raw.githubusercontent.com/cloudspinx/linux-bash-scripts/main/webvirtcloud/centos-rocky-kvm-prep.shKVM 호스트에서 스크립트를 실행하세요:
sudo bash centos-rocky-kvm-prep.shgstfsd에서 OS에서 제공하는 Python 버전을 사용하세요
- RHEL 9 기반 시스템
sudo sed -i 's/python3/python3.9/g' /etc/supervisord.d/gstfsd.ini- RHEL 8 기반 시스템
sudo sed -i 's/python3/python3.6/g' /etc/supervisord.d/gstfsd.inisupervisord 서비스를 재시작하십시오.
sudo systemctl restart supervisord서비스 상태를 확인하세요.
$ sudo supervisorctl status
gstfsd STARTINGWebvirtCloud 인스턴스에서
WebVirtCloud 서버에 SSH 키 쌍이 없으면 생성합니다:
$ sudo -u nginx ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/var/lib/nginx/.ssh/id_rsa):
Created directory '/var/lib/nginx/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /var/lib/nginx/.ssh/id_rsa.
Your public key has been saved in /var/lib/nginx/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:U9TVDTByyHL3hybL3MAB8BQ84SiiTVfW/juaWE7VNiI [email
The key's randomart image is:
+---[RSA 3072]----+
| +=B*+ooo.|
| o.*Bo+. o|
| o o .+++ o . |
| + o . .. +.+ .|
| . . S E+o*+. |
| . o=o.. |
| o . |
| = .o |
| . +. . |
+----[SHA256]-----+비밀번호 없는 인증을 사용하기 위해 생성된 SSH 공개 키를 KVM 하이퍼바이저에 복사해야 합니다:
ssh-copy-id -i /var/lib/nginx/.ssh/id_rsa.pub user@compute-server-ip비밀번호 인증을 허용하지 않는 KVM 하이퍼바이저의 경우 키를 수동으로 복사하십시오.
cat /var/lib/nginx/.ssh/id_rsa.pubSSH 허용 키 파일에 내용을 추가할 수 있습니다.
vi ~/.ssh/authorized_keyswebvirtcloud에서 KVM 호스트로의 연결 테스트.
sudo -u nginx ssh user@compute-server-ip
# Example
sudo -u nginx ssh [email 신원 문제로 인해 문제가 발생하면 /var/lib/nginx/.ssh/known_hosts 파일을 삭제한 후 다시 시도하세요.
새 컴퓨트 호스트를 추가하려면 “Computes” –> “SSH”로 이동하세요.
SSH 공개 키를 복사할 때 사용한 호스트 이름, 사용자 이름, IP 주소를 제공하세요.
모든 것이 잘되면 상태는 ‘연결됨’이 되어야 합니다.
KVM 호스트에서 가상화 리소스를 관리하려면 노드에서 “눈” 아이콘을 클릭하세요. 스토리지 풀 구성을 위해서는 다음 기사를 참조하세요:
추천 도서:
- KVM 가상화 마스터하기 – 최고의 전자책
다음 페이지:
- WebvirtCloud를 사용하여 KVM 스토리지 풀 구성







