成都网站建设设计

将想法与焦点和您一起共享

juno版OpenStack如何部署

这篇文章给大家分享的是有关juno版OpenStack如何部署的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

公司主营业务:网站设计制作、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出惠东免费做网站回馈大家。

安装前备注

官方推荐的各个节点的最低配置如下:

  • 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容量来给定磁盘空间。

由于本文采用的是虚拟机安装,可以先配置一个虚拟机的模版,把一些统一的修改方案做好,节省一些工作量,具体内容如下:

  1. 更改```

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```

  1. 安装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```

  1. 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```文件存在,则删除之。

  1. 重启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```文件存在,则删除之。

  1. 重启NTP服务:```

service ntp restart```

验证

  1. 在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 assoc

ind 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。

  1. 在其他节点上运行如下命令:

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。

  1. 安装数据库

# 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```

  1. 设置数据库安全参数

# 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如何部署”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


本文题目:juno版OpenStack如何部署
网站链接:http://chengdu.cdxwcx.cn/article/pgioci.html