当前位置:   article > 正文

(零)OpenStack ( Train版 ) 搭建环境_openstack train

openstack train

注意: OpenStack社区不再支持此版本(Train),不会再为其提供更新,本文仅用于了解学习 OpenStack 项目。当前 OpenStack 支持的版本为 2023.2

一、节点

        大多数 OpenStack 环境中包含认证、镜像、计算和至少一个网络服务,还有仪表盘,仪表盘要求至少要有镜像服务,计算服务和网络服务。配置每个节点必须用有管理员权限的帐号。可以用 root用户或 sudo 工具来执行这些命令。

        由于 Openstack 服务数量以及虚拟机数量,为了获得最好的性能,我们推荐你的环境满足或者超过最小的硬件需求。如果在增加了更多的服务或者虚拟机后性能下降,请考虑为你的环境增加硬件资源。为了避免混乱和为 OpenStack 提供更多资源,推荐最小化安装 Linux 系统。同时,必须在每个节点安装Linux 64位版本。本文中使用的示例是最低配置,并且不适用于生产系统安装。它旨在提供最低限度的概念验证,以了解学习 OpenStack。

*从 Ussuri 版本开始,搭建 OpenStack 将需要使用 CentOS 8 或 RHEL 8。以前的 OpenStack 版本需要使用 CentOS 7 或 RHEL 7。本文使用 CentOS 7系统,所以搭建 OpenStack Train 版。

以下为最小需求支持环境,使用核心服务和几个 CirrOS 实例:

  • 控制节点: 1 处理器, 4 GB 内存, 及10 GB 存储

  • 计算节点: 1 处理器, 2 GB 内存, 及20 GB 存储

我的节点(CentOS 7,本文所有操作都是适用且仅适用于 CentOS 7):

  • 控制节点:Hostname:syl-ct;IP:192.168.214.10,1 处理器, 4 GB 内存, 及100 GB 存储

  • 计算节点:Hostname:syl-cm1;IP:192.168.214.11,1 处理器, 2 GB 内存, 及500 GB 存储

  • 计算节点:Hostname:syl-cm2;IP:192.168.214.12,1 处理器, 2 GB 内存, 及500 GB 存储

同时,需要在三个节点的hosts文件中添加三个节点的信息,使得三个节点可以ping通其他节点的主机名,如下图: 

关闭三个节点的防火墙及selinux:

  1. #关闭防火墙
  2. systemctl stop firewalld.service
  3. #关闭防火墙开机自启
  4. systemctl disable firewalld.service
  5. #查看防火墙信息
  6. systemctl status firewalld.service
  7. #查看selinux
  8. getenforce
  9. #关闭selinux
  10. setenforce 0
  11. #永久关闭selinux
  12. [root@syl-ct ~]# vim /etc/selinux/config
  13. # This file controls the state of SELinux on the system.
  14. # SELINUX= can take one of these three values:
  15. # enforcing - SELinux security policy is enforced.
  16. # permissive - SELinux prints warnings instead of enforcing.
  17. # disabled - No SELinux policy is loaded.
  18. SELINUX=permissive #将此行改为permission
  19. # SELINUXTYPE= can take one of three two values:
  20. # targeted - Targeted processes are protected,
  21. # minimum - Modification of targeted policy. Only selected processes are protected.
  22. # mls - Multi Level Security protection.
  23. SELINUXTYPE=targeted

二、网络时间协议(NTP)

控制节点

1、 安装软件包:

# yum install chrony -y

 2、编辑 /etc/chrony.conf 文件

配置NTP服务器(可选):

        注解:控制节点默认跟公共服务器池同步时间。但是你也可以选择性配置其他服务器,比如你组织中提供的服务器。

  1. #将(0.centos.pool.ntp.org)替换为自己的NTP服务器的主机名或者IP地址,配置支持设置多个 server 值
  2. #我这里控制节点为 NTP服务器,不进行更改
  3. # Use public servers from the pool.ntp.org project.
  4. # Please consider joining the pool (http://www.pool.ntp.org/join.html).
  5. server 0.centos.pool.ntp.org iburst
  6. server 1.centos.pool.ntp.org iburst
  7. server 2.centos.pool.ntp.org iburst
  8. server 3.centos.pool.ntp.org iburst

允许客户端访问:

        将配置文件中的网络改为节点所在的网络,以允许其他节点可以连接到控制节点的 chrony 进程

  1. # 此处位于文件的第26行附近,取消 allow 前面的注释,更改后面的网段
  2. # Allow NTP client access from local network.
  3. allow 192.168.214.0/24

