Cài đặt WebvirtCloud trên Rocky Linux/AlmaLinux 9|8
WebVirtCloud là một nền tảng quản lý ảo hóa KVM dựa trên web, có thể giúp bạn quản lý hypervisor và các máy ảo. Nó cho phép bạn tạo, quản lý, truy cập và xóa các máy ảo từ bảng điều khiển web thay vì thực hiện qua terminal. Hơn nữa, WebVirtCloud đơn giản hóa việc tạo máy ảo thông qua các mẫu được cấu hình sẵn với các hệ điều hành phổ biến như Ubuntu, Debian, Fedora, CentOS, AlmaLinux và Rocky Linux.
Trong bài viết này, chúng tôi cung cấp hướng dẫn cho người dùng Linux đang sử dụng Rocky/AlmaLinux, hoặc bất kỳ bản phân phối nào khác của hệ điều hành Enterprise Linux. Hướng dẫn này sẽ không đề cập đến các tác vụ lớn sau khi cài đặt, nhưng chúng tôi hy vọng trong tương lai sẽ chia sẻ thêm nhiều bài hướng dẫn hơn. Nếu bạn đã sẵn sàng bắt đầu quá trình cài đặt, hãy mở terminal để bắt đầu!
1) Cài đặt các phụ thuộc
Đảm bảo hệ thống bạn đang làm việc được cập nhật mới nhất. Nó có thể là một máy ảo vừa được cấp phát (rất được khuyến nghị), hoặc cùng một máy tính nơi KVM đang chạy (không được khuyến nghị). Nếu bạn chọn triển khai trên host KVM hypervisor, hãy cẩn thận vì các nâng cấp gói không kế hoạch có thể làm hỏng hệ thống.
Chạy lệnh dưới đây để cập nhật hệ thống với tất cả các gói đã cài đặt.
sudo dnf -y update
Xác nhận cập nhật kernel trong quá trình nâng cấp, nếu đúng hãy khởi động lại hệ thống
sudo rebootSau khi hệ thống trực tuyến trở lại, hãy mở terminal hoặc cài đặt các phụ thuộc cần thiết để thiết lập 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 Đặt SELinux ở chế độ Permissive:
sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config2) Cài đặt Python 3.11 trở lên
Chúng ta cần cài đặt phiên bản Python mới hơn. Bạn có thể cài đặt Python 3.11 trở lên.
sudo dnf install python3.12 python3.12-pip python3.12-develĐể tiện sử dụng, hãy tạo liên kết tượng trưng (symlink) cho python và pip đã cài đặt
sudo ln -sf /usr/bin/python3.12 /usr/bin/python3
sudo ln -sf /usr/bin/pip3.12 /usr/bin/pip3Xác minh cài đặt bằng cách kiểm tra phiên bản Python và 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)Nâng cấp Pip lên phiên bản mới nhất có sẵn từ nguồn trên:
sudo /usr/bin/python3 -m pip install --upgrade pip3) Cài đặt máy chủ web Nginx
Chúng tôi đang sử dụng Nginx làm máy chủ web của WebvirtCloud. Cài đặt gói bằng cách chạy lệnh sau:
sudo dnf -y install nginxKhởi động và kích hoạt dịch vụ nginx.
sudo systemctl enable --now nginxKhi firewalld đang chạy, bạn có thể cho phép các dịch vụ http và https.
sudo firewall-cmd --add-service={http,https} --permanent
Tải lại các quy tắc firewalld để các thay đổi có hiệu lực:
sudo firewall-cmd --reload4) Cài đặt và Cấu hình WebVirtCloud
Phương pháp cài đặt mà chúng tôi hướng dẫn trong bài này là từ mã nguồn. Hãy sao chép mã nguồn dự án từ Github.
git clone https://github.com/retspen/webvirtcloud.gitChuyển vào thư mục webvirtcloud.
cd webvirtcloudMột mẫu của settings.py được cung cấp. Sao chép hoặc đổi tên nó.
cp webvirtcloud/settings.py.template webvirtcloud/settings.pyTạo giá trị SECRET_KEY bằng cách chạy lệnh dưới đây.
SECRET=$(python3 conf/runit/secret_generator.py)Cập nhật giá trị SECRET_KEY trong tệp settings.py.
sed -i "s|SECRET_KEY = \"\"|SECRET_KEY = \"$SECRET\"|" webvirtcloud/settings.pyThêm tên máy chủ của bạn vào danh sách các nguồn tin cậy cho các yêu cầu không an toàn
$ vi webvirtcloud/settings.py
CSRF_TRUSTED_ORIGINS = ['http://localhost','http://webvirtcloud.example.net']Thay webvirtcloud.example.net bằng tên máy chủ/FQDN chính xác như đã cấu hình trong máy chủ DNS hoặc được ánh xạ trong tệp /etc/hosts. Ví dụ:
172.20.30.10 webvirtcloud.example.netSao chép các tệp cấu hình nginx và supervisord.
sudo cp conf/nginx/webvirtcloud.conf /etc/nginx/conf.d
sudo cp conf/supervisor/webvirtcloud.conf /etc/supervisord.d/webvirtcloud.iniTrong các hệ thống dựa trên RHEL, người dùng nginx chạy dưới tài khoản nginx chứ không phải tài khoản người dùng www-data. Cập nhật tệp cấu hình supervisor để phản ánh điều này:
sudo sed -i 's/www-data/nginx/g' /etc/supervisord.d/webvirtcloud.ini
Mở và chỉnh sửa tệp cấu hình nginx
sudo vi /etc/nginx/conf.d/webvirtcloud.confĐặt giá trị đúng cho tên máy chủ và cấu hình các tệp để ghi nhật ký.
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;Di chuyển thư mục webvirtcloud đến /srv.
cd ..
sudo mv webvirtcloud /srvTạo môi trường ảo Python cho WebvirtCloud.
cd /srv/webvirtcloud
/usr/bin/python3 -m venv venvKích hoạt môi trường ảo vừa tạo
source venv/bin/activateCài đặt các phụ thuộc Python trong môi trường ảo
pip3 install --upgrade pip
pip3 install -r conf/requirements.txtThực hiện di chuyển và tạo các tệp tĩnh.
pip3 install setuptools
python3 manage.py migrate
python3 manage.py collectstatic --noinputĐặt quyền sở hữu cho người dùng máy chủ web.
sudo chown -R nginx:nginx /srv/webvirtcloudKhởi động và kích hoạt các dịch vụ nginx và supervisor
sudo systemctl enable nginx supervisord
sudo systemctl restart nginx supervisordKiểm tra các dịch vụ do supervisor quản lý xem có đang chạy không
$ 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:10Bạn cũng có thể xác nhận trạng thái dịch vụ nginx
systemctl status nginx5) Truy cập Bảng điều khiển WebvirtCloud
Mở trình duyệt của bạn và truy cập giao diện web của WebvirtCloud tại http://yourserverdomain
Tên đăng nhập và mật khẩu mặc định là admin / admin. Để thay đổi mật khẩu, đi tới người dùng admin > Hồ sơ
Nhấp vào «Đổi Mật Khẩu» để đặt mật khẩu mới.
Đặt mật khẩu mới và xác nhận.
6) Thêm máy chủ KVM vào WebvirtCloud
Chuẩn bị máy chủ KVM của bạn bằng cách cài đặt các gói cần thiết và thực hiện các cấu hình khác.
Trên siêu giám sát KVM
Chúng tôi đã tạo một script bash giúp bạn thiết lập nút KVM. Nó có sẵn trong kho Github của chúng tôi.
curl -O https://raw.githubusercontent.com/cloudspinx/linux-bash-scripts/main/webvirtcloud/centos-rocky-kvm-prep.shThực thi tập lệnh trên máy chủ KVM:
sudo bash centos-rocky-kvm-prep.shSử dụng phiên bản Python do Hệ điều hành cung cấp trên gstfsd
- Hệ thống dựa trên RHEL 9
sudo sed -i 's/python3/python3.9/g' /etc/supervisord.d/gstfsd.ini- Các hệ thống dựa trên RHEL 8
sudo sed -i 's/python3/python3.6/g' /etc/supervisord.d/gstfsd.iniKhởi động lại dịch vụ supervisord.
sudo systemctl restart supervisordKiểm tra trạng thái dịch vụ.
$ sudo supervisorctl status
gstfsd STARTINGTrên Phiên bản WebvirtCloud
Tạo cặp khóa SSH trên máy chủ WebVirtCloud nếu chưa tồn tại:
$ 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]-----+Chúng ta cần sao chép khóa công khai SSH đã tạo vào máy chủ ảo KVM để bật xác thực không cần mật khẩu:
ssh-copy-id -i /var/lib/nginx/.ssh/id_rsa.pub user@compute-server-ipĐối với hypervisor KVM không cho phép xác thực bằng mật khẩu, hãy sao chép khóa thủ công.
cat /var/lib/nginx/.ssh/id_rsa.pubBạn có thể thêm nội dung vào tệp khóa được ủy quyền SSH.
vi ~/.ssh/authorized_keysKiểm tra kết nối từ webvirtcloud đến máy chủ KVM.
sudo -u nginx ssh user@compute-server-ip
# Example
sudo -u nginx ssh [email Nếu bạn gặp sự cố với các danh tính, hãy xóa tệp /var/lib/nginx/.ssh/known_hosts và thử lại.
Thêm một máy chủ tính toán mới bằng cách vào “Computes” –> “SSH“
Cung cấp tên máy chủ, tên đăng nhập và địa chỉ IP được sử dụng khi sao chép khóa công khai ssh.
Nếu mọi thứ diễn ra suôn sẻ, trạng thái sẽ là «Đã kết nối».
Nhấp vào biểu tượng “mắt” trên nút để bắt đầu quản lý các tài nguyên ảo hóa trên máy chủ KVM. Để cấu hình các bể lưu trữ, hãy xem bài viết sau:
Sách được gợi ý:
- Làm chủ ảo hóa KVM – eBook tối ưu
Trang tiếp theo:
- Cấu hình các Pool Lưu trữ KVM bằng WebvirtCloud







