2015-08-04 2 views
1

Я пытаюсь использовать модуль анзибль Docker в данный момент, но я в настоящее время сталкивается эту ошибку, когда я пытаюсь запустить мой сборник пьес -Модуль анзибль Docker от OSX

NameError: global name 'DEFAULT_DOCKER_API_VERSION' is not defined 

я нашел официальную ошибку относительно этого в https://github.com/ansible/ansible-modules-core/issues/1792.

Я пробовал обходной путь, установив docker-py, но пока не имел радости.

Любые идеи о том, что может произойти неправильно? Я пытаюсь запустить свой Playbook с моего локального хоста OSX, который подключается к AWS.

ответ

1

После дальнейшего исследования нам удалось получить его на работу с помощью -

name: Install Docker PY 
pip: name=docker-py==1.1.0 

В нашем .yml файле

+0

Теперь у вас также может быть 1.2.3. pip: name = docker-py version = 1.2.3 – user2707671

+0

вам также может понадобиться добавить pip: shell: "curl -sSL https://bootstrap.pypa.io/get-pip.py | python" – user2707671

0

pip - это менеджер пакетов для python и устанавливается вместе с ним. Так что вы хотите установить python.

На OS XI рекомендуем вам сначала установить Homebrew, который менеджер пакетов для OS X. Команда для установки Homebrew является

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 

После установки Homebrew вы можете установить питона и вместе с ним пип с

brew install python 
+0

Спасибо, я установил пип и ошибка «Не удалось найти требуемый исполняемый код "теперь разрешился сам. Тем не менее, я теперь получаю первую ошибку снова в отношении проверки api докеры. Есть предположения? –

+0

Нет, я еще не работал с модулем докеров. Но, пожалуйста, обновите свой вопрос или создайте новый, чтобы решить эту новую проблему. – udondan

+0

Несомненно, никаких проблем, я обновил свой вопрос, как было предложено. –

0

Обычно это связано с отсутствием библиотеки pip или docker-py.

У меня это в моей докерной роли.

- name: install the required packages 
    apt: pkg={{ item }} state=present update_cache=yes 
    with_items: 
    - python-pip 

- name: Install docker-py as a workaround for Ansible issue 
    pip: name=docker-py version=1.2.3 
0

TLDR; -e use_tls=encrypt

  • Я использую новейшую dockerpy==1.5.0
  • ~/.bash_profile У меня есть eval "$(docker-machine env default)", который будет работать

    export DOCKER_TLS_VERIFY="1" 
    export DOCKER_HOST="tcp://192.168.99.100:2376" 
    export DOCKER_CERT_PATH="/Users/meyers/.docker/machine/machines/default" 
    export DOCKER_MACHINE_NAME="default" 
    

Теперь, когда ваша среда настроена позвольте мне сказать вам исправить. Модулю докера требуется параметр tls=encrypt. Вы можете поставить его на каждом вызове модуля Docker в вашей задаче анзибль или вы можете установить его «глобально» через -e use_tls=encrypt или в сборник пьес:

- hosts: all 
     vars: 
     use_tls: 'encrypt' 
     tasks: 
     ... 
Смежные вопросы