3、启动 NTP 服务并将其配置为随系统启动

  1. # systemctl enable chronyd.service
  2. # systemctl start chronyd.service

其他节点

1、安装软件包:

# yum install chrony -y

2、编辑 /etc/chrony.conf 文件

        注释除 server 值外的所有内容,修改server地址。

  1. #将 syl-ct 替换为自己的NTP服务器的主机名或者IP地址,配置支持设置多个 server 值
  2. # Use public servers from the pool.ntp.org project.
  3. # Please consider joining the pool (http://www.pool.ntp.org/join.html).
  4. server syl-ct iburst

3、启动 NTP 服务并将其配置为随系统启动:

  1. # systemctl enable chronyd.service
  2. # systemctl start chronyd.service

验证

1、控制节点

        在 Name/IP address 列应显示NTP服务器的主机名或者IP地址。

  1. [root@syl-ct ~]# chronyc sources
  2. 210 Number of sources = 4
  3. MS Name/IP address Stratum Poll Reach LastRx Last sample
  4. ===============================================================================
  5. ^+ time.cloudflare.com 3 9 377 42 -4322us[-4322us] +/- 94ms
  6. ^+ tock.ntp.infomaniak.ch 1 9 377 176 -3767us[-3954us] +/- 109ms
  7. ^* time.cloudflare.com 3 9 377 172 -4292us[-4479us] +/- 95ms
  8. ^+ ntp5.flashdance.cx 2 8 335 34 +2515us[+2515us] +/- 126ms

2、其他节点

        在 Name/IP address 列的内容应显示控制节点的主机名。

  1. [root@syl-cm1 ~]# chronyc sources
  2. 210 Number of sources = 1
  3. MS Name/IP address Stratum Poll Reach LastRx Last sample
  4. ===============================================================================
  5. ^? syl-ct 0 8 0 - +0ns[ +0ns] +/- 0ns

三、OpenStack包

*这里描述的OpenStack软件包的设置需要在所有节点执行:控制器、计算和块存储节点。

启用OpenStack库

1、安装OpenStack包

        在Centos上,存储库提供了启用OpenStack存储库的RPM。默认情况下,CentOS包括存储库,因此您可以简单地安装该包以启用OpenStack存储库。

# yum install centos-release-openstack-train -y

完成安装

1、升级所有节点上的软件包:

* 注意:如果升级过程包含新内核,请重启主机以激活它。

# yum upgrade -y

2、安装 OpenStack 客户端。

# yum install python-openstackclient -y

3、CentOS 默认启用 SELinux。安装软件包以自动管理 OpenStack 服务策略:

# yum install openstack-selinux -y

四、SQL 数据库

*大多数OpenStack服务使用SQL数据库来存储信息,数据库通常在 控制节点 上运行。

安装和配置 Mariadb 数据库

1、安装软件包:

# yum install mariadb mariadb-server python2-PyMySQL -y

2、创建配置文件

 # vim /etc/my.cnf.d/openstack.cnf

3、编辑配置文件

        添加一个 [mysqld] ,并将 bind-address 设置为控制节点的IP 地址或者主机名,为允许其他节点通过管理网络进行访问数据库。同时添加用于启用相关选项和 UTF-8 的附加键:

  1. [mysqld]
  2. bind-address = syl-ct
  3. default-storage-engine = innodb
  4. innodb_file_per_table = on
  5. max_connections = 4096
  6. collation-server = utf8_general_ci
  7. character-set-server = utf8

完成安装

1、启动数据库服务并将其配置为开机自启:

  1. # systemctl enable mariadb.service
  2. # systemctl start mariadb.service

2、通过运行脚本来保护数据库服务。

