2016-05-05 2 views
0

мне нужно создать некоторую виртуальную среду на одном Ubuntu 12.04 и запустить анзибль внутри него на другом (где я ничего не могу установить (нет подключения к Интернету)Как установить доступный в virtualenv?

Я попытался установить анзибль в виртуальной среде:.

export venv_name="ansible_virt_env" 
mkdir ~/venv && cd ~/venv 
echo "Virtualenv ${venv_name} directory" > README 
virtualenv --no-site-packages --prompt="ansible" ${venv_name:-venv} 
. ~/venv/${venv_name:-venv}/bin/activate 
~/venv/${venv_name:-venv}/bin/pip install -U pip 
~/venv/${venv_name:-venv}/bin/pip install -U setuptools 
~/venv/${venv_name:-venv}/bin/pip install ansible 

Но это не удалось:

[email protected][RDE1.3]:~/venv# ~/venv/${venv_name:-venv}/bin/pip install -U setuptools 
Collecting setuptools  

/root/venv/ansible_virt_env/include/site/python2.7/cffi:. libffi пакет не был найден в PKG-конфигурации пути поиска Возможно, вам нужно добавить каталог, содержащий `libffi.pc ' , к переменной окружения PKG_CONFIG_PATH Пакет libffi не найден Пакет libffi не найден в пути поиска pkg-config.

Я установил libffi-dev: APT-получить установку libffi-DEV

И анзибль doen't работы: /корень/venv/ansible_virt_env/bin/анзибль ОШИБКА! Неожиданное исключение: jinja2 полный отслеживающий был:

Traceback (most recent call last): 
    File "/root/venv/ansible_virt_env/bin/ansible", line 75, in <module> 
    from ansible.cli.adhoc import AdHocCLI as mycli 
    File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/ansible/cli/adhoc.py", line 28, in <module> 
    from ansible.executor.task_queue_manager import TaskQueueManager 
    File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/ansible/executor/task_queue_manager.py", line 28, in <module> 
    from ansible.executor.play_iterator import PlayIterator 
    File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/ansible/executor/play_iterator.py", line 29, in <module> 
    from ansible.playbook.block import Block 
    File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/ansible/playbook/__init__.py", line 25, in <module> 
    from ansible.playbook.play import Play 
    File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/ansible/playbook/play.py", line 27, in <module> 
    from ansible.playbook.base import Base 
    File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/ansible/playbook/base.py", line 35, in <module> 
    from ansible.parsing.dataloader import DataLoader 
    File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/ansible/parsing/dataloader.py", line 32, in <module> 
    from ansible.parsing.vault import VaultLib 
    File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/ansible/parsing/vault/__init__.py", line 67, in <module> 
    from cryptography.hazmat.primitives.hashes import SHA256 as c_SHA256 
    File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/cryptography/hazmat/primitives/hashes.py", line 15, in <module> 
    from cryptography.hazmat.backends.interfaces import HashBackend 
    File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/cryptography/hazmat/backends/__init__.py", line 7, in <module> 
    import pkg_resources 
    File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 2707, in <module> 
    working_set.require(__requires__) 
    File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 686, in require 
    needed = self.resolve(parse_requirements(requirements)) 
    File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 584, in resolve 
    raise DistributionNotFound(req) 
DistributionNotFound: jinja2 

Но jinja2 присутствует:

[email protected][RDE1.3]:~/venv# /root/venv/ansible_virt_env/bin/python 
Python 2.7.3 (default, Dec 18 2014, 19:10:20) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import jinja2 
>>> 
[email protected][RDE1.3]:~/venv# /root/venv/ansible_virt_env/bin/pip list 
ansible (2.0.2.0) 
cffi (1.6.0) 
cryptography (1.3.2) 
distribute (0.6.24) 
enum34 (1.1.4) 
idna (2.1) 
ipaddress (1.0.16) 
Jinja2 (2.8) 
MarkupSafe (0.23) 
paramiko (2.0.0) 
pip (8.1.1) 
pyasn1 (0.1.9) 
pycparser (2.14) 
pycrypto (2.6.1) 
PyYAML (3.11) 
setuptools (21.0.0) 
six (1.10.0) 
+0

В системе отсутствует 'libffi' или его заголовочный файл. Я не знаю, как с этим справиться, если вы не можете установить нужную библиотеку. –

+0

Спасибо, я исправил это, но все равно не получилось –

+0

Возможно, ваш virtualenv поврежден. Попробуйте установить все в совершенно новом virtualenv (начать с самого обновления самого пипса). –

ответ

2

Привет, вам нужно установить эту версию: пункт установить paramiko == 1,10 пункт установить jinja2 == 2.2

0

Для чего это стоит, у меня была та же проблема с доступным 2.1.0.0 (установленным через pip), Jinja 2.8, paramiko 2.0.1. Обновление, доступное для версии 2.2.1.0, решило проблему (в результате также было добавлено обновление Jinja2 до 2.8.1).