OpenStack学习笔记一( 前提必备安装步骤 )

OpenStack学习笔记一( 前提必备安装步骤 )

Scroll Down

( 官方文档搬运 )

Host Network

    在选择部署的体系结构的每个节点上安装操作系统之后,必须配置网络接口。建议禁用任何自动网络管理工具,并手动编辑适当的配置文件以进行分发。     所有节点都需要出于管理目的访问Internet,例如软件包安装,安全更新,DNS和 NTP。在大多数情况下,节点应通过管理网络接口获得Internet访问。为了强调网络分离的重要性,示例架构将专用地址空间用于管理网络,并假定物理网络基础结构通过NAT 或其他方法提供Internet访问。示例体系结构为提供商(外部)网络使用可路由的IP地址空间,并假定物理网络基础结构提供直接的Internet访问。     在提供商网络体系结构中,所有实例都直接附加到提供商网络。在自助服务(专用)网络体系结构中,实例可以连接到自助服务或提供商网络。自助服务网络可以完全位于OpenStack内,也可以通过提供商网络使用NAT提供一定程度的外部网络访问。   image.png

示例体系结构假定使用以下网络:

    使用网关10.0.0.1在10.0.0.0/24上进行管理 该网络需要网关来提供对所有节点的Internet访问,以进行管理目的,例如程序包安装,安全更新,DNS和 NTP。     203.0.113.0/24上的提供者与网关203.0.113.1 该网络需要网关来提供对OpenStack环境中实例的Internet访问。可以修改这些范围和网关以与您的特定网络基础结构一起使用。     网络接口名称因分布而异。传统上,接口使用eth后跟序列号。为了涵盖所有变化,本指南将第一个接口称为编号最小的接口,将第二个接口称为编号最大的接口。     除非打算使用此示例体系结构中提供的确切配置,否则必须在此过程中修改网络以匹配您的环境。每个节点除IP地址外,还必须按名称解析其他节点。例如,controller名称必须解析为10.0.0.11,即控制器节点上管理接口的IP地址。

实际操作

    本人在这里使用了非生产环境,两台虚拟机,一台作为控制节点controller-ZJB,一台作为计算节点compute1-ZJB

一、修改/etc/hosts文件,添加上解析

① controller

#vim /etc/hosts image.png

② compute1

#vim /etc/hosts image.png

③ 重启后使用ping测试是否配置生效

image.png

image.png

警告: 重新配置网络接口将中断网络连接。建议对这些过程使用本地终端会话(即不使用ssh连接) 默认RHEL,CentOS和SUSE发行版默认情况下启用限制性,非实际生产环境,所以我选择关闭防火墙 image.png

image.png

二、要在节点之间正确同步服务,可以安装Chrony,这是NTP的实现。建议配置控制器节点以引用更准确的(较低层数)服务器,而其他节点则配置为引用控制器节点

1、控制节点Controller:

① 安装和配置的部件

image.png

② 对于RHEL,CentOS或SUSE,编辑/etc/chrony.conf文件:

a、该配置支持多个server键( 默认情况下,控制器节点通过公共服务器池同步时间。但是,可以选择配置备用服务器,例如贵组织提供的服务器 )

# vim /etc/chrony.conf   

image.png

b、要使其他节点能够连接到控制器节点上的chrony守护程序,请将此密钥添加到上述相同的chrony.conf文件中

image.png

③ 修改完配置文件,设置chronyd服务开机自启动

image.png

2、compute1节点:

① 安装chrony

# vim /etc/chrony.conf  

image.png

② 编辑chrony.conf文件( compute1节点引用controller节点进行时钟同步 )

删除或注释掉除controller server键以外的所有键 image.png

③ 修改完配置文件,设置chronyd服务开机自启动

image.png

3、验证NTP同步

① 在controller节点运行chronyc sources命令

MS列中的内容应为*,表示 NTP服务当前已同步到的服务器。“Name/ IP address”列中的内容应指示一台或多台NTP服务器的主机名或IP地址。 image.png

② 在compute1节点运行chronyc sources命令

