centos7安装Devstack报错的解决办法

本文详细介绍了在CentOS7环境中安装Devstack的过程,包括修改yum源和pip源,安装必要组件,以及如何配置和运行Devstack。同时,提供了遇到常见错误时的解决方案,如内核死锁、依赖包版本冲突等问题。

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

在centos7环境下:

有的错误也可以参考:Ubuntu16.4安装Devstack报错的解决办法

安装前:
一、修改源:

①修改yum源:

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
vi /etc/yum.repos.d/CentOS-Base.repo

文件内容改为:

# CentOS-Base.repo
[base]
releasever=7
name=CentOS-$releasever - Base
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates

[updates]
name=CentOS-$releasever - Updates
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

清空并更新缓存:

yum clean all
yum makecache

②修改pip源:
安装并更新pip:

sudo yum -y install epel-release
sudo yum -y install python-pip
sudo pip install --upgrade pip

修改配置文件(默认没有,要自己新建,在root用户下):

  cd ~
  mkdir .pip
  vi ~/.pip/pip.conf

写入如下内容:

[global]
timeout = 6000
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host = mirrors.aliyun.com
二、安装其他部分:

新安装的centos7需要安装以下部分:

yum provides '*/applydeltarpm'
yum install deltarpm  -y

在stack用户下下载并选择版本:

sudo useradd -s /bin/bash -d /opt/stack -m stack
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
su - stack
git clone https://git.openstack.org/openstack-dev/devstack
cd devstack
git checkout stable/stein

在devstack目录下编写local.conf文件,文件内容见文末尾
然后使用命令开始安装:
. /stack.sh
修改以下文件的内容为pip!=8:

vi /opt/stack/devstack/tools/cap-pip.txt

为了防止运行过程中内核死锁:

echo 20 > /proc/sys/kernel/watchdog_thresh

更新setuptools:

pip install --upgrade setuptools
遇到报错和解决办法:
  1. ERROR: Cannot uninstall ‘virtualenv’. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

解决办法:通过以下命令强制更新

sudo pip install --ignore-installed virtualenv

遇到其他类似的如ippaddr等,都通过以上命令强制更新到最新,然后重新安装。
centos7一般会遇到 virtualenv ,ply, ipaddress,enum34的需。

  1. **如果有指定版本要求的报错可以参考:pip管理软件命令
    例如如下报错:
    ERROR: flake8 2.6.2 has requirement pycodestyle<2.1,>=2.0, but you’ll have pycodestyle 2.5.0 which is incompatible.
    可以用:
pip install  pycodestyle==2.0

PS:如果发现报错依赖的某个包的版本不对,你安装的正确版本后,./stack.sh开始安装,但是版本又回退到错误的版本上去了,就需要修改以下文件:

/opt/stack/requirements/upper-constraints.txt

在这个文件中找到要改版本的哪一行,将后面的版本改正确。

  1. 报错内核死锁:
    kernel:NMI watchdog: BUG: soft lockup - CPU#2 stuck for 29s!
    解决办法:
    添加:echo 30 > /proc/sys/kernel/watchdog_thresh
    查看: tail -1 /proc/sys/kernel/watchdog_thresh

注2:安装完成后是在浏览器中是无法进入的,需要开放端口并保存:

    iptables -I INPUT -p tcp --dport 6080 -j ACCEPT
    iptables -I INPUT -p tcp --dport 80 -j ACCEPT
    service iptables save

如果还无法进入的话,看下httpd服务是否启动:
systemctl status httpd
如果没有启动的话,start启动一下

附录:local.conf配置文件
local.conf 配置文件(后半部分不用,那是TAAS需要的,可以没有):

[[local|localrc]]
DOWNLOAD_DEFAULT_IMAGES=False
IMAGE_URLS="http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img"
# use TryStack git mirror
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/sice-html5.git

# Credentials
DATABASE_PASSWORD=admin
ADMIN_PASSWORD=admin
SERVICE_PASSWORD=admin
SERVICE_TOKEN=admin
RABBIT_PASSWORD=admin
HOST_IP= 你的ip

# after is the plugins of tap-service 
Q_ML2_PLUGIN_EXT_DRIVERS=port_security

