Linux 下搭建由 Go 语言基于 KVM 虚拟化开发的私有云平台 Nano

文章
林里克斯

Nano 基于 KVM 技术,使用 Go 语言开发,简单易学的虚拟机管理软件,从 Web 管理门户、主机监控、镜像克隆到故障切换,功能完备,开箱即用,数分钟之内即可将您的服务器集群升级为云主机平台。

Linux 下搭建由 Go 语言基于 KVM 虚拟化开发的私有云平台 Nano


实验平台:CentOS Linux release 7.6.1810 (Core)

Nano Version:nano 1.2.0


搭建环境要求:

  • 支持虚拟化的X86服务器或者打开嵌套虚拟化 (Intel VT-x/AMD-v) 的虚拟机
  • 24G 内存 50GB 磁盘和一个网络设备
  • 操作系统安装完成并且网络就绪
  • FirewalldSelinux 服务正常运行
  • 如有 Raid/LV M请先完成配置,再进行 Nano 安装
  • 默认情况下 "/var/lib/libvirt/images" 路径存储云主机磁盘文件,"/opt/nano/core/data" 存储系统镜像文件,请为其保留足够空间

1.官网

https://nanos.cloud/

2.Wiki

https://nanocloud.readthedocs.io/projects/guide/zh_CN/latest/

3.下载目前最新版本安装包

$ wget https://nanos.cloud/files/nano_installer_1.3.0.tar.gz

3.解压

$ tar xf nano_installer_1.3.0.tar.gz 
$ cd nano_installer

4.安装

# ./installer 
Welcome to nano installer v1.2.0
0 : Core
1 : FrontEnd
2 : Cell
3 : All
4 : Update
5 : Forcibly Update
6 : Exit
Input index to select module to install, multi-modules split by ',' (like 2,3):
#0 只安装 Core 核心模块
#1 只安装 FrontEnd 前段模块
#2 只安装 Cell 模块
#3 安全所有模块
#4 更新
#5 强制更新
#6 退出当前脚本

4.1 选择安全全部模块

# ./installer 
Welcome to nano installer v1.2.0
0 : Core
1 : FrontEnd
2 : Cell
3 : All
4 : Update
5 : Forcibly Update
6 : Exit
Input index to select module to install, multi-modules split by ',' (like 2,3):         #输入 3 全部模块安装,0 只安装 Core,1 只安装 FrontEnd,2 只安装 Cell,
3
default route ready
firewalld service ready
Service Owner Name = 'root' (press enter to accept or input new value): jarbo           #输入启动用户
set user jarbo (uid: 1000), group jarbo (gid: 1000)
Group Domain Name = 'nano' (press enter to accept or input new value):               #默认即可
Group MultiCast Address = '224.0.0.226' (press enter to accept or input new value):     #通讯域标识,组播,使用默认
Group MultiCast Port = 5599 (press enter to accept or input new value):                 #通讯域标识端口,使用默认
cert 'cert/nano_ca.crt.pem', key 'cert/nano_ca.key.pem' already generated
cert install path '/opt/nano/cert' created
'cert/nano_ca.crt.pem' copied to '/opt/nano/cert/nano_ca.crt.pem'
'cert/nano_ca.key.pem' copied to '/opt/nano/cert/nano_ca.key.pem'
'/opt/nano/cert/nano_ca.crt.pem' copied to '/etc/pki/ca-trust/source/anchors/nano_ca.crt.pem'
'/etc/pki/ca-trust/source/anchors/nano_ca.crt.pem' updated
all access modified
3 modules will install...
installing cell dependency packages...
install pacakge fail: exit status 216, warning: rpms/cell/qemu-common-2.0.0-1.el7.6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
error: Failed dependencies:
    policycoreutils = 2.5-33.el7 is needed by policycoreutils-python-2.5-33.el7.x86_64      #这里这个依赖报错可以忽略

