【问题标题】:Kolla-Ansible Deployment fails - /var/run/mongodb is not a directoryKolla-Ansible 部署失败 - /var/run/mongodb 不是目录
【发布时间】:2019-10-23 12:20:32
【问题描述】:

我正在尝试使用 Kolla-Ansible 8.0.1 部署 OpenStack “Stein”,并且在角色 mongodb 中总是以同样的故障运行:

角色总是在同一个任务中失败:

RUNNING HANDLER [mongodb : Waiting for the mongodb startup] **********************************************
fatal: [controller2]: FAILED! => {"changed": false, "elapsed": 300, "msg": "Timeout when waiting for 192.168.11.12:27017"} 
fatal: [controller1]: FAILED! => {"changed": false, "elapsed": 300, "msg": "Timeout when waiting for 192.168.11.11:27017"}
fatal: [controller3]: FAILED! => {"changed": false, "elapsed": 300, "msg": "Timeout when waiting for 192.168.11.13:27017"}

我在应该运行它们的主机上检查了 mongodb 容器的日志。它们在日志中显示所有相同的错误:

+ exec /usr/bin/mongod --unixSocketPrefix=/var/run/mongodb --config /etc/mongodb.conf run
/var/run/mongodb must be a directory

我是否遗漏了部署步骤中的重要内容?

【问题讨论】:

    标签: mongodb docker ansible containers openstack


    【解决方案1】:

    (免责声明:我从未使用过 kolla、openstack 或 mongodb...)

    mongodb doc提取

    --unixSocketPrefix <path>
    
        Default: /tmp
    
        The path for the UNIX socket. --unixSocketPrefix applies only to Unix-based systems.
    
        If this option has no value, the mongod process creates a socket with /tmp as a prefix.
    

    现在,您的错误信息:

    /var/run/mongodb 必须是目录

    看起来实际路径是hard coded in a template

    因此,您唯一的选择是在启动 mongodb 之前确保容器中存在该目录(具有正确的权限),以便它可以在那里写入其套接字。

    我现在没有时间进一步查看,但据我所知,您似乎可以定义要使用的图像标签。该问题可能源于在构建时未设置此目录的旧映像。值得检查...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-30
      • 2020-04-23
      • 2022-12-11
      • 1970-01-01
      • 2020-03-04
      • 1970-01-01
      相关资源
      最近更新 更多