Ansible 发出有关 localhost 的警告

2023-12-25

我正在运行以下命令ansible剧本

- hosts: localhost
  connection: local
  vars_files:
    - vars/config_values.yaml

  gather_facts: no

  tasks:
    - name: Set correct project in gcloud config
      shell: "gcloud config set project {{ google_project_name }}"

这会产生以下警告:

[警告]:没有解析清单,只有隐式本地主机可用

[警告]:如果主机列表为空,则只有 localhost 可用。请注意,隐式 localhost 与“all”不匹配

鉴于我明确表示它将反对host: localhost,为什么它抱怨没有解析库存并且“提供的主机列表为空”?

如何删除这些警告? (如果可能的话,不要仅仅压制它们)


这些只是警告,告诉您:

  1. 您也没有提供任何库存文件-i选项,在你的ansible.cfg或默认情况下/etc/ansible/hosts(因此没有被解析并且它是空的)
  2. 您的库存是空的,因此只有隐式本地主机 https://docs.ansible.com/ansible/latest/inventory/implicit_localhost.html可用(提醒您它与all group)

补充笔记

hosts: localhost在上面的剧本示例中是您的游戏目标。它可能是其他主机或组(或更复杂的pattern https://docs.ansible.com/ansible/latest/user_guide/intro_patterns.html)。目标主机必须存在于要管理的清单中。localhost总是存在至少作为隐式本地机 https://docs.ansible.com/ansible/latest/inventory/implicit_localhost.html.

你可以阅读Ansible 的库存简介 https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html了解更多信息


虽然这两个警告看起来有点多余,但它们提供了不同的信息(即“根本没有库存”与“库存只是空的”)。因此它们由不同的配置选项控制

  • 自 ansible v2.6 起,第二个警告可以通过以下命令消除:LOCALHOST_WARNING option https://docs.ansible.com/ansible/latest/reference_appendices/config.html#localhost-warning
  • 自 ansible-core v2.14 起,第一个警告可以被静音INVENTORY_UNPARSED_WARNING option https://docs.ansible.com/ansible/latest/reference_appendices/config.html#inventory-unparsed-warning

根据记录,第一个功能是由拉取请求 https://github.com/ansible/ansible/pull/37871/files提议者@larsk /users/147356/larsks,一个 stackoverflow 用户


因此,如果您打算运行主要针对 localhost 的 playbook,而不提供任何要解析的清单,您可以将两个警告静音,如以下一行所示(请参阅上面的链接以了解设置这些变量的所有选项)

ANSIBLE_LOCALHOST_WARNING=False \
ANSIBLE_INVENTORY_UNPARSED_WARNING=False \
ansible-playbook your_localhost_playbook.yml

如果您想使其永久化,您可以将以下两行添加到您的.bashrc(或您使用的 shell 的等效文件):

# Silence absent and/or empty Ansible inventory warnings
export ANSIBLE_LOCALHOST_WARNING=False
export ANSIBLE_INVENTORY_UNPARSED_WARNING=False

请注意,如上面链接中所述,可以使用以下命令为各个项目关闭这些功能ansible.cfg项目根目录下的文件:

[defaults]
localhost_warning=False

[inventory]
inventory_unparsed_warning=False
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ansible 发出有关 localhost 的警告 的相关文章

随机推荐