try installing from online reciprocity...
dependency packages installed
try link interface 'ens33' to bridge 'br0', input 'yes' to confirm:yes          #输入 yes,确认构建默认的桥接网络 br0; 如果已经有其他程序设置的br0,建议先手工删除,再安装Cell,否则可能会导致云主机网络连接不正常 。如果是以往Nano安装生成的br0则无影响,可以跳过
network manager stopped
network manager disabled
21 params loaded from '/etc/sysconfig/network-scripts/ifcfg-ens33'
interface scripts /etc/sysconfig/network-scripts/ifcfg-ens33 updated
bridge script /etc/sysconfig/network-scripts/ifcfg-ens33 generated
new bridge br0 created
link ens33 added to bridge br0
bridge br0 up
link ens33 up
···

5.启动服务

$ cd /opt/nano/core
$ ./core start
Core Module 1.3.1
service Core_000c29482880 listen at '10.10.12.4:5600'
group '224.0.0.226:5599', domain 'nano'
API address ':5850', image service '10.10.12.4:5801'
Image TLS Cert '/opt/nano/core/cert/nano_image.crt.pem', Key '/opt/nano/core/cert/nano_image.key.pem'
core started
#请注意,必须首先启动 Core 模块

$ cd ../cell
$ ./cell start
bridge br0 is ready
default route ready
No configures available, following instructions to generate a new one.
Group Domain Name = 'nano' (press enter to accept or input new value): 
Group MultiCast Address = '224.0.0.226' (press enter to accept or input new value): 
Group MultiCast Port = 5599 (press enter to accept or input new value): 
default configure '/opt/nano/cell/config/domain.cfg' generated
start cell fail: virError(Code=38, Domain=7, Message='Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory')
#此报错是因为 libvirtd 服务未启动

# systemctl start libvirtd

$ ./cell start
bridge br0 is ready
default route ready

Cell Modeul 1.3.1
service Cell_000c29482880 listen at '10.10.12.4:5602'
group '224.0.0.226:5599', domain 'nano'
cell started

$ cd ../frontend/
$ ./frontend start
data path /opt/nano/frontend/data created
Front-End Module 1.3.1
Core API: http://10.10.12.4:5850/api/v1
Nano Web Portal: http://10.10.12.4:5870

frontend started

6.模块启动控制

  • start: 启动模块,故障打印错误信息,成功则输出版本及必要信息
  • stop: 优雅停止模块,自动释放相关资源并通知相关模块
  • status: 检查模块是否在运行中
  • halt: 强制终止模块运行

二、使用介绍


1.浏览器直接访问即可 Nano Web Portal,一开始访问管理页面会让你初始化管理员账号密码,初始化完毕后即可登录管理页面

Linux 下搭建由 Go 语言基于 KVM 虚拟化开发的私有云平台 Nano

2.使用默认的资源池,添加资源节点即可创建主机

Linux 下搭建由 Go 语言基于 KVM 虚拟化开发的私有云平台 Nano

3.上传光盘映像 Linux

Linux 下搭建由 Go 语言基于 KVM 虚拟化开发的私有云平台 Nano

4.创建云主机

Linux 下搭建由 Go 语言基于 KVM 虚拟化开发的私有云平台 Nano

5.选择从光盘镜像启动云主机,选择上传的 Linux 映像

Linux 下搭建由 Go 语言基于 KVM 虚拟化开发的私有云平台 Nano

6.选择远程监控,开始安装系统

Linux 下搭建由 Go 语言基于 KVM 虚拟化开发的私有云平台 Nano

7.创建网络和系统安装省略,在开机前要弹出映像即可进入系统

Linux 下搭建由 Go 语言基于 KVM 虚拟化开发的私有云平台 Nano


Over~

版权协议须知!

本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意

1193 0 2021-01-01


分享:
icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif
博主卡片
林里克斯 博主大人
一个致力于Linux的运维平台
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。

现在时间 2024-04-27

今日天气
站点统计
  • 文章总数:240篇
  • 分类总数:29个
  • 评论总数:10条
  • 本站总访问量 216550 次

@奥奥

@Wong arrhenius 牛比

@MakerFace 厉害了!