OpenStack-M版(Mitaka)搭建基于(Centos7.2)+++五、Openstack计算服务(nova)上

OpenStack Nova 安装与配置
本文介绍如何安装和配置 OpenStack 的核心组件 Nova,包括设置数据库、创建用户和服务实体、安装软件包、配置 nova.conf 文件等步骤,并提供启动服务的方法。

五、Openstack计算服务(nova)上


简单介绍:

nova控制节点上主要有五个组件:nova-api、nova-conductor、nova-consoleauth、nova-novncproxy、nova-scheduler

nova-api:接收和响应客户的API调用

nova-conductor:作用于``nova-compute``服务与数据库之间,因为nova-compute不会直接访问数据库而是交给它

nova-consoleauth:负责对访问虚拟机控制台提供token认证

nova-novncproxy:基于WEB浏览器的VNC访问提供一个代理,用于访问正在运行的实例

nova-scheduler:虚拟机调度服务负责绝对在哪个计算安装虚拟机


安装

nova安装在控制节点的部分(nova-api、nova-conductor、nova-consoleauth、nova-novncproxy、nova-scheduler


进入SQL创建nova数据库并授予权限

mysql -uroot -p

CREATE DATABASE nova_api;

GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
  IDENTIFIED BY '123456';

GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
  IDENTIFIED BY '123456';

CREATE DATABASE nova;

GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
  IDENTIFIED BY '123456';

GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
  IDENTIFIED BY '123456';


创建nova用户

需要管理员权限

. admin-openrc


openstack user create --domain default --password-prompt nova

添加 admin 角色到 nova 用户和 service 项目上

openstack role add --project service --user nova admin

创建``nova``服务实体

openstack service create --name nova --description "OpenStack Compute" compute


创建计算服务的 API 端点 创建时括号前加 "\"  转义字符 ,如:\ (tenant_id\ )s

openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1/%(tenant_id)s

openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1/%(tenant_id)s

openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1/%(tenant_id)s


安装nova软件包

yum install openstack-nova-api \
openstack-nova-conductor \
openstack-nova-console \
openstack-nova-novncproxy \
openstack-nova-scheduler


修改/etc/nova/nova.conf文件

vi /etc/nova/nova.conf

[DEFAULT]
enabled_apis = osapi_compute,metadata启用计算和元数据API
rpc_backend = rabbit启用消息队列
auth_strategy = keystone启用keystone认证
my_ip = 192.168.100.10使用控制节点管理接口ip
use_neutron = True启用网络服务
firewall_driver = nova.virt.firewall.NoopFirewallDriver

配置数据库连接

[api_database]
connection = mysql+pymysql://nova:123456@controller/nova_api

[database]
connection = mysql+pymysql://nova:123456@controller/nova

配置消息队列

[oslo_messaging_rabbit] 
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = 123456

配置认证服务访问

[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = 123456

配置VNC代理使用控制节点的管理接口IP地址

[vnc]
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip

配置镜像服务 API 的位置

[glance]
api_servers = http://controller:9292

配置锁路径

[oslo_concurrency]
lock_path = /var/lib/nova/tmp

同步compute数据库

su -s /bin/sh -c "nova-manage api_db sync" nova

su -s /bin/sh -c "nova-manage db sync" nova

查看是否有数据

mysql -uroot -p

use nova;
show tables;

use nova_api;
show tables;

如果没有数据检查[database]和[api_database]下connection=是否正确,如果没有问题可能是赋予nova数据库权限时有误,重新赋予。

启动服务

systemctl enable openstack-nova-api.service \
  openstack-nova-consoleauth.service openstack-nova-scheduler.service \
  openstack-nova-conductor.service openstack-nova-novncproxy.service

systemctl start openstack-nova-api.service \
  openstack-nova-consoleauth.service openstack-nova-scheduler.service \
  openstack-nova-conductor.service openstack-nova-novncproxy.service


如果你启动失败请检查配置文件,一般是敲错了

<think>我们正在解决在CentOS系统中无法通过yum安装openstack-packstack和centos-release-openstack-mitaka的问题,具体表现为执行安装命令时提示"Nopackageavailable"。根据引用[1]和引用[2],通常需要先安装centos-release-openstack-mitaka仓库,然后再安装openstack-packstack。但用户已经遇到了这两个包都无法安装的情况。可能的原因及解决思路:1.系统本不匹配:OpenStackMitaka本较老,可能只支持CentOS7,且需要特定的仓库配置。2.仓库未正确配置:可能缺少EPEL仓库或者基础仓库,或者仓库配置有重复(如用户输出中提到的epel仓库重复)。3.网络问题:无法访问仓库镜像。4.仓库已被移除:由于Mitaka是很旧的本,可能官方仓库已经不再提供。步骤:1.确认系统本:如果是CentOS7,则继续;如果是CentOS8,则可能需要使用其他方法(因为CentOS8默认不支持Mitaka)。2.清理yum缓存并更新。3.检查仓库配置,确保没有冲突。4.尝试手动下载仓库安装包进行安装(如果yum无法安装仓库包)。5.如果Mitaka仓库确实不可用,考虑使用其他本的OpenStack(如Queens、Rocky等)或使用RDO仓库。具体操作:步骤1:确认系统本执行命令:`cat/etc/centos-release`步骤2:如果是CentOS7,尝试添加EPEL仓库(如果尚未添加)因为OpenStack仓库可能依赖EPEL。```sudoyuminstall-yepel-release```步骤3:清理yum缓存并更新```sudoyumcleanallsudoyummakecachesudoyumupdate-y```步骤4:尝试安装centos-release-openstack-mitaka```sudoyuminstall-ycentos-release-openstack-mitaka```如果仍然找不到包,我们可以尝试手动下载并安装该仓库的rpm包。手动下载安装(以Mitaka为例):```wgethttp://vault.centos.org/7.9.2009/cloud/x86_64/openstack-mitaka/centos-release-openstack-mitaka-1-3.el7.noarch.rpmsudoyuminstall-ycentos-release-openstack-mitaka-1-3.el7.noarch.rpm```注意:这里我们使用了CentOS的归档仓库(vault.centos.org),因为Mitaka本较老,在官方仓库中可能已被移除。步骤5:安装openstack-packstack在成功安装仓库后,更新缓存并安装:```sudoyumupdate-ysudoyuminstall-yopenstack-packstack```步骤6:如果系统是CentOS8由于CentOS8默认不提供Mitaka,建议使用更新的OpenStack本。例如,安装Rocky本的仓库:```sudodnfinstall-ycentos-release-openstack-rockysudodnfupdate-ysudodnfinstall-yopenstack-packstack```注意:在CentOS8上,可能需要先启用PowerTools仓库(引用[4]):```sudodnfconfig-manager--set-enabledpowertools```步骤7:如果以上方法都失败,考虑使用RDO仓库RDO项目提供了OpenStack的安装包,可以尝试:```#对于CentOS7sudoyuminstall-yhttps://repos.fedorapeople.org/repos/openstack/openstack-mitaka/rdo-release-mitaka-9.noarch.rpmsudoyuminstall-yopenstack-packstack#对于CentOS8,使用Rocky本sudodnfinstall-yhttps://repos.fedorapeople.org/repos/openstack/openstack-rocky/rdo-release-rocky-3.noarch.rpmsudodnfinstall-yopenstack-packstack```注意:由于OpenStack本较老,可能遇到依赖问题,需要耐心调整。步骤8:处理安装中的依赖问题如果安装过程中出现依赖问题,如缺少`deltarpm`(引用[3])或`python-devel`(引用[5]),则安装:```sudoyuminstall-ydeltarpm#针对CentOS7sudoyuminstall-ypython-devel#针对Python依赖```总结:根据系统本选择合适的方法,优先尝试使用官方仓库,如果官方仓库已移除,则使用归档仓库或RDO仓库。相关问题:1.如何确定当前系统可用的OpenStack仓库本?2.CentOS8上安装OpenStackYoga本需要哪些步骤?3.如何解决OpenStack安装过程中的依赖冲突?4.安装完成后运行`packstack--allinone`报错如何调试?5.如何为OpenStack添加国内镜像源加速安装?</think>### 解决 CentOS 中无法安装 openstack-packstack 和 centos-release-openstack-mitaka 的问题 #### 问题原因分析 1. **仓库配置缺失** OpenStack 软件包不在默认仓库中,需要手动添加特定本的 OpenStack 仓库[^1][^2]。 2. **本不匹配** Mitaka 是较旧的 OpenStack 本(2016年发布),现代 CentOS 系统默认仓库可能已移除支持[^3]。 3. **仓库镜像失效** 官方仓库可能已迁移,需使用归档仓库或替代源[^3]。 --- #### 解决方案(分步骤操作) ##### ✅ 步骤 1:确认系统本 ```bash cat /etc/centos-release ``` - **CentOS 7** → 继续步骤 2 - **CentOS 8/9** → 跳至步骤 5 ##### ✅ 步骤 2:手动添加 Mitaka 仓库(CentOS 7) ```bash # 添加归档仓库(Vault 源) sudo tee /etc/yum.repos.d/openstack-mitaka.repo <<'EOF' [openstack-mitaka] name=CentOS OpenStack Mitaka baseurl=https://vault.centos.org/7.9.2009/cloud/x86_64/openstack-mitaka/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud EOF # 导入 GPG 密钥 sudo curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud \ https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Cloud ``` ##### ✅ 步骤 3:安装软件包 ```bash # 更新仓库缓存 sudo yum clean all sudo yum makecache # 安装软件包 sudo yum install -y centos-release-openstack-mitaka openstack-packstack ``` ##### ✅ 步骤 4:验证安装 ```bash # 检查 packstack 本 packstack --version # 预期输出:openstack-packstack-2016.1.1-1.el7.noarch ``` ##### ⚠️ 步骤 5:CentOS 8/9 替代方案 ```bash # 安装较新本(如 Yoga) sudo dnf install -y centos-release-openstack-yoga sudo dnf install -y openstack-packstack # 或使用 RDO 仓库 sudo dnf install -y https://repos.fedorapeople.org/repos/openstack/openstack-yoga/rdo-release-yoga-1.el8.noarch.rpm sudo dnf install -y openstack-packstack ``` --- #### 关键注意事项 1. **依赖处理** 若出现依赖错误: ```bash # 安装基础依赖 sudo yum install -y epel-release sudo yum install -y python-devel gcc openssl-devel ``` 2. **网络配置** 国内用户可使用阿里云镜像加速: ```bash sudo sed -i 's|https://vault.centos.org|https://mirrors.aliyun.com/centos-vault|g' \ /etc/yum.repos.d/openstack-mitaka.repo ``` 3. **SELinux 配置** 避免权限问题[^3]: ```bash sudo setenforce 0 sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config ``` > **提示**:Mitaka 已结束支持,建议新部署使用 Yoga(2022) 或 Zed(2023) 等较新本[^1][^2]。 --- ### 相关问题 1. 如何确认 OpenStack 仓库是否成功添加到 yum? 2. 安装完成后运行 `packstack --allinone` 报错如何处理? 3. CentOS Stream 9 支持哪些 OpenStack 本? 4. 如何解决安装过程中的 `Error: Unable to find a match` 错误? 5. OpenStack Mitaka 与 Yoga 本的主要区别是什么?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值