我正在运行以下命令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
,为什么它抱怨没有解析库存并且“提供的主机列表为空”?
如何删除这些警告? (如果可能的话,不要仅仅压制它们)
这些只是警告,告诉您:
- 您也没有提供任何库存文件
-i
选项,在你的ansible.cfg
或默认情况下/etc/ansible/hosts
(因此没有被解析并且它是空的)
- 您的库存是空的,因此只有隐式本地主机 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(使用前将#替换为@)