一、准备工作

准备一台物理机或者虚拟机:Ubuntu16.0.4

已经更新了aliyun的source

cpu支持虚拟化

关闭防火墙

二、安装步骤

2.1:下载opennebula repo源

wget -q -O- http://downloads.opennebula.org/repo/Debian/repo.key | apt-key add -

2.2:将下载的opennebula repo源存放到apt的source清单中

echo "deb http://downloads.opennebula.org/repo/5.2/Ubuntu/16.04 stable opennebula" > /etc/apt/sources.list.d/opennebula.list

2.3:更新系统

apt-get update

2.4:开始安装OpenNebula Node

sudo apt-get install opennebula-node

执行安装命令后,需要输入y表示同意给Node节点这些使用空间,然后安装继续

稍等片刻,基于网络可能会有少许的等待,等待出现下面的完成界面则说明OpenNebula Node节点安装成功

安装完成以后,就可以启动Node的节点服务了,Ubuntu中使用如下的命令

sudo service libvirt-bin restart

其他的系统可能会有所不同,这里给出官方文档的一些定义如下,如CenOS/RHEL

如果是Debian/Ubuntu则是下面的情况

三、在OpenNebula Front-end注册Node节点

截止目前,OpenNebula的Front-end和Node都已经安装成功了,我们知道Front-end里面集成了SunStone的服务,而且它有自己的管理界面,下面我们就来操作如何通过OpenNebula的图形化服务把Node节点添加进去

3.1:准备工作:打通Front-end和Node节点之间的SSH免密服务

这一点是必须的,官网也给出了解释

操作步骤如下:

(1):修改所有Front-end和Node节点主机的hosts,修改如下

(2):登录Front-end 主机,切换到oneadmin用户(su - oneadmin)执行ssh-keyscan命令搜集所有host主机的公钥

语法:       ssh-keyscan <frontend> <node1> <node2> <node3> ... >> /var/lib/one/.ssh/known_hosts

我的环境的话就是下面的命令:

ssh-keyscan KingServer3 KingServer4  >> /var/lib/one/.ssh/known_hosts

如下图所示,则表示成功获取到了命令行中所有主机的秘钥信息

查看/var/lib/one/.ssh 下已经生成了存放所有主机公钥的known_hosts文件

(3)接着把Front-end主机的.ssh文件夹copy到所有的node主机,这个操作官方文档也是有的,如下图所示

具体在KingServer操作如下:

root@KingServer3:/var/lib/one/.ssh# scp -rp /var/lib/one/.ssh KingServer4:/var/lib/one/

如果有多台node节点的机器比如 KingServer5也是 OpenNebula的一个Node几点则需要再次执行一次上面的命令到KingServer5

(5)最终实现切换到oneadmin用户下,所有主机之间可以免密SSH登录,如下图所示,中间的过程不需要密码

3.2:在OpenNebula Front-end把所有的Node节点添加进去

(1):添加集群

登录管理界面-集群-添加一个KingCluster集群(此步骤可省略-为了区分业务逻辑建议创建)

(2):添加Node节点

进入左侧菜单 点击主机+号进行添加主机(这里一定要填入主机的hostname,因为是靠主机名进行SSH通信的)

继续上面的操作把所有的Node节点都加进去,添加完成后如下图所示,添加主机后的几十秒主机的状态会发生变化,如果为启用(on)状态则说明添加正常

如果主机的状态显示为错误(err),官方也给出了说明,可以查看的日志如下图所示

If the host turns to err state instead of on, check the /var/log/one/oned.log. Chances are it’s a problem with
the SSH!

四、总结

1:所有的Front-end和Node节点都必须安装KVM,似乎OpenNebula Node节点以及包含了KVM了,Server端即Front-end端如果即作为服务节点也要作为客户端节点那么必须在Front端同时安装server和node即是:在服务节点就是Front-end这里也要执行sudo apt-get install opennebula-node

2:也可以通过命令行来执行相关命令,需要在Front-end主机上,如下图

如图,我的OpenNebula中主机的列表是:

截止到这里,成功安装OpenNebula Node 和把Node注册到OpenNebula Front-end中已经完成了

