SolusVM 主控及 KVM 节点服务器安装配置指南

Kevin 教程 3,208 次浏览 14条评论

记录下最近折腾 SolusVM 的安装配置过程。没接触前以为会很难,实际程序的安装步骤很简单,难点在于服务器环境配置上。尤其网络配置问题上容易遇阻,其它基本跟着教程走就可以运行起来。当然这还只是程序搭建范畴,如果想正式运营提供服务,应该还有很多问题要解决。

准备工作

服务器和 IP

准备两台服务器。其中 SolusVM 主控可以使用普通 VPS,配置不要太低就行。KVM 节点需要用独立服务器,并配有多个 IP 地址(通常是一个 C 段或在下面划分的更小子网,用于分配虚拟机使用)。

安装 CentOS 6 系统(目前 SolusVM 对 CentOS  7 的兼容性不好,存在重启不能自启虚拟机、不支持限速等问题)。系统建议安装 Minimal 版本,安装过程中配置好网络连接硬盘分区(对 KVM 节点服务器而言,通常用 IPMI 这类底层控制台操作)。

安装系统后运行一遍更新,安装几个基础软件,检查禁用 SELinux,然后重启服务器备用。

yum -y update
yum -y install wget unzip screen lrzsz

SolusVM 授权

SolusVM 官网购买产品授权,没有激活将无法进行任何操作。如果只是玩玩,有 30 天免费试用。

域名及 SSL 证书(可选)

SolusVM 控制面板使用。如果不在乎访问体验,不配置域名和 SSL 证书也可以,直接用 IP 访问。

免费方案:Freenom 免费域名(有收回风险),Let’s Encrypt 免费证书(下文有介绍)。

SolusVM 主控程序安装

下载运行 SolusVM 安装脚本,它会自动集成安装 Nginx、数据库、PHP 等工作组件

wget https://files.soluslabs.com/install.sh
sh install.sh

选择1仅安装 SolusVM 主控程序,等待安装完成后会打印登录信息。

Install SolusVM Master
仅安装 SolusVM 主控程序
SolusVM Master Login Information
SolusVM 控制面板登录信息

这时就可以访问登录 SolusVM 控制面板。由于没有配置 SSL 证书,浏览器会显示警告信息。

SolusVM SSL 证书配置

这里只介绍主控端 SSL 配置,节点服务器用默认自签证书就行。如果已准备域名证书(包括 cert.pem 文件,其生成方法及放置路径下文有提及),将证书上传到 SolusVM 默认目录,替换同名文件。

/usr/local/svmstack/nginx/ssl/ssl.crt
/usr/local/svmstack/nginx/ssl/ssl.key

重启 Nginx 服务生效。

service svmstack-nginx restart

如果没有准备或不打算使用付费证书,可按下面步骤申请安装 Let’s Encrypt 免费证书。

在之前程序安装打印信息里有说可以用/usr/local/svmstack/letsencrypt/letsencrypt -i获取 Let’s Encrypt 证书,但笔者测试没有成功。还是另外安装 ACME 客户端来申请吧,由于 Certbot 在 CentOS6 下安装比较麻烦,需要先有 Python3,这里我们用另一个主流 ACME  客户端 acme.sh 申请。

安装 acme.sh(默认安装在用户目录下)。若要指定安装目录和证书储存目录,点此查看介绍

curl https://get.acme.sh | sh

安装后需要断开重连 SSH 会话才能使用。

用下面命令申请证书。如果要申请多个域名追加-d参数,-w参数是网站验证目录路径(检查目录是否存在)。更多选项参数可通过acme.sh --help命令查看。

acme.sh --issue -d cp.example.com -w /usr/local/solusvm/www/.verification

创建一个 Shell 脚本储存部署证书后要执行的命令,包括重启 Nginx 服务,生成 noVNC 所需的 cert.pem 文件。蓝色字符命令是重启 sshwebsocket(HTML5 控制台),这个服务 SolusVM 默认没有安装,因此执行会提示找不到文件。考虑到这个也属常用服务,顺便加上重启命令。

在指定目录创建脚本文件(储存路径可随意)。

cd /root/.acme.sh && vi myreloadcmd.sh

复制粘贴脚本内容保存。

#!/usr/bin/env bash

