您的位置:首页 > 运维架构

Openstack 安装部署指南翻译系列 之 环境配置

2017-11-13 10:42 567 查看

1.1.1. 环境配置

为了最大限度地减少混乱并为OpenStack提供更多资源,建议最少安装Linux发行版。此外,必须在每个节点上安装64位版本的发行版。环境选项主要包括以下几个部分:l 安全l 主机网络l 网络时间协议(NTP)l OpenStack包l SQL数据库l 消息队列l Memcached

1.1.1.1. 安全

OpenStack服务支持各种安全方法,包括密码,策略和加密。另外,包括数据库服务器和消息代理在内的支持服务支持密码安全性。为了简化安装过程,本指南仅适用于密码安全性。建议使用pwgen等工具生成或运行以下命令:
$ openssl rand -hex 10
对于OpenStack服务,本指南SERVICE_PASS引用服务帐户密码,SERVICE_DBPASS引用数据库密码。下表提供了指南中需要密码及其相关参考的服务列表。
密码名称描述
数据库密码(未使用变量)数据库的根密码
ADMIN_PASS用户密码 admin
CINDER_DBPASSBlock Storage服务的数据库密码
CINDER_PASS块存储服务用户的密码 cinder
DASH_DBPASS仪表板的数据库密码
DEMO_PASS用户密码 demo
GLANCE_DBPASS图像服务的数据库密码
GLANCE_PASS图像服务用户的密码 glance
KEYSTONE_DBPASS身份服务的数据库密码
METADATA_SECRET元数据代理的密码
NEUTRON_DBPASS网络服务的数据库密码
NEUTRON_PASS网络服务用户密码 neutron
NOVA_DBPASS计算服务的数据库密码
NOVA_PASS计算服务用户的密码 nova
PLACEMENT_PASSPlacement服务用户的密码 placement
RABBIT_PASSRabbitMQ用户的密码 openstack
OpenStack和支持服务在安装和操作期间需要管理权限。在某些情况下,服务会对主机进行修改,从而干扰部署自动化工具(如 Ansible, Chef, Puppet)。例如,一些OpenStack服务添加一个根包装器sudo可能会干扰安全策略。
网络服务假定内核网络参数的默认值,并修改防火墙规则。为了避免在初始安装过程中出现的大多数问题,建议在主机上使用受支持发行版的仓库部署。但是,如果选择自动化部署主机,请在继续进行之前查看应用于其的配置和策略。

1.1.1.2. 主机网络

在选择部署的体系结构的每个节点上安装操作系统后,必须配置网络接口。建议禁用任何自动化网络管理工具,并手动编辑分发版本的相应配置文件。有关如何在发行版上配置网络的更多信息,请参阅文档。所有节点需要Internet访问用于管理目的,如软件包安装,安全更新,DNS和 NTP。在大多数情况下,节点应通过管理网络接口获取Internet访问。为了突出显示网络分离的重要性 在提供商provider网络架构中,所有实例都直接附加到提供商网络。在自助self-service(私有)网络架构中,实例可以附加到自助服务或提供商网络。自助服务网络可以完全驻留在OpenStack中,或者通过提供商网络使用NAT提供一定程度的外部网络访问。下面的示例架构为提供商(外部)网络使用可路由的IP地址空间,并假设物理网络基础架构提供直接的Internet访问。管理网络使用专用地址空间,并假设物理网络基础架构通过NAT 或其他方法提供Internet访问。


