Сбой 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'
?
2 ответа
Ваша роль отлично загружается для меня с Python 2.7.13.
bytes-like object is required, not 'str'
это связано с Python3, я подозреваю, что вы должны быть в порядке, если вы используете Python 2.x.
Итак, спасибо Злемини. Итак, чтобы уточнить:
На самом деле мой ответ поступил с пути 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