service svmstack-nginx restart
/usr/local/svmstack/sshwebsocket/quit
/usr/local/svmstack/sshwebsocket/port_check
cd /usr/local/svmstack/nginx/ssl && cat ssl.key ssl.crt > /usr/local/solusvm/includes/nvnc/cert.pem

赋予脚本可执行权限,./不可省略,表示文件在当前目录下。

chmod +x ./myreloadcmd.sh

接着安装证书文件到 SolusVM SSL目录。用这种方式安装,后续 acme.sh 续订证书会记住附带命令。如安装路径,更新后需要执行的操作。相关配置在用户目录下的 .acme.sh 域名目录里的 *.conf 文件。

acme.sh --install-cert -d cp.example.com \
--key-file /usr/local/svmstack/nginx/ssl/ssl.key \
--fullchain-file /usr/local/svmstack/nginx/ssl/ssl.crt \
--reloadcmd "/root/.acme.sh/myreloadcmd.sh"

这里补充一个遇到问题,之前尝试直接在--reloadcmd里设置执行命令。但不知是否 acme.sh bug(命令太多?),安装证书时可以正常工作,但续订一次后会丢失命令(–reloadcmd 值变成空白),后来改调用脚本文件就正常了。

Let’s Encrypt 免费证书有 90 天期限,到期后需要续订。在安装 acme.sh 时已自动添加 Cron 更新任务,可通过crontab -l命令查看(修改用-e参数)。

例如下面规则表示每 54 天检查更新(只是检查更新,这个时间 acme.sh 貌似会自动调整。更新时间取决 acme.sh 域名配置文件里的 Le_NextRenewTimeStr 值。如果要强制更新追加--force参数)。

54 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

SSL 证书配置好后访问测试下,如无意外,应该可以看到绿色小锁安全标识。

SolusVM SSL Access Test

到此,SolusVM 主控端安装完成。登录进去绑定授权码,修改管理员账户密码,之后回来添加节点。

SolusVM KVM 管理程序安装

运行 SolusVM 安装脚本,选择4安装 KVM 管理程序,安装后复制保存 Key & Password 备用。

wget https://files.soluslabs.com/install.sh
sh install.sh
Install SolusVM Slave (KVM)
安装 KVM 管理程序
SolusVM Slave Key & Password
节点服务器 Key & Password

rpm -q bridge-utils检查是否安装 bridge-utils 软件包(之后需要用到),没有则用下面命令安装。

yum -y install bridge-utils

配置 KVM Bridge 网络

为使开出的 KVM 虚拟机能连接网络,需要在宿主机上配置好 Bridge 网络(内网和外网都配置。外网显然不可或缺,不然虚拟机无法访问互联网。配置内网好处是,之后可以按需分配内网 IP 给虚拟机,使其可以访问局域网下其它虚拟机或设备)。

外网 Bridge 网络设置

假设要添加两个 IP 段,分别是 56.56.56.32/30 和 56.56.56.0/27。前者是宿主机使用的主 IP,后者是分配虚拟机使用的 IP。

配置 56.56.56.32/30

56.56.56.32/30 IP段共有 4 个 IP,范围是 56.56.56.32-35。除去头尾的网络地址(32)和广播地址(35)不可用外,第一个 IP 是网关地址(33),实际只剩 34 可配置为 IP。子网掩码 255.255.255.252。这些信息可以用在线工具计算。

找到接入外网的网卡设备配置文件,在/etc/sysconfig/network-scripts目录下 ifcfg-eth* 开头的文件。如果有多个,从 0 开始检查,里面有配置之前安装系统时设置的外网 IP 就是。

这里假设网卡配置文件名是 ifcfg-eth1,先备份一下。

cd /etc/sysconfig/network-scripts && cp ifcfg-eth1 backup-ifcfg-eth1

修改 ifcfg-eth1 文件,保留蓝色参数,红色参数以链接等下创建的 br0,删除网络参数(记下备用)。

vi ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
UUID=8d6f722c-b945-4083-b50e-9661bf62ae5f
HWADDR=ac:1f:6b:94:55:22
ONBOOT=yes
BRIDGE=br0
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=56.56.56.34
NETMASK=255.255.255.252
GATEWAY=56.56.56.33
DNS1=8.8.8.8
DNS2=8.8.4.4
IPV6INIT=no

创建 ifcfg-br0 网桥配置文件(尾数 ID 不要求对应网卡的)。将之前 ifcfg-eth1 里的网络参数添加进去(红色部分),蓝色部分是常规必要参数。

