Cách cài đặt WebVirtCloud KVM Management trên Ubuntu 20.04

theanh

Administrator
Nhân viên
WebVirtCloud là một công cụ quản lý dựa trên web cho ảo hóa KVM. Nó cho phép người quản trị và người dùng tạo, quản lý và xóa Máy ảo chạy trên trình quản lý ảo hóa KVM từ giao diện web. Nó được xây dựng trên Django và hỗ trợ xác thực và ủy quyền dựa trên người dùng. Với WebVirtCloud, bạn có thể quản lý nhiều Hypervisor QEMU/KVM, Quản lý mạng Hypervisor và Quản lý nhóm kho dữ liệu từ một lần cài đặt duy nhất.

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt công cụ Quản lý KVM WebVirtCloud trên Ubuntu 20.04.

Điều kiện tiên quyết​

  • Máy chủ chạy Ubuntu 20.04.
  • Mật khẩu gốc được cấu hình trên máy chủ.

Bắt đầu​

Trước tiên, hãy cập nhật các gói hệ thống lên phiên bản đã cập nhật bằng cách chạy lệnh sau:
Mã:
apt-get update -y
Sau khi tất cả các gói được cập nhật, bạn có thể tiến hành bước tiếp theo.

Xác minh Hỗ trợ Ảo hóa​

Trước khi bắt đầu, bạn sẽ cần xác minh xem hệ điều hành của mình có hỗ trợ ảo hóa phần cứng hay không.

Chạy lệnh sau để xác minh.
Mã:
grep -E -c "vmx|svm" /proc/cpuinfo
Nếu đầu ra lớn hơn 0 thì hệ điều hành của bạn hỗ trợ ảo hóa phần cứng.
Mã:
2
Tiếp theo, bạn cũng sẽ cần kiểm tra xem hệ thống của mình có khả năng chạy máy ảo KVM hay không.

Để thực hiện, hãy cài đặt cpu-checker bằng lệnh sau:
Mã:
apt-get install cpu-checker -y
Sau khi cài đặt, hãy chạy lệnh sau để xác minh:
Mã:
kvm-ok
Bạn sẽ thấy đầu ra sau:
Mã:
INFO: /dev/kvm tồn tạiCó thể sử dụng tăng tốc KVM
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cài đặt KVM Hypervisor​

