2016-05-05 6 views
0

Ich brauche eine virtuelle Umgebung auf einem Ubuntu 12.04 erstellen und ansible im Innern auf einem anderen laufen (wo ich nichts installieren kann (es gibt keine Internetverbindung)Wie installiere ichsible in virtualenv?

Ich versuchte ansible in virtueller Umgebung zu installieren:.

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 

Aber es ist fehlgeschlagen:

[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. Paket libffi nicht in der pkg-config-Suchpfad gefunden wurde Vielleicht sollten Sie das Verzeichnis mit dem Namen `libffi.pc ' der Umgebungsvariablen PKG_CONFIG_PATH hinzufügen Kein Paket' libffi 'gefunden Paket libffi wurde nicht im pkg-config-Suchpfad gefunden.

Ich installierte libffi-dev: apt-get install libffi-dev

Und ansible doen 'T Arbeit: /root/Venv/ansible_virt_env/bin/ansible ERROR! Unerwartete Ausnahme: jinja2 die vollständige Rückverfolgung war:

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 

Aber jinja2 vorhanden ist:

[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

Das System fehlt 'libffi' oder seine Header-Datei. Ich weiß nicht, wie ich damit umgehen soll, wenn Sie die erforderliche Bibliothek nicht installieren können. –

+0

Danke, ich habe das behoben, aber es schlägt immer noch fehl –

+0

Vielleicht wurde dein virtualenv beschädigt. Versuchen Sie, alles in einem brandneuen virtualenv zu installieren (beginnen Sie mit der Aktualisierung von Pip selbst). –

Antwort

2

Hallo, müssen Sie diese Version installieren: pip paramiko installieren == 1.10 pip installieren Jinja2 == 2.2

0

Für was es wert ist, hatte ich das gleiche Problem mit ansible 2.1.0.0 (über Pip installiert), Jinja 2.8, Paramiko 2.0.1. Das Update auf 2.2.1.0 löste das Problem (was auch zu einem Update von Jinja2 auf 2.8.1 führte).