共计 2718 个字符,预计需要花费 7 分钟才能阅读完成。
本站提供 Linux 服务器运维,自动化脚本编写等服务,如有需要请联系博主微信:xiaozme
Nano 基于 KVM 技术,使用 Go 语言开发,简单易学的虚拟机管理软件,从 Web 管理门户、主机监控、镜像克隆到故障切换,功能完备,开箱即用。类似 noKvm、Proxmox VE 这类虚拟化管理平台,Nano 无需第三方软件或者依赖库即可执行,安装非常简单。
服务器要求
- 支持虚拟化的 X86 服务器或者打开嵌套虚拟化(Intel VT-x/AMD-v)的虚拟机
- 2 核 4G 内存 50GB 磁盘和一个网络设备
- CentOS 7.7(1908) Minimal
- 操作系统安装完成并且网络就绪
- Firewalld 服务启动并且正常运行
- 如有 Raid/LVM 请先完成配置,再进行 Nano 安装
安装 Nano
复制下面的命令进行安装
# 下载 Nano
wget https://nanos.cloud/files/nano_installer_1.2.0.tar.gz
#解压
tar zxfv nano_installer_1.2.0.tar.gz
#进入目录
cd nano_installer
#安装
./installer
安装的时候会要求选择模块,一般情况选 3(全部)安装,其它选项如果不清楚,全部保持默认即可,通常在几分钟即可完整安装。
运行 Nano
Nano 的相关文件位于 /opt/nano/
目录,需要进入该目录启动下面的服务:
cd /opt/nano/core
./core start
cd ../cell
./cell start
cd ../frontend
./frontend start
当 front-end 模块成功启动后,会提示一个形如 ”192.168.6.3:5870″ 的监听地址,使用 Chrome 或者 Firefox 打开这个地址就可以进行平台管理了, 首次打开 WEB 界面会要求设置账号、密码。
进入后 Nano WEB 管理界面后,看到的内容如下,界面还是挺美观的。
首次使用
设置计算资源池
在下图的位置设置资源节点,否则无法正常创建云主机。
地址池
在下图中设置地址池,否则无法自动为虚拟机分配 IP 地址,同时请确保这些地址在同一网络下是正常可用的,并非随意填写。
光盘镜像
系统镜像可以自行去官方先下载好,然后通过下方界面进行上传。xiaoz 使用 Edge (Chromium)上传镜像的时候,卡在 100%,原因不明。后来更换 Chrome 后就可以了,官方推荐使用 Chrome 或 Firefox 浏览器。
上传后的光盘镜像位于 /opt/nano/core/data/media_images
目录,目前还不支持直接在宿主机上 wget 下载,只能在线上传镜像,这点感觉不是特别方便。
创建云主机
上方条件准备完毕后即可创建云主机,按下图所示,先插入光盘镜像,然后启动系统,再进入控制台进行安装。
遇到的问题
xiaoz 安装 Windows Server 2019 后,发现从控制台进入,无法发送 Ctrl + Alt + Del
快捷键,解决办法是使用 VNC 客户端进行连接。
点击资源监控的时候浏览器提示内存不足,这个情况应该 Windows 虚拟机会出现此问题,解决办法是安装 virtio 驱动和 qeum agent,下载地址为:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.173-9/virtio-win.iso
,不然 nano 查看虚拟机资源监控会卡住。
Nano 脚本管理与开机启动
每次都进入 /opt/nano/core
目录去管理 Nano 的 3 个服务,非常不方便,我们可以编写脚本来对 Nano 进行管理。xiaoz 已经编写好了,可以直接下载使用:
# 下载管理脚本
wget -O /usr/sbin/nano https://raw.githubusercontent.com/helloxz/shell/master/nano.sh
#添加执行权限
chmod +x nano
脚本添加后,可以使用下方的命令来快速管理 Nano。
# 查看 nano 状态
nano status
#停止 nano
nano stop
#启动 nano
nano start
#重启 nano
nano restart
继续编写 systemd
服务,以便设置开机启动,新建一个 nano 服务文件vi /etc/systemd/system/nano.service
,内容如下:
[Unit]
Description=Nano - https://nanos.cloud/
After=network.target
[Service]
Type=forking
ExecStart=/usr/sbin/nano
ExecRestart=/usr/sbin/nano restart
ExecStop=/usr/sbin/nano stop
[Install]
WantedBy=multi-user.target
服务添加完毕后输入 systemctl daemon-reload
刷新刚刚添加的 nano 服务,然后就可以使用 systemctl
来进行管理了,命令如下:
# 设置 nano 开机启动
systemctl enable nano
#启动 nano
systemctl start nano
#停止 nano
systemctl stop nano
#重启 nano
systemctl restart nano
注意,此服务需要依赖于上方的 nano.sh
脚本,xiaoz 已放到 Github:https://github.com/helloxz/shell/blob/master/nano.sh
总结
Nano 使用 Golang 开发,无需第三方软件或者依赖库即可执行,安装非常简单,相比其它虚拟化管理平台,安装更简单而且不容易出错。xiaoz 目前仅用过 VMware、ESXI、Nano 这几个虚拟化软件,ESXI 必须使用镜像才能运行,而 Nano 只需要 CentOS 7 即可安装。有网友分享说 Nano 比 PVE 更加好用,好吧,我没用过 PVE,就无法做对比了。
Nano 也有一些不足,比如光盘镜像必须在线上传,如果您是国外的独立服务器,镜像比较大的情况下,简直是一个噩梦,而 ESXI 则可以直接在宿主机上 wget。另外安装 Windows 虚拟机后,WEB 控制台那里无法发送Ctrl + Alt + Del
,最后只好用 VNC 客户端操作。
Nano 使用 MIT 许可,无论自用、修改或者商用都无限制,Nano 能满足日常折腾需要,但感觉还不够成熟,如果是商用或者线上正式环境,请自行斟酌考虑。(xiaoz 继续踩坑中~)
此文部分内容参考了:
最后感谢“李子(106****406)”同学的热心帮助,避免 xiaoz 少踩了一些坑。