Ansible错误:lxc模块不可导入。检查要求

时间:2015-08-17 13:30:21

标签: ansible devops

我的任务看起来像这样

- name: Create a started container
    lxc_container:
      name: test-container-started
      container_log: true
      template: ubuntu
      state: started
      template_options: --release trusty

我收到以下错误:

> TASK: [lxc | Create a started container]
> **************************************  failed: [localhost] => {"failed": true, "parsed": false}
> BECOME-SUCCESS-azsyqtknxvlowmknianyqnmdhuggnanw failed=True msg='The
> lxc module is not importable. Check the requirements.' The lxc module
> is not importable. Check the requirements.
> 
> 
> FATAL: all hosts have already failed -- aborting

4 个答案:

答案 0 :(得分:4)

我刚遇到同样的问题,我通过确保目标计算机上的pip install lxc-python2系统范围解决了这个问题。

在我的情况下,目标是通过ansible_connection=local主机的localhost,我认为我可以使用pip: name=lxc-python2,但是已安装到我当前的virtualenv中。

答案 1 :(得分:3)

如果您使用Debian或Ubuntu作为主机系统,则可以使用python-lxc个包。安装它的最佳方法当然是Ansible,就在lxc_container任务之前:

  tasks:

    - name: Install provisioning dependencies
      apt: name=python-lxc

    - name: Create docker1.lxc container
      lxc_container:
        name: docker1
        ...

答案 2 :(得分:0)

lxc_container相对较新。 要运行lxc_container模块,您需要确保在目标主机上安装了pip包,以及lxc。

e.g

pip install lxc-python2
apt-get install lxc

答案 3 :(得分:-1)

问题的正确答案是添加: become: yes 就在lxc_container -module部分之前,以便获得root权限以在目标主机上运行lxc-commands。

绝对不需要将任何python2-lxc -support lib安装到目标主机以使用lxc_container模块,这需要此类支持仅在管理主机中可用。只有目标主机中的python2必须可用于当前的Ansible版本。

有关lxc-container module的要求的更多信息,请参阅ansible文档:(在执行模块的主机上)