前言:由于openstack框架的庞大,所以人工的源码安装基本只能适用于小规模的集群,而稍微上点规模的集群都是需要个安装工具的(只要你愿意,当然也可以源码安装。。。),fuel便是其中一员,但是尴尬的是,mirantis上面都找不到fuel9.0的相关文档了T_T,因为mirantis打算推自己的mcp,放弃fuel了,而mcp是什么呢?在k8s上面装openstack,虽然看起来更复杂了,但其实更"方便"了,这几乎也是一个趋势了。


正文

我所说的openstack生态指啥?恩,这个词又是我杜撰的。

如果只是搭一个openstack集群,其实很危险,特别是规模比较大的时候,因为靠手工的检查或者脚本的检查是很难感知整个openstack集群的状态的,所以要能时时刻刻感知到openstack集群的状态才算一个完整的生态。

怎么感知呢?

日志

  收集openstack节点的服务日志,由于排查,追溯错误。

性能指标

  发现openstack的性能瓶颈,或者定位问题。

监控报警

  用于及时响应openstack发现的错误,可以第一时间解决。



关于上述的感知,其实fuel已经提供了比较完善的插件了,所以不需要一项一项的配置,虽然fuel有点被放弃的意思,但是还是能够用的。。。。

无图无真相,感知效果如下

日志

fuel9.0离线安装openstack,一个完整的openstack生态_第1张图片

服务状态

fuel9.0离线安装openstack,一个完整的openstack生态_第2张图片

性能指标

fuel9.0离线安装openstack,一个完整的openstack生态_第3张图片

虚拟机性能指标

fuel9.0离线安装openstack,一个完整的openstack生态_第4张图片

nagios监控报警

fuel9.0离线安装openstack,一个完整的openstack生态_第5张图片

值得说明的是,还有zabbix的监控报警可以选择。




准备文件

iso文件: MirantisOpenStack-9.0.iso

离线源: fuel9.0-repo-0624.tar.gz

bootstrap镜像: bc3e3b14-0845-4804-b913-7405751765f2.tar.gz

下载链接:

http://pan.baidu.com/s/1nuEWwxb 密码:njr4



Lma插件:

下载链接: https://www.mirantis.com/software/openstack/fuel-plugins/

elasticsearch_kibana-0.10-0.10.2-1.noarch.rpm

influxdb_grafana-0.10-0.10.2-1.noarch.rpm      

lma_infrastructure_alerting-0.10-0.10.3-1.noarch.rpm


virtualbox安装

节点分配表


节点类型 内存 Cpu 网卡1 网卡2 网卡3 磁盘
(最低)
实际配置大小
Node1 Fuel 2 1 Pxe/Admin mgmt n/a 50GB 50GB
Node2 控制节点 4 1 Pxe/Admin mgmt Prv/stg/public 50GB 100GB
Node3 计算节点 2 1 Pxe/Admin mgmt Prv/stg/public 50GB 100GB
Node4 Lma节点 4 1 Pxe/Admin mgmt Prv/stg/public 120GB 300GB

网络环境准备

1.创建三个host-only网络


依次将其ip地址设置为10.20.0.1172.16.0.1192.168.0.1并取消dhcp,示例如下。

然后根据节点分配表,创建相应规格的虚拟机,并配置相应的网卡。

示意如下。


每个节点的第一块网卡中的混杂模式都设置为不允许,然后其他网卡设置成全允许,示例如下。


将准备的iso镜像文件挂在到fuel虚拟机。

注意:openstack节点的系统设置中的启动顺序里面要勾选网络


启动fuel

等待大概十五到二十分钟后fuel节点就会将fuel节点相关的服务安装完成,然后重启。

重启之后就会在启动后跳转到以下界面。



配置fuel menu

Fuel User

配置fuel的用户名密码,默认是admin/admin,根据实际需求更改。

Network Setup

配置相应网卡的ip地址。

eth0:

eth1:


Security Setup

fuelssh连接设置,默认只有pxe网段的ip能够ssh连接。

这里改成任意网段。


PXE Setup

可设置dhcp地址以及dhcp分配的ip地址范围。


DNS & Hostname

由于在内网,且没有内部dns服务器,所以不需要设置。

:这里dns可以设置成8.8.8.8或者留空。

Fuel的配置文件更改,可用fuel settings更改

[root@fuel ~]# fuel settings -h
usage: fuel settings [-h] --env ENV (--download | --default | --upload)
                     [--dir DIR] [--force]
 
optional arguments:
  -h, --help            show this help message and exit
  --env ENV, --env-id ENV
                        environment id
  --download, -d        Modify current configuration.
  --default             Open default configuration.
  --upload, -u          Save current changes in configuration.
  --dir DIR             Directory with configuration data.
  --force, -f           Force settings upload.
 
Examples:
 
To upload settings for some environment from some directory:
            fuel --env 1 settings --upload --dir path/to/directory
    
To download default settings for some environment in some directory:
            fuel --env 1 settings --default --dir path/to/directory
    
To download settings for some environment in this directory:
            fuel --env 1 settings --download


    

Bootstrap Image

选择 Skip building bootstrap p_w_picpath,后面会离线导入,再者内网没有网络连接,且软件源在国外,在线创建几乎不会成功。


Time Sync

ntp服务器指向fuel服务器的ip地址

注意:点击check的时候会失败,但是没关系。