vi ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=56.56.56.34
NETMASK=255.255.255.252
GATEWAY=56.56.56.33
DNS1=8.8.8.8
DNS2=8.8.4.4
IPV6INIT=no
NM_CONTROLLED=no

配置 56.56.56.0/27

再添加一个 IP 段,用于分配虚拟机使用。配置文件命名 ifcfg-br0:0(这样命名可以使用同一个网卡设备,添加多个 IP 段则后面 ID 顺延。eth1 那里不用再链接这个接口,链接 br0 会自动关联这个)。

vi ifcfg-br0:0

内容如下。注意这个不要设置网关(多个网络接口只能有一个默认网关 ),IP 设置第一个可用 IP(网关地址)。

DEVICE=br0:0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=56.56.56.2
NETMASK=255.255.255.224
IPV6INIT=no
NM_CONTROLLED=no

到此,完成外网 Bridge 设置,接下来创建一个内网 Bridge,以供分配虚拟机访问局域网使用。

内网 Bridge 网络设置

创建 ifcfg-intbr0 网桥配置文件。添加 10.0.0.1/24 内网 IP 段(共 254 个可用 IP 通常已足够)。内网不用设置网关参数。

vi ifcfg-intbr0
DEVICE=intbr0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.0.0.1
NETMASK=255.255.255.0
IPV6INIT=no
NM_CONTROLLED=no

确认开启 IP 转发及重启网络

检查有无开启 IP 转发,查看/etc/sysctl.conf文件,下面参数值 1 为开启。

net.ipv4.ip_forward = 1

重启网络使之前网络配置生效。

/etc/init.d/network restart

之后用ifconfig查看网络接口。测试绑定 IP 能否ping通。brctl show检查 Bridge 接口状态。

修改 SolusVM 扩展配置文件

这步是设置 SolusVM 在配置虚拟机内网时不要添加网关,如果没有设置,则分配了内网 IP 的虚拟机将无法访问外网(因为存在超过一个默认网关)。

改名启用 config.ini 配置文件。

mv /usr/local/solusvm/data/config.ini.example /usr/local/solusvm/data/config.ini

去掉文件里的 domain_simple_internal_network 参数行注释,并将值设为 true。

sed -i 's/;domain_simple_internal_network = false/domain_simple_internal_network = true/g' /usr/local/solusvm/data/config.ini

SolusVM 开通 KVM 虚拟机

终于到了检验配置的时候了,登录 SolusVM 主控面板添加服务器和IP,开通虚拟机测试是否正常。

添加 KVM 服务器

点击菜单栏 Nodes -> Add Node。填写 KVM 服务器资料。如果不清楚 Hostname / LV Group,可以用hostnamevgdisplay命令查询。ID Key 和 ID Password 是之前安装 KVM 程序提示的字符串。

SolusVM Add Node

保存后会多出几个选项,点击回来完成设置。检查系统版本识别是否正确,设置网卡/网桥名称,网络端口速度,可开虚拟机数量,内存/硬盘最大用量等选项。

顺便编辑下 SolusVM 主控节点,勾选 Locked 禁用在此节点上创建虚拟机。

设置后回到 List Nodes 界面,点击添加的 KVM 服务器名称,进入点击 Internal Ipaddresses 选项。

SolusVM Node Internal IP Addresses

修改内网缺省值(根据之前创建的 ifcfg-intbr0 配置文件填写),添加可用内网 IP 范围(不要添加 10.0.0.1 默认网关地址,从 10.0.0.2 开始)。

SolusVM Node Add Internal IP Range

如果要为已开通的 KVM 虚拟机添加内网 IP ,流程是先在虚拟机属性页面里点击 Internal IP 添加,之后重启虚拟机。重启后登录虚拟机操作系统,创建一个网络接口配置文件(内容如下,替换其中的具体内网 IP 地址),假设文件名为 ifcfg-eth1(不要覆盖已有的配置文件)。

vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.0.0.2
NETMASK=255.255.255.0
IPV6INIT=no
NM_CONTROLLED=no

之后/etc/init.d/network restart重启网络生效。使用ifconfig检查是否添加成功,以及能否ping通 10.0.0.1 网关地址。如果虚拟机重装了系统,则不用重复此过程,SolusVM 会自动生成。

添加外网 IP 地址

