我的任务看起来像这样
- 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
答案 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文档:(在执行模块的主机上)