Tiếp theo, bạn sẽ cần cài đặt KVM trên máy chủ của mình. Bạn có thể cài đặt KVM với tất cả các công cụ cần thiết bằng lệnh sau:
Mã:
apt-get install qemu qemu-kvm libvirt-daemon bridge-utils virt-manager virtinst -y
Sau khi cài đặt, bạn sẽ cần xác minh xem mô-đun KVM đã được tải hay chưa. Bạn có thể xác minh bằng lệnh sau:
Mã:
lsmod | grep -i kvm
Bạn sẽ thấy kết quả đầu ra sau:
Mã:
kvm_intel 286720 0kvm 663552 1 kvm_intel
Tiếp theo, hãy kiểm tra trạng thái của dịch vụ libvirtd bằng lệnh sau:
Mã:
systemctl status libvirtd
Bạn sẽ thấy kết quả đầu ra sau:
Mã:
? libvirtd.service - Virtualization daemon Đã tải: đã tải (/lib/systemd/system/libvirtd.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ CN 2021-08-01 04:57:14 UTC; 1 phút 3 giây trướcĐược kích hoạt bởi: ? libvirtd-admin.socket ? libvirtd-ro.socket ? libvirtd.socket Tài liệu: man:libvirtd(8) https://libvirt.org PID chính: 5236 (libvirtd) Nhiệm vụ: 19 (giới hạn: 32768) Bộ nhớ: 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_>01/08 04:57:14 ubuntu2004 systemd[1]: Đã khởi động trình nền ảo hóa.01/08 04:57:15 ubuntu2004 dnsmasq[5385]: đã khởi động, phiên bản 2.80 cachesize 15001/08 04:57:15 ubuntu2004 dnsmasq[5385]: tùy chọn thời gian biên dịch: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth net>01/08 04:57:15 ubuntu2004 dnsmasq-dhcp[5385]: DHCP, dải IP 192.168.122.2 -- 192.168.122.254, thời gian thuê 1 giờ01/08 04:57:15 ubuntu2004 dnsmasq-dhcp[5385]: DHCP, socket chỉ liên kết với giao diện virbr001/08 04:57:15 ubuntu2004 dnsmasq[5385]: đọc /etc/resolv.conf01/08 04:57:15 ubuntu2004 dnsmasq[5385]: sử dụng máy chủ tên 127.0.0.53#5301/08 04:57:15 ubuntu2004 dnsmasq[5385]: đọc /etc/hosts - 5 địa chỉ01/08 04:57:15 ubuntu2004 dnsmasq[5385]: đọc /var/lib/libvirt/dnsmasq/default.addnhosts - 0 địa chỉ01/08 04:57:15 ubuntu2004 dnsmasq-dhcp[5385]: đọc /var/lib/libvirt/dnsmasq/default.hostsfile
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cài đặt Nginx và các gói khác​

Tiếp theo, bạn sẽ cần cài đặt Nginx, Python và các gói cần thiết khác vào máy chủ của mình. Bạn có thể cài đặt tất cả chúng bằng lệnh sau:
Mã:
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
Sau khi tất cả các gói được cài đặt, bạn có thể tiến hành bước tiếp theo.

Cài đặt và cấu hình WebVirtCloud​

Trước tiên, hãy tải xuống phiên bản mới nhất của WebVirtCloud từ kho lưu trữ Git bằng lệnh sau:
Mã:
git clone https://github.com/retspen/webvirtcloud
Sau khi tải xuống hoàn tất, hãy thay đổi thư mục thành webvirtcloud và sao chép tệp setting.py mẫu:
Mã:
cd webvirtcloud
cp webvirtcloud/settings.py.template webvirtcloud/settings.py
Tiếp theo, tạo khóa bí mật bằng lệnh sau:
Mã:
openssl rand -base64 32
Bạn sẽ nhận được thông báo sau đầu ra:
Mã:
mTHhsUm5adG8DABJaIvmRLpQjNbL1vdeIpBDi/jQCV0=
Tiếp theo, chỉnh sửa tệp settings.py và xác định khóa bí mật của bạn:
Mã:
nano webvirtcloud/settings.py
Thay đổi dòng sau:
Mã:
SECRET_KEY = "mTHhsUm5adG8DABJaIvmRLpQjNbL1vdeIpBDi/jQCV0="
Lưu và đóng tệp sau đó sao chép tệp cấu hình WebVirtCloud vào thư mục Nginx và Supervisor:
Mã:
cp conf/supervisor/webvirtcloud.conf /etc/supervisor/conf.d
cp conf/nginx/webvirtcloud.conf /etc/nginx/conf.d
Tiếp theo, quay lại thư mục gốc của bạn và di chuyển thư mục webvirtcloud hoặc thư mục /srv:
Mã:
cd ..
mv webvirtcloud /srv/
Tiếp theo, thiết lập quyền sở hữu thích hợp cho thư mục webvirtcloud:
Mã:
chown -R www-data:www-data /srv/webvirtcloud/
Tiếp theo, thay đổi thư mục thành webvirtcloud và tạo một môi trường ảo:
Mã:
cd /srv/webvirtcloud/
virtualenv -p python3 venv
Tiếp theo, kích hoạt môi trường ảo bằng lệnh sau:
Mã:
source venv/bin/activate
Tiếp theo, cài đặt các phụ thuộc Python cần thiết bằng lệnh sau:
Mã:
pip install -r conf/requirements.txt
Bạn sẽ thấy đầu ra sau:
Mã:
Đã xây dựng thành công libvirt-python qrcode rwlock websockifyCài đặt các gói đã thu thập: 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, ldap3Cài đặt thành công 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
Tiếp theo, chạy lệnh migrate để tạo tất cả các bảng:
Mã:
python3 manage.py migrate
Bạn sẽ thấy kết quả sau:
Mã:
Đang áp dụng otp_totp.0001_initial... OK Đang áp dụng otp_totp.0002_auto_20190420_0723... OK Đang áp dụng sessions.0001_initial... OK* Đang tạo người dùng quản trị mặc định! SHOW_PROFILE_EDIT_PASSWORD được tìm thấy bên trong settings.py* Đang áp dụng quyền can_change_password cho tất cả người dùng! Cảnh báo!!! Đặt thành True cho tất cả người dùng! Đừng quên xóa tùy chọn khỏi settings.py* Di chuyển thuộc tính người dùng can_clone_instaces thành quyền* Áp dụng quyền passwordless_console cho tất cả người dùng
Tiếp theo, hủy kích hoạt khỏi môi trường ảo Python bằng lệnh sau:
Mã:
deactivate
Tiếp theo, đặt quyền sở hữu thích hợp cho thư mục webvirtcloud bằng lệnh sau:
Mã:
chown -R www-data:www-data /srv/webvirtcloud/
Tiếp theo, xóa tệp cấu hình máy chủ ảo mặc định của Nginx:
Mã:
rm /etc/nginx/sites-enabled/default
Tiếp theo, khởi động lại dịch vụ Nginx và Supervisor để áp dụng các thay đổi:
Mã:
systemctl restart nginx
systemctl restart supervisor
Bây giờ bạn có thể xác minh trạng thái của Nginx bằng lệnh sau:
Mã:
systemctl status nginx
Bạn sẽ thấy kết quả sau:
Mã:
? nginx.service - Một máy chủ web hiệu suất cao và một máy chủ proxy ngược Đã tải: đã tải (/lib/systemd/system/nginx.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ CN 2021-08-01 10:35:57 UTC; 12 giây trước Tài liệu: man:nginx(8) Tiến trình: 29055 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Tiến trình: 29068 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) PID chính: 29076 (nginx) Nhiệm vụ: 3 (giới hạn: 4691) Bộ nhớ: 3,4M CGroup: /system.slice/nginx.service ??29076 nginx: tiến trình chính /usr/sbin/nginx -g daemon on; master_process on; ??29077 nginx: tiến trình làm việc ??29078 nginx: tiến trình làm việc01/08 10:35:57 ubuntu2004 systemd[1]: Đang khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược...01/08 10:35:57 ubuntu2004 systemd[1]: Đã khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược.

Thiết lập KVM và Libvirt​

Tiếp theo, chạy tập lệnh sau để thiết lập KVM và Libvirt:
Mã:
wget -O - https://bit.ly/36baWUu | sh
Bạn sẽ thấy đầu ra sau:
Mã:
Độ dài: 151 [text/plain]Đang lưu vào: ‘/etc/supervisor/conf.d/gstfsd.conf’/etc/supervisor/conf.d/gstfsd.conf 100%[=============================================================================>] 151 --.-KB/giây trong 0 giây2021-08-01 10:36:51 (5,50 MB/giây) - ‘/etc/supervisor/conf.d/gstfsd.conf’ đã lưu [151/151] * THÔNG TIN: Đã tìm thấy hàm daemons_running_ubuntu * GỠ LỖI: DAEMONS_RUNNING_FUNC=daemons_running_ubuntu * THÔNG TIN: Chạy daemons_running_ubuntu()
Cuối cùng, thêm người dùng KVM vào nhóm www-data bằng lệnh sau:
Mã:
adduser www-data kvm

Truy cập WebVirtCloud​

Lúc này, WebVirtCloud đã được cài đặt và cấu hình. Đã đến lúc truy cập giao diện web WebVirtCloud.

Mở trình duyệt web của bạn và nhập URL . Bạn sẽ được chuyển hướng đến trang đăng nhập WebVirtCloud:



Cung cấp tên người dùng và mật khẩu mặc định là admin/admin và nhấp vào nút Đăng nhập. Bạn sẽ thấy bảng điều khiển WebVirtCloud trên trang sau:


Kết luận​

Xin chúc mừng! bạn đã cài đặt thành công WebVirtCloud trên máy chủ Ubuntu 20.04. Bây giờ bạn có thể tạo và quản lý máy ảo của mình từ giao diện dựa trên web. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên