我是ansible的新手,我正在尝试在一些lxc容器上使用ansible。我的问题是我不想在容器上安装ssh。所以
我所尝试的:
我试着使用这个连接插件,但发现它不能与ansible 2一起使用
在了解chifflier连接插件不起作用后,我尝试使用openstack中的连接插件。
在一些失败的尝试之后,我深入到代码中,我知道插件没有我正在与之交谈的主机是一个容器的信息。(因为代码从未达到这一点)
我当前的设置:{Ansbile host}--ssh}--{vm}--ansible连接插件--{container1}
我的ansible.cfg:
[defaults]
connection_plugins = /home/jkarr/ansible-test/connection_plugins/ssh
inventory = inventory
我的库存:
[hosts]
vm ansible_host=192.168.28.12
[containers]
mailserver physical_host=vm container_name=mailserver
我的组变量:
ansible_host: "{{ physical_hostname }}"
ansible_ssh_extra_args: "{{ container_name }}"
ansible_user: containeruser
container_name: "{{ inventory_hostname }}"
physical_hostname: "{{ hostvars[physical_host]['ansible_host'] }}"
我的测试手册:
- name: Test Playbook
hosts: containers
gather_facts: true
tasks:
- name: testfile
copy:
content: "Test"
dest: /tmp/test
输出为:
fatal: [mailserver]: UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname mailserver: No address associated with hostname\r\n",
"unreachable": true
}
Ansible版本是:2.3。1
那么我做错了什么?有什么建议吗?提前谢谢!
更新1:
基于eric的回答,我现在正在使用此连接插件。我更新了我的库存,它看起来像:
[hosts]
vm ansible_host=192.168.28.12
[containers]
mailserver physical_host=vm ansible_connection=lxc
运行我的剧本后,我采取了:
<192.168.28.12> THIS IS A LOCAL LXC DIR
fatal: [mailserver]: FAILED! => {
"failed": true,
"msg": "192.168.28.12 is not running"
}
这很奇怪,因为192.168。28.12是vm,容器称为mailserver。我还验证了容器是否正在运行。
这也是为什么它说192.168。28.12是否为当地lxc主管?
更新2:
我删除了我的组变量,我的ansible。cfg和playbook中的连接插件,我得到了以下错误:
<mailserver> THIS IS A LOCAL LXC DIR
fatal: [mailserver]: FAILED! => {
"failed": true,
"msg": "mailserver is not running"
}
您应该看看这个lxc连接插件。它可能适合你的需要。
编辑:lxc
连接插件实际上是Ansible的一部分。
只需在库存或组变量中添加ansible\u connection=lxc
。
我正在ubuntu 14.04上试验lxc。为了管理几个lxc实例,我使用python3lxc。使用pyhthon3 lxc,我确实无法克隆现有容器: 相应地, /var/lib/lxc.vanilla_clone没有根基使用 很好。(python3和lxc克隆,两者都是从sudo开始的。)这是python3_lxc中的一个bug或限制,还是我遗漏了什么? 事后思考:使用lxc。容器create需
我一直在尝试在运行debian wheezy的lxc容器中使用libnfc。在尝试了一些东西和库之后,因此证明了lxc方法的合理性,我最终到达了一个我不知道去哪里寻找的地步。 问题是主机看到的是我的usb设备,而不是容器。 我在容器的lxc配置文件中添加了以下内容: 当我在容器上尝试lsusb时,我得到: 鉴于主机给出: 这就是我要找的设备。 令人惊讶的是,容器可以看到设备: 我已经检查了libu
我试图在多台服务器上运行ansible角色,但出现错误: 致命:[192.168.0.10]:无法到达= 我的/etc/ansible/hosts文件如下所示: 我不知道发生了什么-一切看起来都很好-我可以通过SSH登录,但ansible ping返回相同的错误。 详细执行的日志: 你能帮我个忙吗?如果我必须在本地模式(-c local)下使用ansible,那么它是无用的。 我试图删除ansib
我正在尝试使用模块:ping ping远程主机。我的主机文件如下所示: 命令:手动我可以在主机上使用相同的用户A成功地进行ssh,但不能通过ansible 调试日志: 找不到配置文件;使用默认值 加载类型为stdout的最小回调,v2.0 为用户建立SSH连接:userA SSH:EXEC ssh-c-vvv-o strithostkeychecking=no-o kbdinteractiveau
我一直在尝试Linux容器(lxc)。安装后,我尝试创建一个容器。我正在用lxc-1.1开发Ubuntu14.04。1.当我尝试创建新容器时,系统会提示我此错误: lxc create:加载共享库时出错:liblxc。所以1:无法打开共享对象文件:没有此类文件或目录。我们非常感谢您对克服此问题的任何帮助。
我一直在研究LXC容器,我想知道是否可以像普通VPS一样使用LXC容器? 我的意思是; 如何将外部IP地址分配给LXC容器 如何直接ssh到LXC容器中 我是LXC容器的新手,所以请告诉我是否还有其他需要注意的差异。