enable_plugin tap-as-a-service https://opendev.org/x/tap-as-a-service
enable_service taas TAAS_SERVICE_DRIVER=TAAS:TAAS:neutron_taas.services.taas.service_drivers.taas_rpc.TaasRpcDriver:default
enable_plugin tap-as-a-service-dashboard https://opendev.org/x/tap-as-a-service-dashboard
enable_plugin tap-as-a-service-tempest-plugin https://opendev.org/x/tap-as-a-service-tempest-plugin
<think>好的,我需要帮助用户了解如何配置DevStack。用户提到了他们想了解配置方法或解决配置问题,可能是在安装过程中遇到了困难。首先,我应该回忆一下DevStack的基本安装步骤,以及常见的配置文件和可能的问题点。 首先,DevStack是通过Git克隆仓库来获取的,所以第一步应该是克隆仓库到本地,这对应引用[1]中的git clone命令。接下来,用户需要创建local.conf配置文件,这个文件在DevStack的根目录下。记得要在这里设置管理员密码、数据库密码和其他服务的密码,这些是基本配置。 然后,用户可能会遇到网络配置的问题,比如创建Flat网络失败。根据引用[3],需要修改配置文件中的flat_networks参数,可能是在/etc/neutron/plugins/ml2/ml2_conf.ini里,把flat_networks的值设置为正确的网络名称,比如“public”。此外,安装依赖项也是关键,比如Python组件,如果缺少可能会导致安装失败。 另外,引用[4]提到虚拟机的网络接口配置,这可能涉及到在DevStack中配置网络选项,比如OVS或Neutron的设置。用户可能需要根据他们的虚拟化环境调整网络配置,比如在KVM中使用特定的VLAN设置。 用户可能还会遇到权限问题,比如需要以非root用户运行脚本,或者需要配置sudo权限。此外,服务启动失败也是一个常见问题,这时候需要查看日志文件,比如/opt/stack/logs下的日志,来定位错误原因。 最后,参考引用[2]中的安装命令,虽然这是针对Cinder的,但可能涉及到软件包依赖的问题,用户需要确保系统已安装所有必要的软件包,如python3-dev、libssl-dev等,以避免安装过程中的依赖错误。 总结下来,配置DevStack的步骤包括克隆仓库、配置local.conf、处理网络设置、解决依赖问题、处理权限和日志排查。需要将这些步骤详细列出,并提供常见问题的解决方法,帮助用户顺利完成配置。</think>### DevStack配置方法 #### **1. 环境准备** - **系统要求**:推荐使用Ubuntu 20.04/22.04或CentOS 8/9。确保系统已更新: ```bash sudo apt update && sudo apt upgrade -y # Ubuntu sudo dnf update -y # CentOS ``` - **创建非root用户**(避免权限问题): ```bash sudo useradd -s /bin/bash -d /opt/stack -m stack echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack sudo -u stack -i ``` #### **2. 下载DevStack** ```bash git clone https://github.com/openstack-dev/devstack # 引用[1] cd devstack ``` #### **3. 配置`local.conf`** 在DevStack根目录创建`local.conf`,以下为最小配置示例: ```ini [[local|localrc]] ADMIN_PASSWORD=secret DATABASE_PASSWORD=$ADMIN_PASSWORD RABBIT_PASSWORD=$ADMIN_PASSWORD SERVICE_PASSWORD=$ADMIN_PASSWORD HOST_IP=192.168.1.10 # 替换为实际IP # 启用基础服务 ENABLED_SERVICES=key,n-api,n-crt,n-obj,n-cpu,n-cond,n-sch,n-novnc,placement-client ``` #### **4. 网络配置(可选)** 若需创建Flat网络(如物理网络直通): 1. 修改Neutron配置文件(引用[3]): ```ini # /etc/neutron/plugins/ml2/ml2_conf.ini [ml2_type_flat] flat_networks = public ``` 2. 在`local.conf`中添加: ```ini Q_FLOATING_ALLOCATION_POOL=start=192.168.1.100,end=192.168.1.200 PUBLIC_PHYSICAL_NETWORK=public ``` #### **5. 安装依赖** 运行安装前自动处理依赖: ```bash ./tools/create-stack-user.sh # 权限修复(若报错) ./stack.sh # 开始安装(约30-60分钟) ``` #### **6. 验证安装** - 访问Dashboard:`http://<HOST_IP>/dashboard`(用户`admin`,密码`secret`) - 命令行验证: ```bash source openrc admin admin openstack compute service list ``` --- ### **常见问题解决** 1. **依赖安装失败** - 手动安装关键包(Ubuntu): ```bash sudo apt install python3-dev libssl-dev libffi-dev ``` - 若`pip`报错,尝试: ```bash pip install --upgrade pip setuptools ``` 2. **网络创建失败** - 检查`flat_networks`配置是否与物理网络匹配(引用[3][^3]) - 确保OVS或LinuxBridge驱动已启用: ```ini # local.conf Q_AGENT=linuxbridge ``` 3. **服务启动超时** - 查看日志定位问题: ```bash tail -f /opt/stack/logs/*.log ``` - 常见原因:数据库连接失败、RabbitMQ未启动。 4. **虚拟机无法连接外网** - 确认NAT配置或浮动IP分配(引用[4][^4]): ```bash openstack floating ip create public ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值