Развертывание Kolla-Ansible завершается неудачно - / var / run / mongodb не является каталогом - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь развернуть OpenStack "Stein" с Kolla-Ansible 8.0.1 и всегда работать с одним и тем же сбоем в роли 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

Я пропустил что-то важное на этапах развертывания?

1 Ответ

0 голосов
/ 23 октября 2019

(Отказ от ответственности: я никогда не играл ни с 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 должно быть каталогом

Похоже, что фактический путь жестко задан в шаблоне

Таким образом, ваш единственный вариант - убедиться, что каталог существует (с правильными разрешениями) в контейнере до запуска mongodb, чтобы он мог записать свой сокет туда.

У меня нет временипосмотрим дальше прямо сейчас, но из того, что я мог видеть, похоже, что вы можете определить тег изображения, который хотите использовать. Проблема может возникать из-за более старого образа, для которого не установлен этот каталог во время сборки. Стоит проверить ...

...