#docker #ansible
#docker #ansible
Вопрос:
Просмотрев этот удивительный форум, я подумал, что пришло время присоединиться…
У меня возникла проблема с playbook, в котором развертывается несколько Docker.
- Моя версия Ansible: 2.5.1
- Моя версия Python — 3.6.9
- Мои образы Linux 18.04 с сайта: OSboxes.
Служба Docker установлена и запущена на обоих компьютерах.
Согласно этому веб-сайту, все, что вам нужно сделать, это следовать инструкциям, и все будет работать отлично. 🙂
https://www.techrepublic.com/article/how-to-deploy-a-container-with-ansible/
(Учебник, который я использую, находится по ссылке выше)
но после выполнения шагов и использования playbook у меня возникла эта ошибка.
TASK [Pull default Docker image] ******************************************************************************************************
fatal: [192.168.1.38]: FAILED! => {"changed": false, "msg": "Unsupported parameters for (docker_image) module: source Supported parameters include: api_version, archive_path, buildargs, cacert_path, cert_path, container_limits, debug, docker_host, dockerfile, filter_logger, force, http_timeout, key_path, load_path, name, nocache, path, pull, push, repository, rm, ssl_version, state, tag, timeout, tls, tls_hostname, tls_verify, use_tls"}
Я буду рад вашей поддержке в этом вопросе.
Ответ №1:
source: pull
Опция была добавлена в Ansible 2.8. Поскольку вы используете Ansible 2.5.1, эта опция недоступна.
Вы можете использовать более позднюю версию, 2.8 или выше, или просто удалить эту строку из своего сборника, и она должна работать:
- name: Pull default Docker image
docker_image:
name: "{{ default_container_image }}"
У вас не будет гарантии, что образ был недавно извлечен из реестра. Если это важно в вашем случае, вы можете сначала удалить любую локально кэшированную версию образа:
- name: Remove Docker image
docker_image:
name: "{{ default_container_image }}"
state: absent
- name: Pull default Docker image
docker_image:
name: "{{ default_container_image }}"
Комментарии:
1. Спасибо за ваш ответ. я проведу поиск в Google о том, как обновить мой Ansible до версии, которую вы упомянули, и, надеюсь, это решит мою проблему.
Ответ №2:
Итак, согласно документу docker_image
модуля Ansible 2.5, действительно нет параметра source
.
Тем не менее, документ версии 2.9 сообщает нам, что он был «добавлен в 2.8»! Таким образом, вам необходимо обновить версию Ansible, чтобы иметь возможность запускать связанный playbook как есть. Это ваш лучший вариант.
В противном случае другим вариантом было бы сохранить вашу версию 2.5 и просто удалить строку 38.
(-) source: pull
Но я не знаю, каким было поведение по умолчанию до 2.8, поэтому я не могу гарантировать вам, что оно будет делать то, что вы ожидаете!
Комментарии:
1. Спасибо, что нашли время и ответили на мой пост. я обновлю Ansible и отчитаюсь.
2. Спасибо, что нашли время и ответили на мой пост. я обновлю Ansible и отчитаюсь. (интересно, какую версию он использовал в видео …:)
Ответ №3:
Наконец-то я запел эту пьесу! 🙂
Я сделал следующее.
- обновлена версия Ansibe, теперь она работает на версии: 2.9.15.
- моя версия python3: 3.6.9
После обновления Ansible до версии, о которой я упоминал выше, я получил сообщение об ошибке: не удалось импортировать требуемую библиотеку python (Docker SDK для Python (python> == 2.7) или docker-py (python 2.6)) на osboxes (это моя машина) python…
итак, после поиска в Google этой ошибки я нашел этот URL:
https://neutrollized.blogspot.com/2018/12/cannot-have-both-docker-py-and-docker.html
ИТАК, я решил удалить docker со своих компьютеров, включая python, который был установлен с помощью pip (я использовал команду pip-list, чтобы посмотреть, установлен ли docker, и удалить его с помощью: pip uninstall ).
После удаления Docker со своих компьютеров я добавил в playbook еще одну игру. установите docker-compose (это то, что решает мою проблему, и оно позаботилось о версиях python).
Просто следуйте URL-адресу, который я прикрепил в своем ответе.
Ответ №4:
Согласно сообщению об ошибке в модуле Ansible docker_image
, похоже, используется параметр, который не является частью параметров, реализованных для этого модуля (пока). Также в сообщении об ошибке уже перечислены доступные параметры. То же, что и в документации к модулю.
Другой возможной причиной может быть неправильный отступ строки для некоторых параметров.
Комментарии:
1. я проведу поиск в Google о том, как обновить мой Ansible до версии, которую вы упомянули, и, надеюсь, это решит мою проблему.
2. Спасибо, что нашли время и ответили на мой пост. я обновлю Ansible и отчитаюсь. (интересно, какую версию он использовал в видео …:)