OpenNebula学习第二节OpenNebula Node Installation的更多相关文章

  1. OpenNebula学习第一节OpenNebula Front-end Installation

    一.说说情怀 随着公司硬件开发资源的不足,构建一个云平台似乎重要了起来.当然,也不是这个平台搭建的主力,出于工作的需求和个人兴趣爱好,接下来就来学习一下OpenNebula相关的东西,这是第一节课,先 ...

  2. VUE2.0实现购物车和地址选配功能学习第二节

    第二节 创建VUE实例 购物车项目计划: 1.创建一个vue实例 2.通过v-for指令渲染产品数据 3.使用filter对金额和图片进行格式化 4.使用v-on实现产品金额动态计算 5.综合演示 ① ...

  3. oracle的学习 第二节:创建数据表

    学习内容: A.创建数据库和表空间 B.创建用户和分配权限 C.创建数据表 一.创建数据库和表空间 (一)SQL语言的基本概念 1.概念 高级的结构化查询语言:沟通数据库服务器和客户的重要桥梁. PL ...

  4. Python学习第二节——基础知识

    # !/usr/bin/edv python    脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它.# -*- coding:UTF-8 -*-    标明编码注释 ...

  5. Netty学习第二节Java IO通信

    一.Java IO通信 名词解释: BIO通信:       采用BIO通信模型的服务端,通常由一个独立的Acceptor线程负责监听客户端连接,在接收到客户端请求后,为每一个客户端建立一个新的线程负 ...

  6. Coursera在线学习---第二节.Octave学习

    1)两个矩阵相乘 A*B 2)两个矩阵元素位相乘(A.B矩阵中对应位置的元素相乘) A.*B 3)矩阵A的元素进行平方 A.^2 4)向量或矩阵中的元素求倒数 1./V    或   1./A 5) ...

  7. python学习第二节 数据类型、字符编码、文件处理

    标准数据类型 Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Sets(集合) Dictionary(字典) 数字 #整型 ...

  8. Ant学习---第二节:Ant添加文件夹和文件夹集的使用

    一.创建 java 项目(Eclipse 中),结构图如下: 1.创建 .java 文件,代码如下: package com.learn.ant; public class HelloWorld { ...

  9. JPA学习---第二节:JPA开发环境和思想介绍

    一.下载相关 jar http://hibernate.org/orm/ 下载 hibernate ,解压 http://www.slf4j.org/download.html 下载 slf4j,解压 ...

随机推荐

  1. (转载)Spring 注解@Component,@Service,@Controller,@Repository

    Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository.@Service 和 @Controller.在目前的 Spring ...

  2. gitblit无法安装windows服务或者启动服务失败:Failed creating java

    gitblit解压后,命令行运行installService.cmd之前,需要修改里面的参数,将ARCH修改x86,默认是amd64,我的机器是windows 10 Pro 64位版本,jdk也都是6 ...

  3. Programming 2D Games 读书笔记(第六章)

      http://www.programming2dgames.com/chapter6.htm 示例一:Bounce 边界碰撞测试 velocity为移动的速度, 超过右边界,velocity.x为 ...

  4. linux socket talkclient talkserver示例

    cleint: #define _GNU_SOURCE 1 #include <sys/types.h> #include <sys/socket.h> #include &l ...

  5. [置顶] 九度笔记之 1494:Dota

    题目1494:Dota 1 秒 内存限制:128 兆 特殊判题:否 提交:559 解决:122 题目描述: 大家都知道在dota游戏中,装备是对于英雄来说十分重要的要素. 英雄们不仅可以购买单个的装备 ...

  6. Mustache.js语法

    看了Mustache的github,学学此中的语法,做个笔记 1.简单的变量调换:{{name}} 1 var data = { "name": "Willy" ...

  7. JavaScript进阶系列04,函数参数个数不确定情况下的解决方案

    本篇主要体验函数参数个数不确定情况下的一个解决方案.先来看一段使用函数作为参数进行计算的实例. var calculate = function(x, y, fn) { return fn(x, y) ...

  8. 咏南Mormot中间件接口

    咏南Mormot中间件接口 只使用了MORMOT的HTTPS.SYS作为通讯,数据引擎使用FIREDAC,数据序列/还原是自行封装. 客户端支持FDMemeTable和ClientDataSet数据集 ...

  9. [CALayer release]: message sent to deallocated instance

    遇到此问题时,查看以下类的dealloc方法中是否有过度释放. 可以在release前先判断以下对象是否还存在. -(void)dealloc { if (!m_tableView) [m_table ...

  10. C#编程(二十)----------静态类

    如果类只包含静态的方法和属性,该类就是静态的.静态类在功能上与使用私有静态构造函数创建的类相同.不能创建静态类的实例.使用关键字static关键字,编译器可以检查用户是否不经意间给类添加了实例成员.如 ...