Fuel
1. fuel简介
fuel是Mirantis公司提供的一款开源的自动化安装部署OpenStack的工具。为OpenStack相关的社区项目和插件的部署和管理提供了一种直观的GUI驱动体验。
Fuel带来了消费者级的简单,以简化和加快耗时、往往复杂容易出错的过程部署以及测试和维护各种配置风格的OpenStack的规模。与其他特定于平台的部署或管理工具不同,FUSE是一个上游OpenStack项目,专注于OpenStack和一系列第三方选项的自动化部署和测试,因此它不会受到硬捆绑或供应商锁定的影响。
2013年,该安装程序在戴尔(C 6220&R 320)、惠普(DL 380)、超级微(6027 TR-HTRF)、联想ThinkServer(RD 530)和思科UCS-C等平台上进行了多次部署测试。
主要特点:
硬件发现
UI中的硬件配置(网络和磁盘分区)
能够拆分和管理多个OpenStack集群
支持非HA和HA OpenStack部署配置
部署前检查和网络验证
部署后检查和运行一组测试以验证已部署的OpenStack。
通过ui实时查看日志
对CentOS和Ubuntu的支持,它也可以扩展到支持其他发行版。
支持多个OpenStack发行版
Fuel结构
Fuel不是单一的。它由几个独立的组成部分组成。其中一些组件是燃料专用组件,而另一些组件是第三方服务,如Cobler、Puppet、M8.4等。一些组件可以与燃料分开使用,无需任何修改,有些将需要很少的调整。
UI是用JavaScript编写的单页应用程序。它在底层使用引导和主干框架。检查视频它演示了4.0版燃料的UI和基本功能(这是Mirantis发行版,它仅与Mirantis徽标不同)。
Nailgun是燃料项目的核心。像其他OpenStack项目一样,Nailgun是用Python编程语言编写的。它实现了RESTAPI以及部署数据管理。它管理磁盘卷、配置数据、网络配置数据和任何其他特定于环境的数据,这些数据是成功部署所必需的。它需要编制逻辑来构建按正确顺序提供和部署的指令。Nailgun使用SQL数据库存储其数据,并使用AMQP服务与工人进行交互。Fuel CLI提供比UI更可能的操作。
Astute 是它的另一个重要组成部分是代表Nailgun的工人,其功能是根据Nailgun提供的指令执行某些操作。事实上,Astute只不过是一个层,它封装了与各种服务(如Cobler、Puppet、shell脚本等)交互的所有细节,并为这些服务提供了通用的异步接口。根据我们需要做的事情,我们可以直接通过服务的本机协议来管理服务(例如,XMLRPC协议是用于Cobler的),或者我们可以使用MgroupAgent来执行特定的任务,比如在远程节点上启动“傀儡应用”或运行脚本。通过AMQP精明地与Nailgun交换数据。
Cobbler目前用作供应服务。现在有一个POC可以使用讽刺的方式,并且正在实施一个生产版本。
Puppet是目前唯一的部署服务。可以创建MCollection代理来管理其他配置管理框架,如Chef、SaltStack等。
MCollective agents允许我们执行特定的任务,如硬盘清除,网络连接探测等。
OSTF (OpenStack Testing Framework, or Health Check) 是一个单独的组件,无需fuel就可以轻松地删除和重用。它实现了OpenStack的部署后验证。它的主要目标是验证最大的功能,花费最少的时间。
安装 fuel openstack
Fuel9.0将会搭载Openstack_Mitaka 版本,这个版本是2016年出的最新版本。Fuel在早先的版本中已经去掉了利用Centos来搭建Openstack的环境;在9.0中只使用Ubuntu和Ubuntu + UCA的部署方式。
2. 利用Oracle VM VirtualBox部署安装fuel
fuel部署OpenStack是需要先有个master节点,再通过master节点来部署OpenStack的控制节点和计算节点等,同时各节点需要部署mon和osd进行ceph存储。
fuel-master是通过pxe的网络来部署各节点的。fuel-master通过pxe实现自动网络装机,将三个节点装上操作系统,一次三个节点只需准备机器,不需要安装操作系统。
利用Oracle VM VirtualBox部署安装的fuel-master操作系统版本为centos7.2,每个操作节点的操作系统为ubantu14.04版本。部署的OpenStack为M版,fuel版本为fuel9.0或者fuel9.2。
2.1 安装fuel节点
1> 打开virtualbox,新建虚拟机
分配内存,为了使能够顺利安装,先将master节点内存给大点
创建新的硬盘,选择默认的硬盘文件类型,动态分配物理硬盘存储。指定虚拟机存放位置和磁盘大小
2> 设定virtualbox网络环境
打开管理→全局设置→网络,选择仅主机模式,点击加号添加网络
3> 给每个网卡配置网段
网络创建成功后,在windows网络线查看创建的网络,确认创建成功
网段规划:
网卡名称 |
IP地址 |
描述 |
adapter2 |
10.20.0.1/24 |
PXE网络 |
adapter3 |
192.168.10.1/24 |
管理网络 |
adapter4 |
192.168.20.1/24 |
存储网络 |
adapter5 |
192.168.30.1/24 |
私有网络 |
adapter6 |
172.168.0.1/24 |
外部网络 |
SSH+PXE网络:用来通过ssh连接到controller node、compute node操作管理物理服务器,自动部署网络;
外部网络:controller每个节点需要一个外网IP地址,该网络还用于虚拟机外部网络访问(例如:float网络);
管理网络:管理网络OpenStack api网络;
存储网络:机访问ceph的网络;
私有网络:租户网络(vm网络)。
双击新建的网络,进行网卡设置。每个网络设置都必须关掉DHCP,不让自动获取网络,adapter2必须设置成10.20.0网段,因为pxe网络在进行部署时该软件默认配置DHCP用的是该网段。
其他网卡类似。
4> 安装fuel节点
选择新创建的虚拟机,点击设置→启动顺序,勾选掉软驱,利用光驱启动
点击存储→盘片,选择准备好的光盘文件
点击网络,选择一块网卡,选择第二块部署网络的网卡;控制芯片选择倒数第二个,混杂模式(允许多个VLAN通过)选择拒绝。
点击启动,开始安装fuel-master节点
漫长的安装过程
进入如下界面
fuel网卡配置
设置允许ssh的网段,允许所有的网段
设置pxe地址池,可以自定义,默认DHCP池从10.20.0.3~10.20.0.254
配置DNS,外网DNS设置为8.8.8.8
选择Bootstrap Image为Skip building bootstrap image(使用本地的镜像),否则会报错(无法访问谷歌)
设置ntp服务器地址,一般选择fuelmaster节点自己
保存退出
注意:如果安装过程中没有出现上面设置界面输入fuelmenu命令,进入配置。
配置完成选择
Quit setup > Save and Quit
继续等待半个小时左右提示安装ok即可。UI界面用户和密码均为admin。
安装完成后亦可以使用xshell等远程连接工具进行连接。
5> 在浏览器输入fuel-master的地址进行登录访问,用户密码均为admin,
\
3. 部署本地源
直接下载会跑到外网去下载,因此需要配置本地源。
1> 上传文件bootstraps和mirrors,并移动到目录/var/www/nailgun/
[root@fuel ~]# ls ... bootstraps mirrors [root@fuel ~]# cd /var/www/nailgun/ [root@fuel nailgun]# ls bootstraps dump extra-repos mitaka-9.0 targetimages centos error.html index.html mos-centos ubuntu [root@fuel nailgun]# mv bootstraps bootstraps.bak [root@fuel nailgun]# cd [root@fuel ~]# mv bootstraps /var/www/nailgun/ [root@fuel ~]# mv mirrors /var/www/nailgun/ [root@fuel nailgun]# cd bootstraps [root@fuel bootstraps]# ls active_bootstrap bootstrap_stub d01c72e6-83f4-4a19-bb86-6085e40416e6 [root@fuel bootstraps]# mv active_bootstrap active_bootstrap.bak [root@fuel bootstraps]# cd d01c72e6-83f4-4a19-bb86-6085e40416e6/ [root@fuel d01c72e6-83f4-4a19-bb86-6085e40416e6]# ln -s /var/www/nailgun/bootstraps/d01c72e6-83f4-4a19-bb86-6085e40416e6/ /var/www/nailgun/bootstraps/active_bootstrap #添加链接 [root@fuel d01c72e6-83f4-4a19-bb86-6085e40416e6]# cd - [root@fuel bootstraps]# ll lrwxrwxrwx 1 root root 65 Jul 10 06:05 active_bootstrap -> /var/www/nailgun/bootstraps/d01c72e6-83f4-4a19-bb86-6085e40416e6/ .....
2> 创建本地镜像
[root@fuel ~]# fuel-createmirror URLError: <urlopen error [Errno -2] Name or service not known> <urlopen error [Errno -2] Name or service not known> Starting new HTTP connection (1): 10.20.0.2 Starting new HTTP connection (1): 10.20.0.2 Starting new HTTP connection (1): 10.20.0.2 Starting new HTTP connection (1): 10.20.0.2 Updating the Cluster repositories... Updating the release repositories... Try to update the Release 'Mitaka on Ubuntu 14.04' Try to update the Release 'Mitaka on Ubuntu+UCA 14.04' Operations have been completed successfully.
3> 将bootstrap后查看fuel-bootstrap
[root@fuel ~]# fuel-bootstrap list
+--------------------------------------+--------------------------------------+--------+
| uuid | label | status |
+--------------------------------------+--------------------------------------+--------+
| d01c72e6-83f4-4a19-bb86-6085e40416e6 | d01c72e6-83f4-4a19-bb86-6085e40416e6 | active |
+--------------------------------------+--------------------------------------+--------+
4> 激活bootstrap
[root@fuel ~]# fuel-bootstrap activate d01c72e6-83f4-4a19-bb86-6085e40416e6 Starting new HTTP connection (1): 10.20.0.2 Starting new HTTP connection (1): 10.20.0.2 Starting new HTTP connection (1): 10.20.0.2 Starting new HTTP connection (1): 10.20.0.2 Bootstrap image d01c72e6-83f4-4a19-bb86-6085e40416e6 has been activated.
5> 验证bootstrap
[root@fuel ~]# fuel-bootstrap list
+--------------------------------------+--------------------------------------+--------+
| uuid | label | status |
+--------------------------------------+--------------------------------------+--------+
| d01c72e6-83f4-4a19-bb86-6085e40416e6 | d01c72e6-83f4-4a19-bb86-6085e40416e6 | active |
+--------------------------------------+--------------------------------------+--------+
激活完成后部署节点已完成部署,可以打开UI界面创建OpenStack项目了。