使用Ansible的SSH较少的LXC容器
我是ansible的新手,我正在尝试在一些lxc容器上使用ansible。 我的问题是我不想在容器上安装ssh。所以 我尝试的是: 我尝试使用此连接,但发现它与ansible 2不兼容。使用Ansible的SSH较少的LXC容器,ansible,lxc,Ansible,Lxc,我是ansible的新手,我正在尝试在一些lxc容器上使用ansible。 我的问题是我不想在容器上安装ssh。所以 我尝试的是: 我尝试使用此连接,但发现它与ansible 2不兼容。 在了解chifflier连接插件不起作用后,我尝试使用来自的连接插件 在一些失败的尝试之后,我深入到代码中,我明白了 插件没有我正在与之交谈的主机是容器的信息。(因为代码从未到达此位置) 我当前的设置: {Ansbile host}--| ssh |--{vm}--| ansible连接插件|--{contai
在了解chifflier连接插件不起作用后,我尝试使用来自的连接插件 在一些失败的尝试之后,我深入到代码中,我明白了 插件没有我正在与之交谈的主机是容器的信息。(因为代码从未到达此位置) 我当前的设置: {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.0
那么我做错了什么?有什么建议吗?
提前谢谢
更新1:基于此,我现在正在使用此连接。 我更新了我的库存,它看起来像:
[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"
}
这是一个本地LXC目录
致命:[mailserver]:失败!=>{
“失败”:对,
“msg”:“192.168.28.12未运行”
}
这很奇怪,因为192.168.28.12是vm,容器名为mailserver。我还验证了容器是否正在运行
还有为什么它说192.168.28.12是本地lxc目录
更新2:
我从playbook中删除了我的group_vars、ansible.cfg和连接插件,我得到了以下错误:
<mailserver> THIS IS A LOCAL LXC DIR
fatal: [mailserver]: FAILED! => {
"failed": true,
"msg": "mailserver is not running"
}
这是一个本地LXC目录
致命:[mailserver]:失败!=>{
“失败”:对,
“msg”:“邮件服务器未运行”
}
你应该看看这个。它可能适合你的需要
编辑:连接插件实际上是Ansible的一部分
只需在您的清单或组变量中添加
ansible\u connection=lxc
。您应该看看这个。它可能适合你的需要
编辑:连接插件实际上是Ansible的一部分
只需在您的资源清册或组变量中添加
ansible\u connection=lxc
。错误表明主机邮件服务器未在ansible资源清册文件中分配IP。您可以设置主机的IP并重试吗?@Tejaswi我试图将“mailserver”更改为容器的指定IP,但我收到了相同的错误。@jkarr您的组变量
正在覆盖ansible\u主机
。你能尝试一个没有组变量的简单的调试吗?@EricCitaire在删除组变量、连接插件文件夹和ansible.cfg后,我遇到了类似的错误,请参见更新的问题。错误是主机邮件服务器没有在ansible清单文件中分配IP。您可以设置主机的IP并重试吗?@Tejaswi我试图将“mailserver”更改为容器的指定IP,但我收到了相同的错误。@jkarr您的组变量
正在覆盖ansible\u主机
。你能尝试一个没有组变量的简单调试吗?@EricCitaire在删除组变量、连接插件文件夹和ansible.cfg后,我遇到了类似的错误,请参见更新的问题。谢谢!看来你推荐的连接插件让我更进一步了。有关我的“新问题”的更多信息,请参见我问题中的更新1。谢谢!看来你推荐的连接插件让我更进一步了。有关我的“新问题”的更多信息,请参见我问题中的更新1。