bookoob 2025-09-11 00:15 采纳率: 0%
浏览 13

關於ubuntu22.04安裝devstack時遇到的placement問題

每當我./stack.sh要安裝devstack時都會卡在這個階段。
在網路上有看到幾位和我遇到同樣狀況的人,但沒有看到解決方法,所以想詢問各位有沒有解決方法。

img

  • 写回答

4条回答 默认 最新

  • 檀越@新空间 2025-09-11 00:16
    关注

    上午好☀️☀️☀️️
    本答案参考通义千问

    在使用 Ubuntu 22.04 安装 DevStack 时,如果安装过程卡在 placement 阶段,这通常与 OpenStack 的 placement 服务 相关。以下是详细分析和解决方法:


    🔍 原因分析

    1. placement 服务未正确启动或配置
    2. 依赖项缺失(如 python3-keystoneauth1、python3-oslo-concurrency 等)
    3. 网络问题导致镜像拉取失败
    4. 权限问题(如用户权限不足或文件权限错误)
    5. Python 版本不兼容(DevStack 要求 Python 3.8+)

    ✅ 解决方案

    1. 确保系统更新并安装必要的依赖

    sudo apt update && sudo apt upgrade -y
    sudo apt install -y git curl wget python3-pip python3-dev build-essential libssl-dev libffi-dev
    

    重要: 安装 python3-keystoneauth1python3-oslo-concurrency 等依赖项。

    sudo apt install -y python3-keystoneauth1 python3-oslo-concurrency
    

    2. 检查 DevStack 的版本兼容性

    确保你使用的 DevStack 是 支持 Ubuntu 22.04 的版本。推荐使用以下命令克隆最新版本:

    git clone https://opendev.org/openstack/devstack
    cd devstack
    

    如果你使用的是旧版本的 DevStack,可能会有兼容性问题。


    3. 修改 local.conf 文件以优化安装

    devstack/local.conf 中添加以下内容,确保 placement 服务能正常启动:

    [[local|localrc]]
    ADMIN_PASSWORD=secret
    DATABASE_PASSWORD=secret
    RABBIT_PASSWORD=secret
    SERVICE_PASSWORD=secret
    ENABLED_SERVICES=placement,key,identity,compute,nova,neutron,horizon
    

    重点: 确保 ENABLED_SERVICES 包含 placement


    4. 手动启动 placement 服务(调试用)

    如果安装仍然卡住,可以尝试手动启动 placement 服务进行调试:

    cd /opt/stack/devstack
    ./stack.sh
    

    如果卡在某个步骤,可以查看日志:

    tail -f /opt/stack/logs/stack.sh.log
    

    查找是否有如下错误信息:

    ERROR: Failed to start placement service
    

    5. 检查 Placement 服务的日志

    查看 /opt/stack/logs/placement-api.log/var/log/placement/ 下的日志文件,确认是否出现异常。

    例如:

    cat /opt/stack/logs/placement-api.log
    

    如果看到类似错误:

    ImportError: No module named 'oslo_config'
    

    说明缺少依赖,需要安装:

    pip3 install oslo-config
    

    6. 清理并重新安装 DevStack

    有时候之前的安装残留会导致问题,建议清理后重试:

    cd devstack
    ./unstack.sh
    ./clean.sh
    

    然后再次运行:

    ./stack.sh
    

    7. 使用虚拟环境(可选)

    如果你希望隔离环境,可以在 local.conf 中启用虚拟环境:

    VIRTUALENV=True
    

    🛠️ 示例修改后的 local.conf

    [[local|localrc]]
    ADMIN_PASSWORD=secret
    DATABASE_PASSWORD=secret
    RABBIT_PASSWORD=secret
    SERVICE_PASSWORD=secret
    ENABLED_SERVICES=placement,key,identity,compute,nova,neutron,horizon
    

    🧪 验证安装

    安装完成后,可以验证 placement 服务是否运行:

    curl -i http://localhost:8080/placement
    

    如果返回状态码为 200 OK,表示 placement 服务已成功启动。


    📌 总结

    | 步骤 | 操作 | |------|------| | 1 | 更新系统并安装依赖 | | 2 | 使用兼容的 DevStack 版本 | | 3 | 修改 local.conf 文件 | | 4 | 手动启动服务并查看日志 | | 5 | 清理旧安装并重新运行 stack.sh | | 6 | 可选:使用虚拟环境 |


    如果你愿意提供具体的错误日志,我可以进一步帮助你定位问题。欢迎继续提问!

    评论

报告相同问题?

问题事件

  • 创建了问题 9月11日