真机部署Openstack环境踩坑记录

本文详细记录了在戴尔R730和联想ThinkServer350服务器上部署OpenStack云测试环境的过程,包括安装CentOS7.3、网络配置、服务启动及故障排查等内容,分享了httpd服务启动、keystone配置、glance镜像管理等关键环节的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近项目上需要部署openstack云测试环境,遂在戴尔R730和联想ThinkServer350上部署环境。

1. 制作CentOS7.3系统的U盘安装盘并安装,注意安装带有桌面系统的版本,安装过程中有两个问题,其一是在安装开始界面设置U盘的引导,U盘的分区比较靠后,可以使用ls /dev | grep sd来过滤,一般在最后面,比如/dev/sdb4或者/dev/sdc4;其二是在安装过程中选择安装位置,可以选中盘符后选择手动配置,然后使用自动分配功能,否则就回收盘符,留出足够空间再自动分配,手动分配容易出错。

2. 联网。系统安装完成后,连接外网,两台服务器和一台常备计算机共3路连接路由器后再连接外网,使用dhcp自动分配IP地址,确保两台三者互相ping通,且可以上网,查询各自IP地址。安装Xshell,在计算机端连接两台服务器。服务器分配:一台服务器(开机声音比较大,起名吼吼)既做控制节点,也做计算节点;另一台服务器比较薄,只做计算节点,起名扁扁。

3. 参考博客:完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建,网址:https://www.cnblogs.com/kevingrace/p/5707003.html

4. 问题汇总:

  1. httpd服务在第二天重启电脑后启动失败,关闭安全上下文。

  2. 配置keystone后,openstack token issue失败,参考http://www.cnblogs.com/kevingrace/p/5811167.html的第三个解决方法,获取的token值无效。

  3. 部分删除endpoint后如何恢复。openstack service list查看当前的服务,根据当前的服务查看其所包含的endpoint,如果有多个同名服务,则会添加失败,否则查询openstack endpoint list后,直接添加缺少的endpoint

  4. 镜像管理组件glance配置,glance image-list失败,是因为前面service和endpoint的配置有问题,当service齐备且不重复,service包含的endpoint齐全后,自然可用。

  5. 在计算节点计算机上部署计算节点,计算节点nova-compute服务无法启动并且nova service-list只有四个服务且状态为down解决办法:首先,设置环境变量admin-openrc.sh和OS_TOKEN、OS_URL、OS_...VERSION等;其次,在rabbitmq服务中查看openstack用户还在不在,如果是临时添加,机器重启后账户会消失,需要重新添加;最后,重启服务还是失败,检查日志发现是对“/”的访问权限问题,设置访问权限即可(报错:ERROR nova NotAllowed: Connection.open: (530) NOT_ALLOWED - access to vhost '/' refused for user 'openstack')。

  6. 检测keystone时openstack token issue
    报错:'NoneType' object has no attribute 'service_catalog',此错误的原因是未设置admin-openrc.sh环境变量。

  7. systemctl stop libvirtd服务无法启动,解决办法更新:yum update librbd1

  8. systemctl status neutron-linuxbridge-agent.service服务启动失败。首先检查文件配置,ifconfig查看当前使用的网卡名称,在/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件中配置自身网卡名称[linux_bridge]
    physical_interface_mappings = physnet1:eno2

  9. openstack添加一个计算节点出问题。首先查看neutron agent-list服务,确保neutron-linuxbridge-agent服务已经启动,最后测试添加虚机到新添节点:nova boot --flavor m1.tiny --image cirros --nic net-id=ec8ac324-eae4-4a10-bd26-e51faaf250df --security-group default --key-name mykey --availability-zone nova::linux-node3.openstack hello-instance-node3,最后nova list查看虚拟机列表

  10. 梳理开机检查和启动服务:

          对于控制主机吼吼

[root@linux-node1 ~]# ifconfig

