SoluVM目前是OnApp旗下的产品,不过2.0版已经难产多年,还在1.x缓慢更新…如果你使用过VPS,尤其是国外VPS的话大部分都是使用SolusVM面板来创建VPS,那么相应的教程和文档就会成熟完整一些。同时SolusVM对于财务系统例如WHMCS的对接非常简单方便,所以很多主机商都在使用。Proxmox也可以对接WHMCS,但是相关设置非常繁杂,一般也没什么主机商会使用这套系统。
SolusVM分为主控(Master)、被控(Slave)两套程序,如果你是KVM/Xen虚拟化需要分别安装在两台机器中,无法直接在一台已经安装了Xen或者KVM的Slave上安装Master,但是你可以在Slave上开的VM中安装Master,当然如果你有别的的空的机器还是建议分开(OVZ可以使用Master with OpenVZ来实现安装在一台机器上)。主控的售价为10美元/月,有30天免费试用,被控是2.5美元/月/终端。
无论是主控还是被控需要纯净系统才能安装成功,不要存在例如cPanel、BT等面板。
被控端一般都是独立服务器,最好是有救援系统、可以自定义分区的服务器,当然部分主机商在重装的时候可以自定义配置或者提交工单告诉他们你要的分区配置。本次我们以Sharktech独立服务器为例来设置。在没接触前以为会很难,实际程序安装步骤很简单,难点在于服务器环境配置上。尤其网络配置容易遇到问题,其它基本跟着教程走就可以运行起来。当然这还只是基础搭建范畴,如果想运营提供服务,还有很多问题要解決。
准备工作
准备两台服务器。其中 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 访问。
SolusVM 主控程序安装
下载运行 SolusVM 安装脚本,它会自动集成安装 Nginx、数据库、PHP 等工作组件。
wget https://files.soluslabs.com/install.sh sh install.sh
选择 1 仅安装 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 客户端 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"
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 主控端安装完成。登录进去绑定授权码,修改管理员账户密码,之后回来添加节点。
SolusVM KVM 管理程序安装
运行 SolusVM 安装脚本,选择 4 安装 KVM 管理程序,安装后复制保存 Key & Password 备用。
wget https://files.soluslabs.com/install.sh sh install.sh
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,可用 hostname 或 vgdisplay 命令查询。ID Key 和 ID Password 是之前安装 KVM 程序提示的字符串。
保存后会多出几个选项,点击回来完成设置。检查系统版本识别是否正确,设置网卡/网桥名称,网络端口速度,可开虚拟机数量,内存/硬盘最大用量等选项。
顺便编辑下 SolusVM 主控节点,勾选 Locked 禁用在此节点上创建虚拟机。
设置后回到 List Nodes 界面,点击添加的 KVM 服务器名称,进入点击 Internal Ipaddresses 选项。
修改内网缺省值(根据之前创建的 ifcfg-intbr0 配置文件填写),添加可用内网 IP 范围(不要添加 10.0.0.1 默认网关地址,从 10.0.0.2 开始)。
如果要为已开通的 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 也可以如法添加。
回到 List IP Blocks 界面,点击刚才添加 IP Blocks 右侧的 Manage IP’s 按钮,进去添加可用 IP 范围(网关地址那个不要添加,添加范围 56.56.56.2-30)。
获取 & 同步虚拟机系统模板
从 SolusVM 分发网络下载预构建 KVM 操作系统模板(还有一个单分区无 SWAP 系统模板可以选择),复制页面里的下载链接登录到主控服务器下载。
下载后回到控制面板操作,菜单栏点击 Media -> Media Groups 创建一个 KVM Template 组。
之后 Media -> Add KVM Template 依次添加已经下载的系统模板,勾选随机生成 root 密码和自动配置网络,其它选项按系统模板下载页面里的说明设置。
添加后会多出几个选项,建议点击回来查看。其中可以启用 CPU Model 选项使用 host-passthrough 模式,这样虚拟机可以看到宿主机的 CPU 型号,能提高指令兼容性和效率,而不是 QEMU 这种。
接下来 Media -> Media Sync 同步系统模板到节点服务器上。点击 Create 创建同步任务,选择系统模板和同步服务器,点击 Create Sync Job 提交。
在 Jobs 界面查看任务进度,变为下图状态就同步完成了。
添加不同配置的虚拟机产品
菜单栏点击 Plans -> Add KVM Plan,自定义虚拟机产品配置,选中可以使用的系统模板,完成添加。
添加用户账号
菜单栏 Client -> Add Client 添加一个测试用户账号。
开通虚拟机测试
菜单栏点击 Virtual Servers -> Add Virtual Server,点击 KVM,选择节点服务器和套餐。选择开通用户账号,设置主机名,分配 IP 和预装系统,点击创建虚拟机,之后显示虚拟机登录资料。
开通后等系统安装完成,大概10分钟左右吧。如无意外,SSH 连接上就可以开始使用了。
补充:开通虚拟机默认不分配内网 IP 。如有需要,可以按之前所说的步骤手动分配添加。
总结
上面文章为求详尽写的比较多。对新手而言,主要还是网络配置那块比较难,其它只要操作过程不遇到什么新问题,一般都能顺利部署好。如果想要熟悉 SolusVM 使用,建议花些时间看一遍官方文档,里面介绍的比较全面。
美国服务器促销
注意:Sharktech机房开启防欺诈系统,不要随意填写信息,或者使用代理登录,否则会被视为欺诈删单。
|
|
|