OpenStack安装之准备工作(基本的环境配置)
这节描述怎样配置每一个节点包括2节点的结构(legacy)和3节点的结构(neutron)
注意:
虽然大多数环境包括OpenStackidentifiy,image服务,compute,至少一个网络服务,和仪表板,OpenStack对象存储可以独立于大多数其他的服务。然而,仪表板将不能工作没有OpenStack image service和compute。
你必须使用具备管理员权限的账户来配置每个节点。可以使用root用户或者用sudo
开始之前:
我们推荐你的环境至少满足或者超过以下最小的需求(可以支持几个最小的cirros实例):
控制器节点:1处理器,2GB内存,5GB存储
网络节点:1处理器,512M内存,5GB存储
计算机节点:1处理器,2GB内存,10GB存储
为了最小化和提供足够的资源给OpenStack,我们推荐一个最小的安装包。也推荐你安装64位版本的(至少在compute节点上)。如果你安装一个32bit版本的,在尝试启动一个64位的image时将失败。
注意:
在一个节点的单个磁盘分区上进行基本的安装。针对安装带有其他可选服务的比如block storage建议考虑LVM。
大多数用户搭建他们的测试环境在虚拟机上。这样做的好处如下:
一个物理服务器可以支持多个节点,一个上可以分配多个网卡接口
可以及时定期快照,在处理事件时可及时rollback
然而VMs将降低你的实例的性能。
注意:如果你选择在VM上安装,你需要确认你的虚拟层允许混杂模式(在外部网络上)
网络
在每一个节点上安装操作系统以后,你必须配置网络接口。我们推荐你禁用所有的自动化的网络配置工具,且手工编辑相应的配置文件。
禁用NetworkManager和启用network服务
#service NetworkManager stop
#service network start
#chkconfig NetworkManager off
#chkconfig network on
RHEL和衍生物包括CentOS启用一个严格的防火墙(默认情况下)。如果不关闭防火墙安装将失败。
关闭防火墙和启用iptables
#service firewalld stop
#service iptables start
#chkconfig firewalld off
#chkconfig iptables on
OpenStack网络(neutron)
这个例子结构要求一个控制器节点,一个网络节点,至少一个计算节点。控制器节点包含一个网络接口(用于管理网络)。网络节点包含一个网络接口(用于管理网络),一个用于实例tunnel网络,一个用于外部网络。计算节点包含一个网络接口在管理网络一个用于实例tunnel网络。
控制器节点
配置网络接口
配置第一个接口为管理接口
Ip:10.0.0.11
网络掩码:255.255.255.0
网关10.0.0.1
配置名字解析
-
设置节点名为controller
-
编辑/etc/hosts文件包含以下内容:
10.0.0.11 controller
10.0.0.21 network
10.0.0.31 compute1
网络节点
配置网络接口
1、配置第一个接口为管理接口
Ip:10.0.0.21
网络掩码:255.255.255.0
网关10.0.0.1
2、配置第二个接口为实例tunnel接口
Ip:10.0.1.21
Mask:255.255.255.0
-
外部接口使用一个没有ip地址的配置。配置第三方的接口(作为外部的接口):
用实际接口名替代INTERFACE_NAME例如eth2或者ens256
编辑/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME文件包含如下:
不要改变HWADDR和UUID关键字
DEVICE=INTERFACE_NAME
TYPE=Ethernet
ONBOOT=”yes”
BOOTPROTO=”none”
-
启动networking
#service network restart
配置名字解析
-
设置节点名为network
-
编辑/etc/hosts文件包含以下内容:
10.0.0.11 controller
10.0.0.21 network
10.0.0.31 compute1
计算节点
配置网络接口
1、配置第一个接口为管理接口
Ip:10.0.0.31
网络掩码:255.255.255.0
网关10.0.0.1
注意:额外的计算节点应该使用10.0.0.32,10.0.0.33等等
2、配置第二个接口为实例tunnel接口
Ip:10.0.1.31
Mask:255.255.255.0
注意:额外的计算节点应该使用10.0.1.32,10.0.1.33等等
配置名字解析
-
设置节点名为network
-
编辑/etc/hosts文件包含以下内容:
10.0.0.11 controller
10.0.0.21 network
10.0.0.31 compute1
验证连接互ping
Legacy networking(nova-network)
Legacy networking(nova-network)需要一个控制器节点和至少一个计算节点。控制器节点包含一个网络接口在管理网络上。计算节点包含一个网络接口(管理网络)和一个在外部网络上。
每一个节点必须能够解析到其他节点名。例如controller必须解析为10.0.0.11(控制器节点的管理接口的IP地址)。
控制器节点
配置网络接口
配置第一个接口为管理接口
Ip:10.0.0.11
网络掩码:255.255.255.0
网关10.0.0.1
配置名字解析
-
设置节点名为controller
-
编辑/etc/hosts文件包含以下内容:
10.0.0.11 controller
10.0.0.31 compute1
计算节点
配置网络接口
1、配置第一个接口为管理接口
Ip:10.0.0.31
网络掩码:255.255.255.0
网关10.0.0.1
注意:额外的计算节点应该使用10.0.0.32,10.0.0.33等等
2、外部接口使用一个没有ip地址的配置。配置第三方的接口(作为外部的接口):
用实际接口名替代INTERFACE_NAME例如eth2或者ens256
编辑/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME文件包含如下:
不要改变HWADDR和UUID关键字
DEVICE=INTERFACE_NAME
TYPE=Ethernet
ONBOOT=”yes”
BOOTPROTO=”none”
3、启动networking
#service network restart
配置名字解析
-
设置节点名为network
-
编辑/etc/hosts文件包含以下内容:
10.0.0.11 controller
10.0.0.31 compute1
NTP(Network Time Protocol)
跨多个机器同步服务,你必须安装NTP。这个向导的例子配置控制器节点作为reference服务器和其他的额外的节点从控制器节点上获取时间并设置自己的时间。
在每台运行OpenStack服务的系统上安装ntp包:
#yuminstall ntp
设置NTP服务器(在你的控制器节点上),以便它接收数据(通过修改ntp.conf文件)和重启服务:
#servicentpd start
#chkconfigntpd on
安装ntp daemon,接着编辑/etc/ntp.conf文件,改变server指向控制器节点。
口令:
各种OpenStack服务要求软件数据库和消息服务器之间通信时需要有密码保护。当配置一个服务和接着访问服务时需要使用这些密码。你不得不选择一个密码(当配置服务)。也可以使用pwgen程序产生随机的密码。
#opensslrand –hex 10
这个向导使用SERVICE_PASS所设定过的密码去访问服务SERVICE和SERVICE_DBPASS是数据库口令(被服务SERVICE所使用)
数据库
大多数OpenStack服务需要一个数据库去存储信息。比如在控制器节点上运行一个MySQL数据库。你必须安装MySQL数据库在控制器节点上。你必须在其他的节点上安装MySQL python 库来访问MySQL.
控制器安装
在控制器节点上,安装MySQL客户端和服务器包以及Python库。
#yuminstall mysql mysql-server MySQL-python
修改MySQL配置使其与OpenStack协同工作。
编辑/etc/my.cnf文件
-
在【mysqld】部分,设置bind-address的值为控制器节点的管理ip确保其他节点通过管理网络访问。
如:
[mysqld]
….
bind-address = 10.0.0.11
-
在【mysqld】部分,设置以下值来启用InnoDB,UTF-8字符集等。
[mysqld]
…
Default-storage-engine = innodb
Innodb_file_per_table
Collation-server = utf8_general_ci
Init-connet = ‘SET NAMES utf8’
Character-set-server = utf8
启动MySQL数据库服务器,并设置其为当系统启动时自动启动。
#servicemysqld start
#chkconfigmysqld on
最后你应该设置一个root密码为你的mysql数据库(记下来)。OpenStack程序后期会跟你要此密码。
当数据库首次启动时,你需要删除匿名用户。否则数据库连接问题将发生(在后期部署过程中)。可已使用mysql_secure_installation命令进行操作。
注意:如果mysql_secure_instatllation失败时,你或许首先要执行mysql_install_db.
#mysql_install_db
#mysql_secure_installation
节点安装:
在控制器节点之外的所有的节点上安装MYSQL python library
#yuminstall MySQL-python
OpenStack包
OpenStack和包发布是彼此独立的。
这部分描述了你必须完成的配置(在你配置机器去安装最新版的OpenStack包后)
安装yum-plugin-priorities插件。这个包允许指派相对的优先级去配置软件的仓储。
#yuminstall yum-plugin-priorities
启用RDO仓储,下载和安装rdo-release-icehouse包:
#yuminstall http://repos.fedorapeople.org/repos/openstack/openstack-icehouse/rdo-release-iechouse-3.noarch.rpm
#yuminstall http://d1.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
OpenStack-utils包包括能使其安装和配置更加简单的工具。安装OpenStack工具。这验证你可以访问RDO repository
#yuminstall openstack-utils
在RHEL和CENTOS平台的安装过程中,需要配置SELINUX。
#yuminstall openstack-selinux
更新你的系统包
#yumupgrade
如果升级包括一个新的内核包,重启你的系统确保新的内核在运行:
#reboot
消息服务器
OpenStack使用一个消息代理去协同操作和状态信息交互。消息代理服务通常运行在控制器节点上。OpenStack支持集中消息代理包括RabbitMQ,Qpid,ZeroMQ.然而大多数分发包支持特别的消息代理。
安装消息代理服务
Redhat,centos,fedora使用Qpid
#yuminstall qpid-cpp-server
配置消息代理服务
为了简化你的测试环境,我们推荐你屏蔽认证
编辑/etc/qpidd.conf文件和修改以下值
auth=no
在生产环境中,你应该设置为yes。如果你决定启用认证的话,你必须配置qpid_username和qpid_password值(qpidd.conf配置文件)。
完成安装
启动消息代理服务,配置它为自启动:
#serviceqpidd start
#chkconfigqpidd on
恭喜,你现在已经准备好去安装OpenStack服务。