ansible.builtin.meta 模块 – 执行 Ansible ‘动作’
注意
此模块是 ansible-core
的一部分,包含在所有 Ansible 安装中。在大多数情况下,即使不指定 collections 关键字,也可以使用短模块名称 meta
。但是,我们建议您使用 完全限定集合名称 (FQCN) ansible.builtin.meta
,以便轻松链接到模块文档,并避免与可能具有相同模块名称的其他集合冲突。
概要
元任务是一种特殊的任务,可以影响 Ansible 内部的执行或状态。
元任务可以在 playbook 中的任何位置使用。
此模块也支持 Windows 目标。
参数
参数 |
注释 |
---|---|
此模块接受自由形式的命令,作为字符串。没有一个名为“free form”的实际选项。请参阅示例!
选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持: 无 |
表示它有一个对应的操作插件,因此选项的某些部分可以在控制器上执行 |
|
支持: 无 |
支持与 |
|
支持: 无 |
可以与 become 关键字一起使用 |
|
支持: 部分 某些子操作会忽略主机循环,有关例外情况,请参见上面每个特定操作的描述 |
强制一个不按主机执行的“全局”任务,这绕过了每个主机的模板化、串行、节流和其他循环考虑因素 条件的工作方式类似于使用 此操作在锁定步骤策略之外不能正常工作 |
|
支持: 部分 大多数子操作都忽略任务循环,有关例外情况,请参见上面每个特定操作的描述 |
这些任务忽略 |
|
支持: 部分 虽然这些操作不会直接修改目标,但它们确实会更改运行中目标的可能状态 |
可以在 check_mode 中运行并返回更改状态预测而无需修改目标,如果不支持,则将跳过该操作。 |
|
支持: 部分 此操作中的大多数选项不使用连接,除了 |
使用目标配置的连接信息在其上执行代码 |
|
支持: 完全 |
这是一个“核心引擎”功能,其实现方式与大多数任务操作不同,因此无法通过插件系统以任何方式覆盖它。 |
|
支持: 无 |
可以与 delegate_to 和相关关键字结合使用 |
|
支持: 无 |
在 diff 模式下,将返回有关已更改内容(或可能需要在 check_mode 中更改的内容)的详细信息 |
|
支持: 部分 只有一些选项支持条件,当它们支持条件时,它们的行为是“绕过主机循环”,从第一个可用的主机获取值 |
该操作不受条件执行的约束,因此它将忽略 |
|
平台: 全部 |
可以对其进行操作的目标操作系统/系列 |
|
支持: 完全 |
允许 “tags” 关键字控制此操作的执行选择 |
|
支持: 无 |
表示此操作是否遵守 until/retry/poll 关键字 |
注意
注意
clear_facts
将会移除使用 ansible.builtin.set_fact 并设置cacheable=True
持久化的 facts,但是不会移除当前运行所创建的当前主机变量。在 Ansible 2.11 之前的版本不支持跳过带有标签的 ansible.builtin.meta 任务。
参见
另请参阅
- ansible.builtin.assert
断言给定的表达式为真。
- ansible.builtin.fail
使用自定义消息失败。
示例
# Example showing flushing handlers on demand, not at end of play
- ansible.builtin.template:
src: new.j2
dest: /etc/config.txt
notify: myhandler
- name: Force all notified handlers to run at this point, not waiting for normal sync points
ansible.builtin.meta: flush_handlers
# Example showing how to refresh inventory during play
- name: Reload inventory, useful with dynamic inventories when play makes changes to the existing hosts
cloud_guest: # this is fake module
name: newhost
state: present
- name: Refresh inventory to ensure new instances exist in inventory
ansible.builtin.meta: refresh_inventory
# Example showing how to clear all existing facts of targeted hosts
- name: Clear gathered facts from all currently targeted hosts
ansible.builtin.meta: clear_facts
# Example showing how to continue using a failed target
- name: Bring host back to play after failure
ansible.builtin.copy:
src: file
dest: /etc/file
remote_user: imightnothavepermission
- ansible.builtin.meta: clear_host_errors
# Example showing how to reset an existing connection
- ansible.builtin.user:
name: '{{ ansible_user }}'
groups: input
- name: Reset ssh connection to allow user changes to affect 'current login user'
ansible.builtin.meta: reset_connection
# Example showing how to end the play for specific targets
- name: End the play for hosts that run CentOS 6
ansible.builtin.meta: end_host
when:
- ansible_distribution == 'CentOS'
- ansible_distribution_major_version == '6'