示例架构假设使用以下网络:10.0.0.0/24管理,网关10.0.0.1该网络需要网关为所有节点提供Internet访问,用于管理目的,如软件包安装,安全更新,DNS和 NTP。 提供商203.0.113.0/24,网关203.0.113.1该网络需要一个网关来为OpenStack环境中的实例提供Internet访问。可以修改这些范围和网关以使用特定网络基础设施。网络接口名称因分布而异。传统上,接口使用eth后跟顺序号。为了涵盖所有变体,本指南将第一个接口作为具有最小数量的接口,第二个接口作为具有最高数量的接口。 除非打算使用此示例体系结构中提供的确切配置,否则必须修改此过程中的网络以匹配实际环境。除了IP地址外,每个节点都必须通过名称解析其他节点。例如,该controller名称必须解析为10.0.0.11控制器节点上的管理接口的IP地址。 警告:重新配置网络接口将中断网络连接。我们建议使用本地终端会话进行这些过程。 注意:默认情况下,RHEL,CentOS和SUSE发行版启用限制性防火墙。Ubuntu没有。1.1.1.1.1. [b]控制器节点网络[/b]一、配置网络接口
1、配置第一个接口为管理接口:IP地址:10.0.0.11网络掩码:255.255.255.0(或/24)默认网关:10.0.0.1 2、提供者provider接口使用特殊配置,而不分配IP地址。将第二个接口配置为provider接口:替换INTERFACE_NAME为实际的接口名称。例如, eth1或ens224。 编辑/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME文件以包含以下内容:不要改变HWADDR和UUID键。 DEVICE=INTERFACE_NAMETYPE=EthernetONBOOT="yes"BOOTPROTO="none" 3、重新启动系统以激活更改。
二、配置名称解析
设置节点的主机名controller。编辑/etc/hosts文件以包含以下内容:# controller10.0.0.11 controller # compute110.0.0.31 compute1 # block110.0.0.41 block1 # object110.0.0.51 object1 # object210.0.0.52 object2 警告:一些发行版在/etc/hosts 文件中添加一个无关的条目,将实际的主机名解析为另一个回送IP地址,例如127.0.1.1。您必须注释掉或删除此条目以防止名称解析问题。 不要删除127.0.0.1条目。 1.1.1.1.2. [b]计算节点[/b]一、配置网络接口1、配置第一个接口为管理界面:IP地址:10.0.0.31网络掩码:255.255.255.0(或/ 24)默认网关:10.0.0.1 注意:其他计算节点应使用10.0.0.32,10.0.0.33等。 2、提供者provider接口使用特殊配置,而不分配IP地址。将第二个接口配置为提供provider接口:替换INTERFACE_NAME为实际的接口名称。例如, eth1或ens224。 编辑/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME文件以包含以下内容:不要改变HWADDR和UUID键。 DEVICE=INTERFACE_NAMETYPE=EthernetONBOOT="yes"BOOTPROTO="none" 3、重新启动系统以激活更改。
二、配置名称解析
1、设置节点的主机名compute1。
2、编辑/etc/hosts文件以包含以下内容:

# controller
10.0.0.11 controller

# compute1
10.0.0.31 compute1

# block1
10.0.0.41 block1

# object1
10.0.0.51 object1

# object2
10.0.0.52 object2

警告:一些发行版在/etc/hosts 文件中添加一个无关的条目,将实际的主机名解析为另一个回送IP地址,例如127.0.1.1。您必须注释掉或删除此条目以防止名称解析问题。 不要删除127.0.0.1条目。
注意:本指南包括可选服务的主机条目,以便在选择部署它们时降低复杂性。
1.1.1.1.3. [b]块存储节点[/b] 如果要部署块存储服务,请配置一个额外的存储节点。 一、配置网络接口配置管理界面:IP地址: 10.0.0.41网络掩码:(255.255.255.0或/24)默认网关: 10.0.0.1 二、配置名称解析1、设置节点的主机名block1。2、编辑/etc/hosts文件以包含以下内容: # controller10.0.0.11 controller # compute110.0.0.31 compute1 # block110.0.0.41 block1 # object110.0.0.51 object1 # object210.0.0.52 object2警告:一些发行版在/etc/hosts 文件中添加一个无关的条目,将实际的主机名解析为另一个回送IP地址,例如127.0.1.1。您必须注释掉或删除此条目以防止名称解析问题。 不要删除127.0.0.1条目。 1.1.1.1.4. [b]验证连接[/b]
在继续进行之前验证到Internet和节点之间的网络连接。
1、从控制器节点,测试访问Internet:
ping -c 4 openstack.org
2、从控制器节点,测试访问计算节点上的管理接口 :
ping -c 4 compute1
3、从计算节点,测试访问Internet:
ping -c 4 openstack.org
4、从计算节点,测试访问控制器节点上的管理界面 :
ping -c 4 controller

注意:默认情况下,RHEL,CentOS和SUSE发行版启用限制性防火墙。在安装过程中,某些步骤将失败,除非更改或禁用防火墙。
默认情况下,Ubuntu不启用限制性防火墙。

1.1.1.1. 网络时间协议(NTP)

为了在节点之间正确同步服务,可以安装Chrony,即NTP的实现。将控制器节点配置为引用更准确的时间服务器,其他节点引用控制器节点作为时间服务器。
1.1.1.1.1. [b]控制器节点[/b]在控制器节点上执行这些步骤。

1、安装软件包:
# yum install chrony
2、/etc/chrony.conf根据环境的需要编辑文件并添加,更改或删除这些密钥:
server NTP_SERVER iburst
替换NTP_SERVER为适合更准确(较低层)NTP服务器的主机名或IP地址。该配置支持多个server键
注意
默认情况下,控制器节点通过公共服务器池同步时间。但是,您也可以选择配置其他服务器,如组织提供的服务器。
3、要使其他节点能够连接到控制器节点上的chrony守护程序,请将此密钥添加到/etc/chrony.conf 文件中:
allow 10.0.0.0/24
如有必要,请更换10.0.0.0/24您的子网的描述。
4、重新启动NTP服务:
# systemctl enable chronyd.service
# systemctl start chronyd.service