“Name/ IP address”列中的内容应指示控制器节点的主机名 image.png

三、启用OpenStack存储库

    在CentOS上,extras资源库提供RPM,以启用OpenStack资源库。CentOS extras默认包含该存储库,因此只需安装该软件包即可启用OpenStack存储库。

如需更换openstack国内源,点我

① 安装Rocky版本,运行

#yum -y install centos-release-openstack-rocky image.png

image.png

② 完成安装后在所有节点升级软件包

#yum upgrade 注意: 如果升级过程中包含新内核,请重新引导主机以将其激活。

③ 安装OpenStack客户端:

# yum -y install python-openstackclient

image.png

image.png

④ RHEL和CentOS 默认情况下启用SELinux。安装 openstack-selinux软件包以自动管理OpenStack服务的安全策略:

image.png

image.png

以下部分是在controller节点上做的:

四、SQL数据库

      大多数OpenStack服务都使用SQL数据库来存储信息。数据库通常在控制器节点上运行。本篇学习笔记中的过程根据发行版使用MariaDB或MySQL。OpenStack服务还支持其他SQL数据库,包括 PostgreSQL

注意:

    如果你在OpenStack服务上看到Too many connections或Too many open files错误记录日志消息,请验证最大数量的连接设置是否已正确应用到您的环境。在MariaDB中,你可能还需要更改 open_files_limit 配置。

RHEL和CentOS的SQL数据库:

① 安装和配置的部件

#yum install mariadb mariadb-server python2-PyMySQL image.png

② 创建并编辑/etc/my.cnf.d/openstack.cnf文件( 尽量备份/etc/my.cnf.d/文件夹下现有配置文件 )并完成以下操作:

a、备份文件

image.png

b、创建一个[mysqld]部分,并将bind-address 键值设置为控制器节点的管理IP地址,以允许其他节点通过管理网络进行访问。设置其他键以启用有用的选项和UTF-8字符集:

image.png

③ 完成安装

启动数据库服务,并将其配置为在系统引导时启动:

image.png

④ 通过运行mysql_secure_installation 脚本来保护数据库服务。特别是,为数据库root帐户选择合适的密码 :

image.png     数据库初始安装略,一路y即可

四、消息队列

    OpenStack使用消息队列来协调服务之间的操作和状态信息。消息队列服务通常在控制器节点上运行。OpenStack支持多种消息队列服务,包括RabbitMQ, Qpid和ZeroMQ。但是,打包OpenStack的大多数发行版都支持特定的消息队列服务。本篇学习笔记实现了RabbitMQ消息队列服务,因为大多数发行版都支持它。如果你希望实施其他消息队列服务,请查阅与其相关的官方文档。

① 安装软件包

image.png

② 启动消息队列服务,并将其配置为在系统引导时启动:

image.png

③ 添加openstack用户:( 这里添加了两个用户,一个ZJB,一个openstack,后面nova组件等使用的是ZJB )

image.png

image.png

④ 允许openstack、ZJB用户配置,写入和读取访问权限 :

image.png

image.png

五、Memcached

    服务的身份服务身份验证机制使用Memcached来缓存令牌。memcached服务通常在控制器节点上运行。如果在生产环境部署的话,建议启用防火墙,身份验证和加密的组合以保护其安全。

① 安装软件包

image.png

② 编辑/etc/sysconfig/memcached文件并完成以下操作:

    配置服务以使用控制器节点的管理IP地址。这是为了允许其他节点通过管理网络进行访问: 

#vim /etc/sysconfig/memcached

image.png

③ 启动Memcached服务,并将其配置为在系统启动时启动:

image.png

六、Etcd for RHEL and CentOS

    OpenStack服务可以使用Etcd(分布式可靠键值存储)来进行分布式键锁定,存储配置,跟踪服务活动性和其他情况。etcd服务在控制器节点上运行。

① 安装软件包:

# yum install etcd

② 编辑/etc/etcd/etcd.conf文件,需要修改的地方如下图所示

image.png

③ 启用并启动etcd服务:

image.png