一、 Nano软件介绍
1、简介
Nano基于KVM技术,使用Go语言开发,简单易学的虚拟机管理软件,从Web管理门户、主机监控、镜像克隆到故障切换,功能完备,开箱即用。Nano无需第三方软件或者依赖库即可执行,安装非常简单。官方网站: https://nanos.cloud/
2、快速安装指引
Nano平台提供了Installer安装程序用于自动化部署,以将所有模块部署在同一个服务器或者虚拟机,实现All In One的最小验证集群。
Installer会自行选择最合适的配置进行建议,对于初次安装Nano的新用户,安装过程中尽量不要调整任何参数,如需调整参数、修改配置或者直接升级二进制文件,请在熟悉产品后进行操作。
3、服务器要求
- 支持虚拟化的 X86 服务器或者打开嵌套虚拟化(Intel VT-x/AMD-v)的虚拟机
- CentOS 7 Minimal
- Firewalld 和 Selinux 服务正常运行
- 默认情况下”/var/lib/libvirt/images”路径存储云主机磁盘文件,”/opt/nano/core/data”
二、全新安装
1、 下载并安装所有模块
cd /opt
wget https://nanos.cloud/files/nano_installer_1.3.1.tar.gz
tar zxfv nano_installer_1.3.1.tar.gz
cd nano_installer
./installer
安装的时候会要求选择模块,一般情况选3(全部)安装,其它选项如果不清楚,全部按“回车” 保持默认 即可,通常在几分钟即可完整安装。


2、启动所有服务
模块安装完成后,需要启动模块以提供服务,模块默认安装在/opt/nano目录下,请注意,必须首先启动Core模块 。
cd /opt/nano/core
./core start
cd ../cell
./cell start
cd ../frontend
./frontend start
当front-end模块成功启动后,会提示一个形如”192.168.6.3:5870″的监听地址,使用Chrome或者Firefox打开这个地址就可以进行平台管理了。
3、使用Web门户管理平台
首次打开Nano管理页面,会提示创建一个初始管理员,成功后就可以登录平台。
登录系统之后,参考配置手册在计算资源池里添加资源节点之后,就可以开始创建云主机实例了。你也可以上传或者构建新的光盘镜像或者磁盘镜像,用于快速批量部署实例。

三、开机自启及添加 SSL证书
1、 Nano脚本管理与开机启动
每次都进入/opt/nano/core目录去管理Nano的3个服务,非常不方便,我们可以编写脚本来对Nano进行管理。
#下载管理脚本
wget -O /usr/sbin/nano https://raw.githubusercontent.com/helloxz/shell/master/nano.sh
chmod +x /usr/sbin/nano
如无法下载,可从github下载 https://github.com/helloxz/shell/blob/master/nano.sh
脚本添加后,可以使用下方的命令来快速管理Nano。
nano status /stop/start/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
#启动/停止/重启
systemctl start nano /stop/restart
#多余服务停用 systemctl disable dnsmasq systemctl disable postfix
2、安装 Nginx使用https访问
yum -y install nginx
1)配置nginx和ssl证书
将预先申请好的域名证书上传到/etc/nginx/conf.d目录
创建配置文件vi /etc/nginx/conf.d/default.conf,写入
server {
listen 8080;
server_name c.***.us;
return 307 https://c.***.us$request_uri;
# location / {
# root html;
# index index.html index.htm;
# }
}
#HTTPS server
server {
listen 443 ssl;
server_name c.huaxi.us;
ssl_certificate /etc/nginx/conf.d/c.huaxi.us.crt;
ssl_certificate_key /etc/nginx/conf.d/c.huaxi.us.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
gzip on;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/xml text/javascript application/json image/png image/gif image/jpeg;
location / {
#root html;
#index testssl.html index.html index.htm;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.25.171:5870/;
}
}
重启Nginx服务
systemctl restart nginx
systemctl enable nginx
2)使用firewalld放通80和443端口
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload //更新规则
systemctl enable firewalld //防火墙要开启
3) 报错处理
客户端访问时提示502错误,日志报Permission denied) while connecting to upstream
是因为SELinux的限制,但软件又必须使用,执行下面的命令:
setsebool -P httpd_can_network_connect 1
机器重启后cell服务无法自启,原因未知,编辑vi /etc/rc.d/rc.local ,增加:
/usr/sbin/nano restart
chmod +x /etc/rc.d/rc.local
reboot 重启服务器后,再nano status看看状态,各服务是否能自动重启。
四、 运用 Nano虚拟化系统
1、 添加计算资源节点


2、上传磁盘镜像
下载CentOS 7.5 Minimal with Cloud-init,上传后,即可开通主机:

3、定制自己的母盘镜像
可以根据官方镜像,或原版ISO镜像安装系统,制作自己喜欢的模板。