在 CentOS 7 上安装 OpenStack 是一个复杂但可行的过程,以下是详细的步骤和注意事项:
环境准备
1、更新系统:确保系统是最新的,执行以下命令更新系统并安装 EPEL 仓库。

sudo yum update y
sudo yum install y epelrelease2、安装基本依赖:安装 OpenStack 所需的基本工具和软件包。
sudo yum install y python3pip openstackutils3、配置主机名:设置主机名并在/etc/hosts 文件中添加相应的解析。
sudo hostnamectl sethostname controller
echo "192.168.100.100 controller" | sudo tee a /etc/hosts4、关闭防火墙和 SELinux:禁用防火墙和 SELinux,或者进行相应的配置以允许 OpenStack 服务通信。
sudo systemctl disable firewalld now
sudo setenforce 0安装数据库
1、安装 MariaDB:OpenStack 需要数据库来存储状态信息,这里使用 MariaDB。
sudo yum install y mariadb mariadbserver
sudo systemctl start mariadb
sudo systemctl enable mariadb2、运行安全脚本:保护 MariaDB 并设置强密码等安全选项。
sudo mysql_secure_installation3、创建 OpenStack 数据库和用户:登录 MariaDB,创建 OpenStack 所需的数据库和用户,并授予相应的权限。

mysql u root p
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'PASSWORD';
FLUSH PRIVILEGES;
EXIT;安装消息队列
1、安装 RabbitMQ:OpenStack 使用 RabbitMQ 作为消息队列服务。
sudo yum install y rabbitmqserver
sudo systemctl start rabbitmqserver
sudo systemctl enable rabbitmqserver安装 Keystone
1、安装 Keystone:Keystone 是 OpenStack 的身份认证服务。
sudo yum install y openstackkeystone2、配置 Keystone:编辑 Keystone 的配置文件,设置数据库连接和管理员 Token 等信息。
sudo vim /etc/keystone/keystone.conf
# 在 [database] 段中添加
connection = mysql+pymysql://keystone:PASSWORD@localhost/keystone
# 在 [DEFAULT] 段中设置
admin_token = ADMIN_TOKEN3、初始化 Keystone 数据库:同步 Keystone 数据库。
sudo su s /bin/sh c "keystonemanage db_sync" keystone4、设置环境变量:为 OpenStack CLI 设置环境变量。
echo "export OS_USERNAME=admin" >> adminopenrc.sh
echo "export OS_PASSWORD=PASSWORD" >> adminopenrc.sh
echo "export OS_PROJECT_NAME=admin" >> adminopenrc.sh
echo "export OS_USER_DOMAIN_NAME=Default" >> adminopenrc.sh
echo "export OS_PROJECT_DOMAIN_NAME=Default" >> adminopenrc.sh
echo "export OS_AUTH_URL=http://localhost:5000/v3" >> adminopenrc.sh
echo "export OS_IDENTITY_API_VERSION=3" >> adminopenrc.sh
source adminopenrc.sh安装 Glance
1、安装 Glance:Glance 是 OpenStack 的镜像服务,负责存储和检索虚拟机镜像。

sudo yum install y openstackglance2、配置 Glance:编辑 Glance 的配置文件,设置数据库连接和消息队列等信息。
sudo vim /etc/glance/glanceapi.conf
# 在 [database] 段中添加
connection = mysql+pymysql://glance:PASSWORD@localhost/glance
# 在 [DEFAULT] 段中设置
rabbit_host = localhost
rabbit_userid = guest
rabbit_password = guest3、同步数据库并启动服务:同步 Glance 数据库,启动 Glance 服务,并将其设置为开机自启。
sudo su s /bin/sh c "glancemanage db_sync" glance
sudo systemctl start openstackglanceapi
sudo systemctl enable openstackglanceapi安装 Nova
1、安装 Nova:Nova 是 OpenStack 的计算服务,负责管理虚拟机实例。
sudo yum install y openstacknovaapi openstacknovaconductor openstacknovascheduler2、配置 Nova:编辑 Nova 的配置文件,设置数据库连接、消息队列、身份认证等信息。
sudo vim /etc/nova/nova.conf
# 根据实际需求进行配置,如设置数据库连接、消息队列、身份认证等参数3、同步数据库并启动服务:同步 Nova 数据库,启动相关服务,并将其设置为开机自启。
sudo su s /bin/sh c "novamanage db sync" nova
sudo systemctl start openstacknovaapi openstacknovascheduler openstacknovaconductor
sudo systemctl enable openstacknovaapi openstacknovascheduler openstacknovaconductor安装 Neutron
1、安装 Neutron:Neutron 是 OpenStack 的网络服务,提供网络连接和管理功能。
sudo yum install y openstackneutron openstackneutronml2 openstackneutronopenvswitch2、配置 Neutron:编辑 Neutron 的配置文件,设置数据库连接、消息队列、身份认证等信息。
sudo vim /etc/neutron/neutron.conf
# 根据实际需求进行配置,如设置数据库连接、消息队列、身份认证等参数3、同步数据库并启动服务:同步 Neutron 数据库,启动相关服务,并将其设置为开机自启。
sudo su s /bin/sh c "neutrondbmanage configfile /etc/neutron/neutron.conf configfile /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
sudo systemctl start openstackneutronapi openstackneutronscheduler openstackneutronpluginopenvswitchagent openstackneutronl3agent openstackneutrondhcpagent openstackneutronmetadataagent openstackneutronopenvswitchagent
sudo systemctl enable openstackneutronapi openstackneutronscheduler openstackneutronpluginopenvswitchagent openstackneutronl3agent openstackneutrondhcpagent openstackneutronmetadataagent openstackneutronopenvswitchagent安装 Horizon(可选)
1、安装 Horizon:Horizon 是 OpenStack 的 Web 仪表盘,提供图形化界面来管理 OpenStack 资源。
sudo yum install y openstackdashboard2、配置 Horizon:编辑 Horizon 的配置文件,设置相关的参数。
sudo vim /etc/openstackdashboard/local_settings.py
# 根据实际需求进行配置,如设置 OpenStack 服务的 API 地址等参数3、启动服务:启动 Horizon 服务,并将其设置为开机自启。
sudo systemctl start httpd
sudo systemctl enable httpd验证安装
1、检查服务状态:确保所有 OpenStack 服务都已正确启动。
sudo systemctl status openstackkeystone openstackglance openstacknova openstackneutron httpd2、测试 Keystone:使用 OpenStack CLI 或 Horizon 测试 Keystone 的身份认证功能。
3、测试其他服务:分别测试 Glance、Nova、Neutron 等服务是否正常工作,例如上传和下载镜像、创建和管理虚拟机实例、创建和管理网络等。
