gpt4 book ai didi

docker - ansible_default_ipv4.address 在 docker ubuntu 中未定义

转载 作者:IT老高 更新时间:2023-10-28 21:43:31 25 4
gpt4 key购买 nike

我正在尝试运行一个简单的 ansible 操作,它应该更新/etc/hosts 中的一行:

- hosts: localhost
become: true
vars:
master_host: "ansible-master"
tasks:
- hostname: name="{{master_host}}"
- name: Add master host to /etc/hosts
lineinfile: dest=/etc/hosts line="{{ ansible_default_ipv4.address}} {{master_host}}"
regexp=".*{{master_host}}\s*$"

当我使用 ubuntu 16 在 vi​​rtualbox 中运行它时,它运行良好。

当我在我的 ubuntu 16 Docker 容器中运行它时,我得到:

fatal: [localhost]: FAILED! => {"failed": true, "msg": "the field 'args' has an invalid value, which appears to include a variable that is undefined. The error was: 'ansible_default_ipv4' is undefined\n\nThe error appears to have been in '/home/user/ansible/manage-ansible-master.yml': line 11, column 5, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n - hostname: name=\"{{master_host}}\"\n - name: Add master host to /etc/hosts\n
^ here\n"}

ansible 尝试从哪里提取本地 ip,为什么不能在 docker 中这样做?

顺便说一句,我已经在我的 docker 容器中安装了 net-tools,它有一个 eth0 ip。

在 virtualbox 和 docker 中,我在/etc/hosts 中有一行

ansible-master 127.0.1.1

更新:

我跑

ansible all --connection=local -m setup | less

在 virtualbox ubuntu 和 Docker ubuntu 上。

在 Virtualbox 上,我得到了很多在 Docker 上没有的与网络相关的信息:

"ansible_facts": {
"ansible_all_ipv4_addresses": [
<ip>,
<another ip>
],
"ansible_all_ipv6_addresses": [
<ipv6>,
<another ipv6>
],

我也在 virtualbox 中得到

 "ansible_default_ipv4": {
"address": <value>,
"alias": <value>,
"broadcast": <value>,
"gateway": <value>,
"interface": <value>,
"macaddress": <value>,
"mtu": <value>,
"netmask": <value>,
"network": <value>,
"type": <value>
},

这些都没有出现在 Docker 中。

最佳答案

我在使用 Fedora 时也遇到过类似的问题;解决方案是安装提供“ip”命令的软件包(用于生成您要查找的事实)。对于 Fedora 'dnf install iproute'。

关于docker - ansible_default_ipv4.address 在 docker ubuntu 中未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41469740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com