点击菜单栏 IP Blocks -> Add IPv4 Block,根据之前创建 ifcfg-br0:0 配置文件里的参数设置(网关地址为第一个可用 IP),勾选所属服务器节点。如果 ifcfg-br0 主 IP 段有多个可用 IP 也可以如法添加。

SolusVM Add IPv4 Block

回到 List IP Blocks 界面,点击刚才添加 IP Blocks 右侧的 Manage IP’s 按钮,进去添加可用 IP 范围(网关地址那个不要添加,添加范围 56.56.56.2-30)。

SolusVM Add IPv4 Range

获取 & 同步虚拟机系统模板

SolusVM 分发网络下载预构建 KVM 操作系统模板(还有一个单分区无 SWAP 的系统模板可以选择),复制页面里的下载链接登录到主控服务器下载。

下载后回到控制面板操作,菜单栏点击 Media -> Media Groups 创建一个 KVM Template 组。

之后 Media -> Add KVM Template 依次添加已经下载的系统模板,勾选随机生成 root 密码和自动配置网络,其它选项按系统模板下载页面里的说明设置。

SolusVM Add KVM Template

添加后会多出几个选项,建议点击回来查看。其中可以启用 CPU Model 选项使用 host-passthrough 模式,这样虚拟机可以看到宿主机的 CPU 型号,能提高指令兼容性和效率,而不是 QEMU 这种。

接下来 Media -> Media Sync 同步系统模板到节点服务器上。点击 Create 创建同步任务,选择系统模板和同步服务器,点击 Create Sync Job 提交。

SolusVM Media Sync

在 Jobs 界面查看任务进度,变为下图状态就同步完成了。

SolusVM Media Sync Job

添加不同配置的虚拟机产品

菜单栏点击 Plans -> Add KVM Plan,自定义虚拟机产品配置,选中可以使用的系统模板,完成添加。

SolusVM Add KVM Plan

添加用户账号

菜单栏 Client -> Add Client 添加一个测试用户账号。

SolusVM Add Client

开通虚拟机测试

菜单栏点击 Virtual Servers -> Add Virtual Server,点击 KVM,选择节点服务器和套餐。选择开通用户账号,设置主机名,分配 IP 和预装系统,点击创建虚拟机,之后显示虚拟机登录资料。

SolusVM Create Virtual Server

开通后等系统安装完成,大概10分钟左右吧。如无意外,SSH 连接上就可以开始使用了。

SolusVM Virtual Server Test

补充:开通虚拟机默认不分配内网 IP ,如有需要,可以按之前所说的步骤手动分配添加。

总结

上面文章为求详尽和具操作性写的比较多。对于新手而言,主要还是网络配置那块比较难,其它只要操作过程不遇到什么新问题,一般都能顺利部署好。如果想要熟悉 SolusVM 使用,建议花些时间看一遍官方文档,里面介绍的比较全面。SolusVM 运行起来后,接下来就是配置 HTML5 VNC 控制台连通 WHMCS 实现自主注册和开通了。以后有机会再写相关教程。

评论列表

  1. #1

    dapoxetine 30mg https://salemeds24.wixsite.com/dapoxetine

  2. #2

    treating heartworms with ivermectin https://ivermectin.webbfenix.com/

  3. #3

    bimatoprost generic eyelash https://carepro1st.com/

  4. #4

    chloroquine and hydroxychloroquine trials https://hydroxychloroquine.mlsmalta.com/

  5. #5

    cialis super active medpharssdf http://www.lm360.us/

  6. #6

    can vidalista be taken daily https://vidalista.buszcentrum.com/

  7. #7

    100mg viagra without a doctor prescription http://droga5.net/

  8. #8

    vidalista 5mg costco https://vidalista.mlsmalta.com/

  9. #9

    hydroxychloroquine study https://hydroxychloroquine.webbfenix.com/

  10. #10

    ivermectin and covid 19 treatment https://ivermectin.mlsmalta.com/

  11. #11

    priligy 90 mg india https://ddapoxetine.com/

  12. #12

    does more vidalista work better https://vidalista40mg.mlsmalta.com/

  13. #13

    cialis no prescription https://tadalafili.com/

  14. #14

    does hydroxychloroquine help covid https://hhydroxychloroquine.com/

发表评论

电邮地址用于 Gravatar 头像显示,不会被公开可见。