Проблемы с установкой пакетов python с модулем Ansible pip
Я сталкиваюсь с некоторыми интересными вуду, когда пытаюсь установить пакеты python с Ansible
, используя его модуль pip.
Вот так... Если я попробую это:
$ sudo pip install sh
Установка пакета sh
проходит успешно без каких-либо ошибок.
Вот это хорошая вещь.
Я отменю это:
$ sudo pip uninstall sh
Следующее, что я попробую, это использовать Ansible
:
$ ansible smith pip -a 'name=sh state=present extra_args="-i http://host:port/simple"' -i inventory
Это не удается. Сообщение об ошибке выглядит следующим образом (простите меня, но я работаю под брандмауэрами без доступа в интернет, поэтому мне пришлось ввести его. Я фильтрованная вещь, которую я не думал, что будет необходимо - если что-то все еще отсутствует, скажите мне, и я обновлю свой вопрос):
smith | FAILED >> {
"cmd" "/usr/local/bin/pip install -i http://host:port/simple sh",
...
msg: stdout: Collecting sh
Downloading http://host:port/packages/sh-1.09.tar.gz
...
running install
running build
running build_py
creating build
creating build/lib.linux-i686-2.7
copying sh.py -> build/lib.linux-i686-2.7
running install_lib
copying buikd/lib.linux-i686-2.7/sh.py -> /usr/local/lib/python2.7/dist-packages
error: /usr/local/lib/python2.7/dist-packages/sh.py: Permission denied
---------
:stderr: Command "/usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-zH3cTB/sh/setup.py' ... -- compile: failed with error code 1 in /tmp/pip-build-zH3cTB/sh
Естественно, я добавил к последней команде --sudo
:
$ ansible smith -m pip -a 'name=sh state=present extra_args="-i http://host:port/simple"' -i inventory --sudo
На этот раз я потерял дар речи. Он снова потерпел неудачу:
smith | FAILED >> {
"cmd" "/usr/local/bin/pip install -i http://host:port/simple sh",
...
msg: stdout: Collecting sh
Could not find a version that satisfied the requirement (from versions: ) No matching distribution found for sh
Очень странно. Это относится ко всем пакетам python, которые я пытаюсь установить.
Дополнительная информация:
У нас есть сервер pypi, куда мы помещаем все наши пакеты для установки.
Он находится под host:port/simple
Также мы используем это pip.conf
файл:
[global]
index-url = http://host:port/simple
trusted-host = host
Заранее благодарю всех помощников.1 ответ:
Хорошо, я понял, что происходит.
Проблема была в том, что мой Пип.conf файл был только для моего пользователя (под
/home/user/.pip/pip.conf
)Я переместил его в /etc / pip.конф и проблема решена.
Альтернативное решение wast, чтобы добавить к аргументам
--trusted-host host
Я работал со старой версией pip очень долго, и когда я обновился до последней версии, я забыл обновить аргументы.Ура!