Root Password

Fuel 服务器的root密码


后面Feature groups,Shell Login,Restore settings都不需要设置。

最后Quit Setup选择 Quit and Save



至此,fuel会根据上面的配置项配置fuel的安装环境。

根据虚拟机的硬件规格的不同,安装配置的时间不定,一个小时或者更长。

安装完成后,会提示以下页面

将准备的文件,除了iso镜像全部传入进去。


新建本地源(openstack软件包之类的):

[root@fuel ~]# mv fuel9.0-repo-0624.tar.gz /var/www/nailgun/
[root@fuel nailgun]# ls
bootstraps  centos  dump  error.html  extra-repos  fuel9.0-repo-0624.tar.gz  index.html  mitaka-9.0  mos-centos  targetp_w_picpaths  ubuntu
[root@fuel nailgun]# tar xf fuel9.0-repo-0624.tar.gz
[root@fuel nailgun]# ls
bootstraps  centos  dump  error.html  extra-repos  fuel9.0-repo-0624.tar.gz  index.html  mirrors  mitaka-9.0  mos-centos  targetp_w_picpaths  ubuntu


可以看到,多了一个mirros的文件夹。

执行fuel-createmirros命令。

:报错是正常的,因为fuel会试图去网上下载。


导入bootstrap镜像(Openstack节点的系统镜像)并激活:

[root@fuel ~]# fuel-bootstrap import bc3e3b14-0845-4804-b913-7405751765f2.tar.gz
Try extract bc3e3b14-0845-4804-b913-7405751765f2.tar.gz to /tmp/tmp5zDunq
Bootstrap p_w_picpath bc3e3b14-0845-4804-b913-7405751765f2 has been imported.
[root@fuel ~]# fuel-bootstrap list
+--------------------------------------+--------------------------------------+--------+
| uuid                                 | label                                | status |
+--------------------------------------+--------------------------------------+--------+
| bc3e3b14-0845-4804-b913-7405751765f2 | bc3e3b14-0845-4804-b913-7405751765f2 |        |
+--------------------------------------+--------------------------------------+--------+
[root@fuel ~]# fuel-bootstrap activate bc3e3b14-0845-4804-b913-7405751765f2
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 p_w_picpath bc3e3b14-0845-4804-b913-7405751765f2 has been activated.

注意:一定要激活。



安装插件

[root@fuel ~]# fuel plugins --install lma_infrastructure_alerting-0.10-0.10.3-1.noarch.rpm
[root@fuel ~]# fuel plugins --install elasticsearch_kibana-0.10-0.10.2-1.noarch.rpm
[root@fuel ~]# fuel plugins --install influxdb_grafana-0.10-0.10.2-1.noarch.rpm


列出已装插件

[root@fuel ~]# fuel plugins
id | name                        | version | package_version | releases                                     
---+-----------------------------+---------+-----------------+----------------------------------------------
1  | lma_infrastructure_alerting | 0.10.3  | 4.0.0           | ubuntu (liberty-8.0, liberty-9.0, mitaka-9.0)
2  | elasticsearch_kibana        | 0.10.2  | 4.0.0           | ubuntu (liberty-8.0, liberty-9.0, mitaka-9.0)
3  | influxdb_grafana            | 0.10.2  | 4.0.0           | ubuntu (liberty-8.0, liberty-9.0, mitaka-9.0)



Fuel web界面创建opens tack环境

点击 “新建openstack环境”

填入环境名,环境名不能重复


因为节点有限,所以选择lvm作为块存储。


然后依次启动各个openstack节点。

启动各个节点后,各个节点会通过pxe自动安装导入的bootstrap镜像,系统安装完成后,就在在fuel web页面看到节点加入的消息。


命令行下查看

[root@fuel ~]# fuel nodes
id | status   | name             | cluster | ip        | mac               | roles | pending_roles | online | group_id
---+----------+------------------+---------+-----------+-------------------+-------+---------------+--------+---------
 1 | discover | Untitled (9c:6b) |         | 10.20.0.3 | 08:00:27:50:9c:6b |       |               |      1 |         
 2 | discover | Untitled (c1:b4) |         | 10.20.0.4 | 08:00:27:0b:c1:b4 |       |               |      1 |         
 3 | discover | Untitled (d9:95) |         | 10.20.0.5 | 08:00:27:b5:d9:95 |       |               |      1 |

   

在添加节点之前

“设置”标签页面选择其他配置,将所装的插件,都启用并根据需要进行相关配置,如用户名密码,邮箱之类的。

效果如下

进入环境,添加节点,依次如下。


选择所有节点,配置网络接口


由于都只有一块磁盘,不用配置磁盘,不过也可以自定义各个部分的大小,fuel会自动的分配了。

示例如下。


deploy changes之前先进行网络验证。



最后点击Deploy Changes,当点击之后就是漫长的等待了。根据电脑的配置不同,一般两到三个小时不等。


安装完后的效果

fuel9.0离线安装openstack,一个完整的openstack生态_第6张图片


后记:

由于资源有限,失败乃兵家常事,再次deploy吧。。。。

或者检查一下是否真的配置有问题。



如果觉得不错,并有所收获,请我喝杯茶呗


fuel9.0离线安装openstack,一个完整的openstack生态_第7张图片fuel9.0离线安装openstack,一个完整的openstack生态_第8张图片