* 注:此处需要按照指示进行每一步设置(yes 或者 no),同时需要设置数据库root用户密码(本文所用数据库root密码为123

# mysql_secure_installation

注:建议所有MariaDB服务器在生产中使用本脚本的所有部分!请仔细阅读每一步!
为了登录MariaDB以确保其安全,我们需要root用户的当前密码。如果您刚刚安装了MariaDB,并且还没有设置根密码,则密码将为空,因此您只需在此处按enter键即可。


输入root用户的当前密码(enter for none):

OK,成功使用密码,继续。。


设置root密码可确保未经适当授权,任何人都无法登录MariaDB root用户。


是否设置root密码?[Y/N] y
新密码:  此处设置数据库密码
再次输入新密码: 

密码更新成功!正在重新加载特权表。。
成功


默认情况下,MariaDB安装有一个匿名用户,允许任何人登录MariaDB,而无需为他们创建用户帐户。这只是为了测试,并使安装更加顺利。您应该在迁移到生产环境之前将其删除。


删除匿名用户?[Y/N] y
成功


通常,只应允许root从“localhost”进行连接。这样可以确保有人无法从网络中猜到根密码。


是否禁止root远程登录?[Y/N] y

成功


默认情况下,MariaDB附带了一个名为“test”的数据库,任何人都可以访问。这也仅用于测试,在进入生产环境之前应将其删除。


是否删除测试数据库并访问它?[Y/N] y
-正在删除测试数据库。。
成功
-正在删除对测试数据库的权限。。
成功

重新加载特权表将确保迄今为止所做的所有更改立即生效


是否立即重新加载特权表?[Y/N] y

成功


正在清理。。。

全部完成!如果您已经完成了上述所有步骤,您的MariaDB安装现在应该是安全的。
感谢您使用MariaDB!

五、消息队列

        OpenStack 使用消息队列来协调操作和服务之间的状态信息。消息队列服务通常在控制节点上运行。OpenStack 支持多个消息队列服务包括 RabbitMQ、Qpid 和 ZeroMQ, 但是,大多数打包 OpenStack 的发行版都支持特定的消息队列服务。本文使用 RabbitMQ 消息队列服务,因为大多数发行版都支持它。

安装和配置

* 此处消息队列在控制节点上运行

1、安装软件包:

# yum install rabbitmq-server -y

2、启动消息队列服务并将其设置开机自启:

  1. # systemctl enable rabbitmq-server.service
  2. # systemctl start rabbitmq-server.service

3、添加用户:openstack

* openstack为用户名,123为密码(可以改为自己的密码)

  1. [root@syl-ct ~]# rabbitmqctl add_user openstack 123
  2. Creating user "openstack"
  3. [root@syl-ct ~]#

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

  1. [root@syl-ct ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
  2. Setting permissions for user "openstack" in vhost "/"
  3. [root@syl-ct ~]#

六、Memcached

        OpenStack认证服务的身份验证机制使用Memcached来缓存令牌。Memcached服务通常在控制节点上运行。在生产中部署时,建议启用防火墙、身份验证和加密的组合来确保其安全。

安装和配置

1、安装软件包:

# yum install memcached python-memcached -y

2、编辑配置文件:/etc/sysconfig/memcached

  1. [root@syl-ct ~]# vim /etc/sysconfig/memcached
  2. PORT="11211"
  3. USER="memcached"
  4. MAXCONN="1024"
  5. CACHESIZE="64"
  6. OPTIONS="-l 127.0.0.1,::1,syl-ct" #仅在此行添加控制节点的主机名或IP

完成安装

1、启动消息队列服务并将其设置开机自启:

  1. # systemctl enable memcached.service
  2. # systemctl start memcached.service

七、Etcd

        OpenStack 服务可以使用 Etcd,一个分布式的可靠键值存储。 用于分布式密钥锁定、存储配置、跟踪服务活性等场景。

安装和配置组件

* etcd 服务在控制节点上运行。

1、安装软件包:

# yum install etcd -y

2、编辑配置文件:/etc/etcd/etcd.conf

        将 localhost 替换为控制节点的主机名或 IP 地址 ,以允许其他节点通过管理网络进行访问:

* 如下,在使用 IP 的地方只能使用 IP,使用主机名的地方可以使用 主机名 或 IP 

  1. #[Member]
  2. ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
  3. ETCD_LISTEN_PEER_URLS="http://192.168.214.10:2380"
  4. ETCD_LISTEN_CLIENT_URLS="http://192.168.214.10:2379"
  5. ETCD_NAME="syl-ct" # 此处替换为控制节点主机名
  6. #[Clustering]
  7. ETCD_INITIAL_ADVERTISE_PEER_URLS="http://syl-ct:2380"
  8. ETCD_ADVERTISE_CLIENT_URLS="http://syl-ct:2379"
  9. ETCD_INITIAL_CLUSTER="syl-ct=http://syl-ct:2380" # 此处格式为 主机名=http://主机名:2380
  10. ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
  11. ETCD_INITIAL_CLUSTER_STATE="new"

完成安装

1、启动消息队列服务并将其设置开机自启:

  1. # systemctl enable etcd
  2. # systemctl start etcd

到此,OpenStack 所需环境配置完成

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/684932
推荐阅读
  

闽ICP备14008679号