Kolla- ansible openstack: Docker сбой версии - PullRequest
0 голосов
/ 21 января 2020

Я столкнулся с проблемой во время развертывания openstack pike.

При запуске команды предварительной проверки произошла ошибка.

Kolla- ansible версия 6.0.0.0rc2, Ubuntu Server 16 LTS [ошибка] [1]

Я обнаружил, что необходимая docker версия >=2.4.6.

Мой ток 1.12.6.

фатально: [localhost]: СБОЙ! => {"msg": "Условная проверка 'result | fail или result.stdout | regex_replace ('. (\\ d + \\. \\ d + \\. \\ d +). ', '\\ 1') | version_compare (docker_version_min, '<') "не удалось. Ошибка была: ошибка шаблона при шаблонной строке: нет фильтра с именем 'fail'. Строка: {% if result | fail или result.stdout | regex_replace ( '. <em>(\\ d + \\. \\ d + \\. \\ d +). ', '\\ 1') | version_compare (docker_version_min, '<')%} True {% else% } False {% endif%} "} </p>

Итак, я попытался обновить его, выполнив команду

sudo pip install -U docker==2.4.2

Но docker version все еще говорит, что это 1.12.6 и возникает ошибка.

У меня вопрос : нужно ли обновить docker другим способом, изменить что-то в kolla- ansible playbooks или, может быть, что-то еще?

PS Я знаю, что pike, Ubuntu srv 16 и 6.0.0.0rc2 немного устарели, но это только для моего университетского проекта:)

Ответы [ 3 ]

1 голос
/ 21 января 2020

failed - это не фильтр , а тест .

Использование тестов с разрешенным синтаксисом фильтра. Он устарел в ansible 2.5 (с предупреждениями) и полностью удален в ansible 2.9 .

Правильный синтаксис:

result is failed
0 голосов
/ 21 января 2020

Проблема была в ansible. Как сказал @Zeitounator, этот скрипт работал только в ansible 2.5 или менее, поэтому этот решил мою проблему:

sudo -H pip install ansible==2.5.6

Но другой сбой:

TASK [prechecks : Проверка docker SDK версии] ****************************************** ************************************************* со смертельным исходом : [localhost]: не удалось! => {"change": false, "cmd": ["/ usr / bin / python", "- c", "docker импорта; печать docker. версия "] , "delta": "0: 00: 00.014776", "end": "2020-01-21 14: 35: 06.561138", "failed_when_result": true, "msg": "ненулевой код возврата", "r c ": 1,« start »:« 2020-01-21 14: 35: 06.546362 »,« stderr »:« Traceback (последний вызов был последним): \ n файл \ "\", строка 1, в \ nImportError: Нет модуля с именем docker "," stderr_lines ": [" Traceback (последний вызов был последним): "," File \ "\", строка 1, in "," ImportError: Нет модуля с именем docker "] , "stdout": "", "stdout_lines": []}

решение:

sudo pip install docker
0 голосов
/ 21 января 2020

Ваша проблема в том, что вы установили неправильный docker.

Колле нужен docker двигатель. Вы должны установить docker -ce, выполнив следующие действия:

https://docs.docker.com/install/linux/docker-ce/ubuntu/

, а затем повторите попытку.

Также удалите docker из pypi:

pip uninstall  docker

А тот из apt:

sudo apt remove docker
...