Ошибка ansible-galaxy при установке init - не удалось получить данные с сервера API - требуется объект, подобный байтам, а не str

ansible: ansible-galaxy 2.2.0.0

python: Python 2.7.10

Я попробовал команду ansible-galaxy для создания новой структуры ролей (команда init), но это не удалось со следующим сообщением. Итак, я посмотрел онлайн и попробовал --offline вариант, и часть создания структуры сработала.

Пока у меня есть репозиторий на Github: https://github.com/asangal/wavefront-ansible

Роль также отображается в Ansible Galaxy под Browse Roles.

https://galaxy.ansible.com/list#/roles?page=1&page_size=10&autocomplete=wavefront или

https://galaxy.ansible.com/asangal/wavefront-ansible/

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

$ ansible-galaxy install asangal.wavefront-ansible
 [WARNING]: - asangal.wavefront-ansible was NOT installed successfully: Failed to get data from the API server (https://galaxy.ansible.com/api/): a bytes-like object is
required, not 'str'

ERROR! - you can use --ignore-errors to skip failed roles and finish processing the list.

ИЛИ (использовались параметры --ignore-errors и -p <role_path>, но это не помогло)

$ ansible-galaxy install asangal.wavefront-ansible --ignore-errors -p ~/aks/dummy
 [WARNING]: - asangal.wavefront-ansible was NOT installed successfully: Failed to get data from the API server (https://galaxy.ansible.com/api/): a bytes-like object is
required, not 'str'

[arun@vagrant ~/aks/dummy] $ ls -l
[arun@vagrant ~/aks/dummy] $

curl -v https://galaxy.ansible.com/asangal/wavefront-ansible/ вроде работает нормально.

Почему я получаю эту ошибку: Failed to get data from the API server (https://galaxy.ansible.com/api/): a bytes-like object is required, not 'str'?


person AKS    schedule 24.01.2017    source источник


Ответы (2)


Ваша роль отлично загружается с Python 2.7.13.

bytes-like object is required, not 'str' связан с Python3, я подозреваю, что у вас все будет хорошо, если вы используете Python 2.x.

person Zlemini    schedule 24.01.2017
comment
Я питон Python 2.7.10, позвольте мне попробовать 2.7.13. Это правда, что мой $ which ansible-galaxy /Library/Frameworks/Python.framework/Versions/3.5/bin/ansible-galaxy ansible / ansible- * находится в указанном выше пути bin. Это действительно сработало, когда мой анзибль не исходил из указанного выше пути. Спасибо. - person AKS; 25.01.2017

Итак, спасибо Злемини. Итак, чтобы уточнить:

Мой анзибль на самом деле исходил из пути Python 3.5. Несмотря на то, что Python по умолчанию был 2.7.10.

[arun@host ~/aks/dummy] $ python --version
Python 2.7.10
[arun@host ~/aks/dummy] $ python3 --version
Python 3.5.2
[arun@host ~/aks/dummy] $ 

[arun@host ~/aks/dummy] $ which ansible-galaxy
/Library/Frameworks/Python.framework/Versions/3.5/bin/ansible-galaxy
[arun@host ~/aks/dummy] $ 

[arun@host ~/aks/dummy] $ which ansible
/Library/Frameworks/Python.framework/Versions/3.5/bin/ansible

Выполняя ту же команду install с другой моей бродячей машины, где ansible фактически исходил с /usr/bin/ansible, команда работала, как ожидалось.

$ ansible-galaxy install asangal.wavefront-ansible -p ~/aks/dummy
- downloading role 'wavefront-ansible', owned by asangal
- downloading role from https://github.com/asangal/wavefront-ansible/archive/master.tar.gz
- extracting asangal.wavefront-ansible to /home/vagrant/dummy/asangal.wavefront-ansible
- asangal.wavefront-ansible was installed successfully
[vagrant@myvagrant ~/aks/dummy] $ ls -l
total 4
drwxrwxr-x. 9 vagrant vagrant 4096 Jan 24 23:16 asangal.wavefront-ansible
person AKS    schedule 24.01.2017