1.1.1.1.2. [b]其他节点[/b]其他节点引用控制器节点进行时钟同步。在所有其他节点上执行这些步骤。
1、安装软件包
# yum install chrony

2、编辑/etc/chrony.conf文件并注释掉或除去一个server键以外的所有内容。更改它以引用控制器节点:
server controller iburst
3、注释掉 pool 2.debian.pool.ntp.org offline iburst 这一行。

4、重新启动NTP服务。

# systemctl enable chronyd.service
# systemctl start chronyd.service

1.1.1.1.3. [b]验证操作[/b]在继续进行之前验证NTP同步。某些节点,特别是引用控制器节点的节点可能需要几分钟才能同步。

在控制器节点上运行此命令:
# chronyc sources

在所有其他节点上运行相同的命令:
#chronyc sources

“ 名称/IP地址”列中的内容应指示控制器节点的主机名。

1.1.1.2. OpenStack安装

由于发布时间表的不同,分发版将OpenStack包作为发布的一部分或使用其他方法。在所有节点上执行这些过程。
注意
这里描述的OpenStack包的设置需要在所有节点上完成:控制器,计算和块存储节点。
警告
主机必须包含可用于发行版的最新版本的基本安装包,然后再继续。
注意
禁用或删除任何自动更新服务,因为它们可能会影响OpenStack环境。

1.1.1.2.1. [b]用于CentOS的OpenStack软件包[/b]一、启用OpenStack存储库在CentOS上,extras存储库提供启用OpenStack存储库的RPM。extras默认情况下,CentOS包含存储库,因此可以直接安装该软件包以启用OpenStack存储库。安装Pike版本时,请运行:# yum install centos-release-openstack-pike在RHEL上,下载并安装RDO存储库RPM以启用OpenStack存储库。# yum install https://rdoproject.org/repos/rdo-release.rpmRDO存储库RPM安装最新的可用OpenStack版本。 二、完成安装升级所有节点上的软件包:# yum upgrade注意如果升级过程包括新内核,请重新启动主机以激活它。安装OpenStack客户端:# yum install python-openstackclientRHEL和CentOS 默认启用SELinux。安装 openstack-selinux软件包以自动管理OpenStack服务的安全策略:# yum install openstack-selinux

1.1.1.3. SQL数据库

大多数OpenStack服务使用SQL数据库来存储信息。数据库通常在控制器节点上运行。本指南中的步骤使用MariaDB。OpenStack服务还支持其他SQL数据库,包括 PostgreSQL。

一、安装和配置组件
1、安装软件包:
# yum install mariadb mariadb-server python2-PyMySQL
2、创建并编辑/etc/my.cnf.d/openstack.cnf文件并完成以下操作:
创建一个[mysqld]部分,并将bind-address 密钥设置为控制器节点的管理IP地址,以便其他节点通过管理网络进行访问。设置其他键以启用有用的选项和UTF-8字符集:
[mysqld]
bind-address = 10.0.0.11

default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
二、完成安装
1、启动数据库服务并将其配置为在系统引导时启动:
# systemctl enable mariadb.service
# systemctl start mariadb.service
2、通过运行mysql_secure_installation 脚本来保护数据库服务。特别是为数据库root帐户选择合适的密码 :
# mysql_secure_installation

1.1.1.4. 消息队列

OpenStack使用消息队列来协调服务之间的操作和状态信息。消息队列服务通常在控制器节点上运行。OpenStack支持多种消息队列服务,包括RabbitMQ, Qpid和ZeroMQ。然而,大多数包OpenStack的发行版都支持特定的消息队列服务。本指南实现了RabbitMQ消息队列服务,因为大多数发行版都支持它。如果您希望实现不同的消息队列服务,请参阅与之相关的文档。消息队列在控制器节点上运行。1、安装包:
# yum install rabbitmq-server
2、启动消息队列服务并将其配置为在系统启动时启动:
# systemctl enable rabbitmq-server.service
# systemctl start rabbitmq-server.service
3、添加openstack用户:
# rabbitmqctl add_user openstack RABBIT_PASS
Creating user "openstack" ...

更换RABBIT_PASS一个合适的密码。

4、允许用户的配置,写入和读取访问 openstack:
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...

1.1.1.5. Memcached

身份服务身份验证机制使用Memcached缓存令牌。memcached服务通常在控制器节点上运行。对于生产部署,建议启用防火墙,身份验证和加密的组合来保护它。1、安装软件包:# yum install memcached python-memcached2、编辑/etc/sysconfig/memcached文件并完成以下操作:配置服务以使用控制器节点的管理IP地址。这是为了允许其他节点通过管理网络进行访问:OPTIONS="-l 127.0.0.1,::1,controller" 注意更改现有行。OPTIONS="-l 127.0.0.1,::1" 3、启动Memcached服务并将其配置为在系统启动时启动:# systemctl 使 memcached.service# systemctl启动memcached.service
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息