meta模块 – 执行Ansible的“actions”

  • 元任务是一种特殊的任务,它可以影响Ansible的内部执行或状态。
  • 元任务可以在剧本的任何地方使用。
  • Windows目标也支持此模块。
参数 选项/默认值 描述
free_form
required
· clear_facts
· clear_host_errors
· end_host
· end_play
· flush_handlers
· noop
· refresh_inventory
· reset_connection
这个模块接受一个free_form的命令,作为字符串。实际上并没有一个叫做“free_form”的选项。参见示例!
flush_handlers使Ansible运行任何已经被通知的处理程序任务。Ansible在某些点内部插入这些任务,隐式触发处理程序运行(在pre/post任务之后,最终角色执行之后,以及play的主要任务部分)。
refresh_inventory(在Ansible 2.0中添加)强制重新加载库存,这在动态库存脚本的情况下意味着它们将被重新执行。如果动态库存脚本使用缓存,Ansible无法知道这一点,也没有办法刷新它(你可以禁用缓存,或者,如果可用的特定库存数据源(例如aws),你可以使用库存插件而不是库存脚本)。当创建了额外的主机并且用户希望使用它们而不是使用add_host模块时,这主要是有用的。
noop (Ansible 2.0中添加的)这实际上“什么都不做”。本品主要内用,不建议一般使用。
clear_facts(在Ansible 2.1中添加的)导致在剧的主机列表中指定的主机收集的事实被清除,包括事实缓存。
clear_host_errors(在Ansible 2.1中添加)从播放的主机列表中指定的主机中清除失败状态(如果有的话)。
end_play(在Ansible 2.2中添加)导致播放结束,而不会使主机失败。注意,这将影响所有主机。
reset_connection (Ansible 2.3中添加的)中断一个持久连接(即ssh + control persist)
end_host(在Ansible 2.8中添加)是end_play的逐主机变体。导致当前主机的播放结束,而不会使其失败。
# 示例显示按需刷新处理程序,而不是在play结束时
- template:
    src: new.j2
    dest: /etc/config.txt
  notify: myhandler
- name: 强制所有已通知的处理程序在此时运行,而不是等待正常的同步点
  meta: flush_handlers
# 演示如何在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: 刷新库存以确保库存中存在新实例
  meta: refresh_inventory
# 示例显示如何清除目标主机的所有现有事实
- name: Clear gathered facts from all currently targeted hosts
  meta: clear_facts
# 显示如何继续使用失败的目标的示例
- name: Bring host back to play after failure
  copy:
    src: file
    dest: /etc/file
  remote_user: imightnothavepermission
- meta: clear_host_errors
# 显示如何重置现有连接的示例
- user:
    name: '{{ ansible_user }}'
    groups: input
- name: Reset ssh connection to allow user changes to affect 'current login user'
  meta: reset_connection
# 演示如何为特定目标结束play的例子
- name: End the play for hosts that run CentOS 6
  meta: end_host
  when:
  - ansible_distribution == 'CentOS'
  - ansible_distribution_major_version == '6'
 

官方文档:https://docs.ansible.com/ansible/2.9/modules/meta_module.html#meta-module

模块Ansible执行的最小单位,可以是由Python编写,也可以是Shell编写,也可以是由其他语言编写。 一、ping模块 测试连接可通性,没有参数。通的话返回pong。 1、使用示例 ansible all -m ping 可通,返回pong如下图 不通,返回如下图 二、setup模块 主要用于获取主机信息,在playbooks里经常会用到的一个参数gather_facts就与该模...
如果要引用ansible plugins 中的 action 或者 module,只需要在tasks 中写入 名称,参数即可。 如果当action 和 module 中出现了重名的文件,ansible 如何选择。 ansible 只会执行 action 中的。 但是,如果代码逻辑不同,需要调用怎么办 在action 中如何调用 module 中的文件。
1 meta 目录表示 role角色的属性 如果你想要赋予这个角色一些元数据,则可以将元数据写入到meta/main.yml文件中,这些元数据用于描述的相关信息,比如作者信息,角色主要作用等等,你也可以在meta/main.yml文件中定义这个角色依赖哪些其它角色,或者改变角色的默认调用设定。 2 meta: flush_handlers 表示立即执行task对应的handler,因...
Ansible 是一个系统自动化工具,可以用来做系统配管理,批量对远程主机执行操作指令。我自己使用 Ansible 也有一段时间了,这里总结了一些使用 Ansible 过程中使用的心得与大家分享。 Ansible...
出处:https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html?highlight=meta 参考:https://blog.csdn.net/liuxiangke0210/article/details/80... playbook 剧本是由一个或多个"play"组成的列表 play的主要功能在于将预定义的一组主机,装扮成事先通过ansible中的task定义好的角色。Task实 际是调用ansible的一个module,将多个play组织在一个playbook中,即可以让它们联合起来,按 事先编排的机制执行预定义的动作 Playbook 文件是采用YAML语言编写的 处理YAML信息 为了最大限度地提高编程语言和实现之间的数据可移植性,YAML 加载自己的配置文件,默认/etc/ansible/ansible.cfg 加载自己对应的模块文件,如command 通过ansible模块命令生成对应的临时py文件,并将该文件传输至远程服务器的对应执行用户$HOME/.ansible/tmp/ansible-tmp-数字/xxx.py文件 给文件+x执行 执行并返回结果 删除临时py文件,sleep 0退出 ansible执行状态 root@ubuntu20:~# grep -A 14 '\[colors\]' / Linux轻量级自动运维工具-Ansible浅析 - ~微风~ - 51CTO技术博客http://weiweidefeng.blog.51cto.com/1957995/1895261 Ansible是什么? ansible架构图 ansible特性 模块化:调用特定的模块,完成特定的任务; 基于Python语言研发,由P...