2016-05-05 77 views
0

我需要一個Ubuntu的12.04創建一些虛擬的環境和裏面的另一個運行ansible(在這裏我不能安裝任何東西(沒有互聯網連接)如何在virtualenv中安裝ansible?

我試圖安裝Ansible虛擬環境中。

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' 未在pkg-config搜索路徑中找到軟件包libffi。

我安裝libffi-dev: 的apt-get安裝libffi-dev的

而且ansible doen't工作: /根/ VENV/ansible_virt_env /斌/ ansible 錯誤!意外的異常: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中安裝所有內容(首先升級pip本身)。 –

回答

2

嗨,你需要安裝此版本: PIP安裝的paramiko == 1.10 PIP安裝Jinja2的== 2.2

0

爲什麼它的價值,我有同樣的問題與安裝2.1.0.0(通過點安裝),Jinja 2.8,paramiko 2.0.1。 更新ansible到2.2.1.0解決了這個問題(導致Jinja2更新到2.8.1)。