[root@linux-node1 ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
[root@linux-node1 ~]# setenforce 0
[root@linux-node1 ~]# systemctl start firewalld.service
[root@linux-node1 ~]# systemctl stop firewalld.service
[root@linux-node1 ~]# systemctl disable firewalld.service
[root@linux-node1 ~]# systemctl restart memcached

[root@linux-node1 ~]# systemctl restart httpd

[root@linux-node1 ~]# export OS_TOKEN=258984afc31f33700063

[root@linux-node1 ~]# export OS_URL=http://192.168.1.31:35357/v3

[root@linux-node1 ~]# export OS_IDENTITY_API_VERSION=3
[root@linux-node1 ~]# openstack endpoint list

[root@linux-node1 ~]# source admin-openrc.sh 

[root@linux-node1 ~]# openstack token issue

[root@linux-node1 ~]# glance image-list

[root@linux-node1 ~]# nova endpoints

[root@linux-node1 ~]# nova service-list       # 重要,检查计算节点和状态

[root@linux-node1 ~]# openstack host-list

[root@linux-node1 ~]# systemctl status ntpd

[root@linux-node1 ~]# systemctl status rabbitmq-server.service -l

[root@linux-node1 ~]# netstat -nltp | grep 121

[root@linux-node1 ~]# systemctl restart httpd

[root@linux-node1 ~]# netstat -nltp | grep httpd

[root@linux-node1 ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"        # 设置“/”的权限
Setting permissions for user "openstack" in vhost "/" ...

[root@linux-node1 ~]# systemctl status openstack-nova-api

[root@linux-node1 ~]# systemctl restart openstack-nova-api openstack-nova-consoleauth openstack-nova-scheduler openstack-nova-conductor openstack-nova-novncproxy openstack-nova-cert

[root@linux-node1 ~]# openstack host list

[root@linux-node1 ~]# nova service-list

对于计算节点扁扁

[root@linux-node2 ~]# ifconfig

[root@linux-node2 ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
[root@linux-node2 ~]# getenforce 
[root@linux-node2 ~]# setenforce 0
[root@linux-node2 ~]# getenforce 
[root@linux-node2 ~]# systemctl start firewalld.service
[root@linux-node2 ~]# systemctl stop firewalld.service
[root@linux-node2 ~]# systemctl disable firewalld.service

[root@linux-node2 ~]# systemctl restartlibvirtd

[root@linux-node2 ~]# systemctl restart openstack-nova-compute.service

[root@linux-node2 ~]# export OS_TOKEN=258984afc31f33700063
[root@linux-node2 ~]# export OS_URL=http://192.168.1.31:35357/v3
[root@linux-node2 ~]# export OS_IDENTITY_API_VERSION=3

[root@linux-node2 ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"   # 仅设置一次,但比较重要

[root@linux-node2 ~]# systemctl restart openstack-nova-compute

[root@linux-node2 ~]# systemctl status openstack-nova-compute

### 使用 Kolla-Ansible 快速部署 OpenStack 环境 #### 准备工作 为了使用 Kolla-Ansible 部署 OpenStack,需先准备基础环境并安装必要的依赖项。确保目标服务器已准备好操作系统,并完成基本网络设置。 #### 安装 Kolla 和 Ansible 通过包管理器或源码方式安装最新版本的 Kolla 及其配套工具 Ansible: ```bash pip install kolla-ansible ``` #### 创建 Inventory 文件 创建适合当前拓扑结构的 inventory 文件,可以是多节点或多合一(all-in-one)模式。对于测试目的推荐采用 all-in-one 方式简化操作[^3]。 #### 初始化配置文件 执行初始化命令生成默认配置模板,在 `/etc/kolla` 目录下找到这些文件以便后续修改调整参数值: ```bash kolla-genpwd cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/kolla cp /usr/share/kolla-ansible/ansible/inventory/all-in-one /etc/kolla/ ``` #### 启动前检查与预处理 运行 `bootstrap-servers` 命令来预先设定各节点上的软件仓库和其他必要条件,这一步骤有助于减少实际服务启动过程中的不确定性因素[^1]: ```bash kolla-ansible -i /path/to/inventory bootstrap-servers ``` #### 执行部署流程 利用 prechecks 功能确认系统状态良好之后再继续正式部署动作;最后调用 deploy 进行完整的集群构建活动: ```bash kolla-ansible -i /path/to/inventory prechecks kolla-ansible -i /path/to/inventory deploy ``` #### 验证部署成果 当所有组件都成功上线后,可通过 post-deploy 步骤获取管理员凭证信息以及验证整个平台的功能完整性: ```bash kolla-ansible -i /etc/kolla/all-in-one post-deploy cat /etc/kolla/admin-openrc.sh source /etc/kolla/admin-openrc.sh openstack image list ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值