共计 9419 个字符,预计需要花费 24 分钟才能阅读完成。
这篇文章给大家分享的是有关 juno 版 OpenStack 如何部署的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。
安装前备注
官方推荐的各个节点的最低配置如下:
Controller Node: 1 processor, 2 GB memory, and 5 GB storage
Network Node: 1 processor, 512 MB memory, and 5 GB storage
Compute Node: 1 processor, 2 GB memory, and 10 GB storage
实际操作发现,以 Ubuntu14.04LTS 虚拟机为例,controller 节点按 8G 存储空间设置后到后期仍然会出现磁盘空间不足的情况,所以推荐按 12G 容量来给定磁盘空间。
由于本文采用的是虚拟机安装,可以先配置一个虚拟机的模版,把一些统一的修改方案做好,节省一些工作量,具体内容如下:
更改 “`
vi /etc/hosts“` 文件,添加如下代码:
10.10.10.10 controller
10.10.10.11 compute
10.10.10.12 network
10.10.10.13 block
10.10.10.14 object1
10.10.10.15 object2```
2. 安装最新的 OpenStack 发布包,执行如下命令:安装 Ubuntu Cloud archive keyring 和 repository
apt-get install ubuntu-cloud-keyring“`;
# echo deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/juno main /etc/apt/sources.list.d/cloudarchive-juno.list```
更新所有安装包
apt-get update apt-get dist-upgrade“`
安装 NTP
# apt-get install ntp```
# 网络配置
![网络基本架构图](https://wt-prj.oss.aliyuncs.com/d73bb2b1eddf48eeb64933373734de51/d0522985-0bea-402e-83f9-1306bdd988ac.png)
上图为本文所用的基本网络架构图,由于之前试验使用官方文档的网络 IP 配置会导致连接不上外网(具体原因不明,个人感觉是因为 IP 的网段和使用虚拟机的主机的网段处于同一网段中而冲突,后用 Ubuntu server 版测试,还是网关问题,注释掉设置文件中 eth0 的网关后即可以联网),故 IP 的设定参考 [OPENSTACK JUNO: INSTALLATION USING VIRTUALBOX UBUNTU 14.10 ( BASIC ENVIRONMENT ) - 1](http://chaalpritam.blogspot.jp/2015/03/openstack-juno-installation-basic-environment.html) 文章中的 IP 设定,下文将详细给出。具体 IP 配置方案如下:| 网络 | 使用的网段 |
|:-----:|:------------:|
| The management network | 10.10.10.1 |
| The tunnel network | 10.20.20.1 |
| The external network | 192.168.100.1 |
management network 里各个节点的 IP 设定如下:| 节点 | 使用 IP |
|:-----:|:-------:|
| controller | 10.10.10.10 |
| compute | 10.10.10.11 |
| network | 10.10.10.12 |
| block | 10.10.10.13 |
| object1 | 10.10.10.14 |
| object2 | 10.10.10.15 |
在进行各个节点具体操作之前,先设定虚拟机网络的虚拟网络,进入 VirtualBox- 全局设定 - 网络 - 仅主机 (Host-Only) 网络:1. 添加网络 VirtualBox Host-Only Ethernet Adapter #2,主机虚拟网络界面中设置 IPv4 地址为 10.10.10.1,IPv4 网络掩码为 255.255.255.0,DHCP 服务器选项不启用;2. 添加网络 VirtualBox Host-Only Ethernet Adapter #3,主机虚拟网络界面中设置 IPv4 地址为 10.20.20.1,IPv4 网络掩码为 255.255.255.0,DHCP 服务器选项不启用;3. 添加网络 VirtualBox Host-Only Ethernet Adapter #4,主机虚拟网络界面中设置 IPv4 地址为 192.168.100.1,IPv4 网络掩码为 255.255.255.0,DHCP 服务器选项不启用;## controller 节点上的网络配置
controller 节点虚拟机网络设置,设置 - 网络:1. 网卡 1,连接方式 - 仅主机 (Host-Only) 适配器,界面名称 - VirtualBox Host-Only Ethernet Adapter #2,控制芯片 - 准虚拟化网络(virtio-net),混杂模式 - 全部允许,接入网线 - 勾选;2. 网卡 2,连接方式 - 网络地址转换(NAT),控制芯片 - 准虚拟化网络(virtio-net),接入网线 - 勾选。启动虚拟机后,配置其网络,通过更改 ```
# vi /etc/network/interfaces``` 文件,添加如下代码:
The management network interface
auto eth0 iface eth0 inet static address 10.10.10.10 netmask 255.255.255.0
The NAT network
auto eth2 iface eth2 inet dhcp“`
配置命名的解决方案,更改 “`
vi /etc/hostname 文件,将主机名改为 controller,更改 vi /etc/hosts“` 文件,添加以下代码:
10.10.10.10 controller
10.10.10.11 compute
10.10.10.12 network
10.10.10.13 block
10.10.10.14 object1
10.10.10.15 object2```
之后重启系统激活配置。## compute 节点上的网络配置
compute 节点虚拟机网络设置,设置 - 网络:1. 网卡 1,连接方式 - 仅主机 (Host-Only) 适配器,界面名称 - VirtualBox Host-Only Ethernet Adapter #2,控制芯片 - 准虚拟化网络(virtio-net),混杂模式 - 全部允许,接入网线 - 勾选;2. 网卡 2,连接方式 - 仅主机 (Host-Only) 适配器,界面名称 - VirtualBox Host-Only Ethernet Adapter #3,控制芯片 - 准虚拟化网络(virtio-net),混杂模式 - 全部允许,接入网线 - 勾选;3. 网卡 3,连接方式 - 网络地址转换(NAT),控制芯片 - 准虚拟化网络(virtio-net),接入网线 - 勾选。启动虚拟机后,配置其网络,通过更改 ```
# vi /etc/network/interfaces``` 文件,添加如下代码:
The management network interface
auto eth0 iface eth0 inet static address 10.10.10.11 netmask 255.255.255.0
The tunnel network interface
auto eth2 iface eth2 inet static address 10.20.20.11 netmask 255.255.255.0
The NAT network
auto eth3 iface eth3 inet dhcp“`
配置命名的解决方案,更改 “`
vi /etc/hostname 文件,将主机名改为 compute,更改 vi /etc/hosts“` 文件,添加以下代码:
10.10.10.10 controller
10.10.10.11 compute
10.10.10.12 network
10.10.10.13 block
10.10.10.14 object1
10.10.10.15 object2```
之后重启系统激活配置。## network 节点上的网络配置
network 节点虚拟机网络设置,设置 - 网络:1. 网卡 1,连接方式 - 仅主机 (Host-Only) 适配器,界面名称 - VirtualBox Host-Only Ethernet Adapter #2,控制芯片 - 准虚拟化网络(virtio-net),混杂模式 - 全部允许,接入网线 - 勾选;2. 网卡 2,连接方式 - 仅主机 (Host-Only) 适配器,界面名称 - VirtualBox Host-Only Ethernet Adapter #3,控制芯片 - 准虚拟化网络(virtio-net),混杂模式 - 全部允许,接入网线 - 勾选;3. 网卡 3,连接方式 - 仅主机 (Host-Only) 适配器,界面名称 - VirtualBox Host-Only Ethernet Adapter #4,控制芯片 - 准虚拟化网络(virtio-net),混杂模式 - 全部允许,接入网线 - 勾选;4. 网卡 4,连接方式 - 网络地址转换(NAT),控制芯片 - 准虚拟化网络(virtio-net),接入网线 - 勾选。启动虚拟机后,配置其网络,通过更改 ```
# vi /etc/network/interfaces``` 文件,添加如下代码:
The management network interface
auto eth0 iface eth0 inet static address 10.10.10.12 netmask 255.255.255.0
The tunnel network interface
auto eth2 iface eth2 inet static address 10.20.20.12 netmask 255.255.255.0
The external network interface
auto eth3 iface eth3 inet manual up ip link set dev $IFACE up down ip link set dev $IFACE down
The NAT network
auto eth4 iface eth4 inet dhcp“`
配置命名的解决方案,更改 “`
vi /etc/hostname 文件,将主机名改为 network,更改 vi /etc/hosts“` 文件,添加以下代码:
10.10.10.10 controller
10.10.10.11 compute
10.10.10.12 network
10.10.10.13 block
10.10.10.14 object1
10.10.10.15 object2```
之后重启系统激活配置。## 验证节点之间的连通性
各个节点之间能相互 ping 通,能 ping 外网,以 controller 节点为例:1. ping 外网
$ ping -c 4 www.baidu.com PING www.a.shifen.com (14.215.177.37) 56(84) bytes of data. 64 bytes from 14.215.177.37: icmp_seq=1 ttl=54 time=6.16 ms 64 bytes from 14.215.177.37: icmp_seq=2 ttl=54 time=6.42 ms 64 bytes from 14.215.177.37: icmp_seq=3 ttl=54 time=6.12 ms 64 bytes from 14.215.177.37: icmp_seq=4 ttl=54 time=5.84 ms
— www.a.shifen.com ping statistics — 4 packets transmitted, 4 received, 0% packet loss, time 3005ms rtt min/avg/max/mdev = 5.841/6.140/6.429/0.229 ms“`
ping compute 节点
$ ping -c 4 compute
PING compute (10.10.10.11) 56(84) bytes of data.
64 bytes from compute (10.10.10.11): icmp_seq=1 ttl=64 time=1.35 ms
64 bytes from compute (10.10.10.11): icmp_seq=2 ttl=64 time=0.936 ms
64 bytes from compute (10.10.10.11): icmp_seq=3 ttl=64 time=0.843 ms
64 bytes from compute (10.10.10.11): icmp_seq=4 ttl=64 time=1.09 ms
--- compute ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 0.843/1.055/1.352/0.194 ms```
3. ping network 节点
$ ping -c 4 network PING network (10.10.10.12) 56(84) bytes of data. 64 bytes from network (10.10.10.12): icmp_seq=1 ttl=64 time=0.975 ms 64 bytes from network (10.10.10.12): icmp_seq=2 ttl=64 time=0.530 ms 64 bytes from network (10.10.10.12): icmp_seq=3 ttl=64 time=1.05 ms 64 bytes from network (10.10.10.12): icmp_seq=4 ttl=64 time=0.815 ms
— network ping statistics — 4 packets transmitted, 4 received, 0% packet loss, time 3003ms rtt min/avg/max/mdev = 0.530/0.844/1.056/0.200 ms“`
Network Time Protocol(NTP)
NTP 是用来同步各个节点之间的服务(service)的,推荐让 controller 节点参照一些更精确的服务器来同步,而其他节点参照 controller 节点来同步。(We recommend that you configure the controller node to reference more accurate (lower stratum) servers and other nodes to reference the controller node.)
controller 节点上 NTP 的配置
安装 NTP
# apt-get install ntp```
配置 NTP
1. 修改配置文件 ```
# vi /etc/ntp.conf```,添加如下代码:
server NTP_SERVER iburst restrict -4 default kod notrap nomodify restrict -6 default kod notrap nomodify NTP_SERVER 这里被代替为 controller,也可设置为其他主机名或服务器,在配置文件中其他参照的 server 不需要使用的话也可以注释掉,restrict 选项中移除 nopeer 和 noquery 选项。如果 /var/lib/ntp/ntp.conf.dhcp“` 文件存在,则删除之。
重启 NTP 服务:“`
service ntp restart“` 其他节点上 NTP 的配置
安装 NTP
# apt-get install ntp```
配置 NTP
1. 修改配置文件 ```
# vi /etc/ntp.conf```,添加如下代码:
server controller iburst 其他 server 全部都注释掉。如果 /var/lib/ntp/ntp.conf.dhcp“` 文件存在,则删除之。
重启 NTP 服务:“`
service ntp restart“` 验证
在 controller 节点上运行如下命令:
# ntpq -c peers
remote refid st t when poll reach delay offset jitter
==============================================================================
localhost .STEP. 16 l - 64 0 0.000 0.000 0.000
91.189.89.199 193.79.237.14 2 u 67 64 16 273.049 -69.706 53.406```
remote 这栏中能看到主机名或者多个 NTP 服务器的 IP 地址。2. 在 controller 节点上运行如下命令:
ntpq -c assocind assid status conf reach auth condition last_event cnt
1 21224 8011 yes no none reject mobilize 1 2 21225 965a yes yes none sys.peer sys_peer 5“` condition 这栏中至少有一个 server 含有 sys.peer。
在其他节点上运行如下命令:
ntpq -c peers
remote refid st t when poll reach delay offset jitter
==============================================================================
controller 91.189.89.199 3 u 23 64 0 0.000 0.000 0.000```
remote 这栏中显示 controller 节点的主机名。4. 在其他节点上运行如下命令:
ntpq -c assoc ind assid status conf reach auth condition last_event cnt
1 57512 9024 yes yes none reject reachable 2“` 这里 condition 栏按照官方文档应该是 sys.peer,这里显示为 reject 不知道原因为何,参考以下两篇文章,其也显示为 reject,OpenStack 入门教程 -Part2- 配置 OpenStack 实验环境,openstack【Kilo】入门【准备篇】二:NTP 安装。
OpenStack 安装包
方法如本文开头备注所写。
数据库配置
数据库一般都安装在 controller 节点上,本文采用 MySQL。
安装数据库
# apt-get install mariadb-server python-mysqldb```
在安装过程中会要求创建和输入 root 帐号的密码。2. 修改数据库的配置文件,```
# vi /etc/mysql/my.cnf```:[mysqld]``` 部分,把 ```
bind-address``` 对应的 IP 地址替换为 controller 的 management 网络的接口 IP。
[mysqld] … bind-address = 10.10.10.10 继续在 [mysqld]“` 部分添加如下代码:
[mysqld]
...
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
character-set-server = utf8```
3. 重启数据库服务:
service mysql restart“`
设置数据库安全参数
# mysql_secure_installation```
在设置的步骤中,可以不用重置 root 密码,其他按提示设置即可。# 消息服务(Messaging server)本文选用 RabbitMQ 作为消息队列服务器。安装 RabbitMQ:
apt-get install rabbitmq-server“`
安装过程中 RabbitMQ 会自动创造一个名为 guest 的账户,密码也为 guest。为了方便,在本文中使用 guest 这个账户,可以使用以下命令修改密码,将其中 RABBIT_PASS 替换为合适的密码:
# rabbitmqctl change_password guest RABBIT_PASS
Changing password for user guest ...
...done.```
对于 3.3.0 以上版本的,需要开启远程访问,具体操作如下:检查 RabbitMQ 版本
rabbitmqctl status | grep rabbit
Status of node rabbit@controller … {running_applications,[{rabbit, RabbitMQ , 3.4.2},“`
检查 /etc/rabbitmq/rabbitmq.config 文件,确保 loopback_users 对应空列表
[{rabbit, [{loopback_users, []}]}].```
如果文件不存在则新建一个,将上述代码写入其中。重启服务
service rabbitmq-server restart“`
至此,OpenStack 的基础环境配置完成。
安装时出现的问题及解决方法
安装 OpenStack 的 repository 时,使用 sudo 安装的话,到最后会有几个文件因为权限问题装不了,需转成 root 用户才能完整安装。
在配置虚拟机网络时,虚拟网卡最后选用用 virtio-net,否则会遇到设置好网络后无法连接外网的情况。还有就是如果在网络配置文件 /etc/network/interfaces 中,设置了内网网络的网关也会导致不能连接外网。
RabbitMQ 版本即使没有高于 3.3.0,最好也还是将 /etc/rabbitmq/rabbitmq.config 文件按高于 3.3.0 版本的要求设置好,不然在以后 neturon 安装过程中可能会出现,安装完成后输入 “`
neutron agent-list“` 命令后显示为空的情况。
感谢各位的阅读!关于“juno 版 OpenStack 如何部署”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!