当前位置: 首页 > 知识库问答 >
问题:

使用Ansible的SSH较少的LXC容器

孔茂
2023-03-14

我是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"
}

共有1个答案

郏稳
2023-03-14

您应该看看这个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容器的新手,所以请告诉我是否还有其他需要注意的差异。