-
元任务是一种特殊的任务,它可以影响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的逐主机变体。导致当前主机的播放结束,而不会使其失败。
|
- template:
src: new.j2
dest: /etc/config.txt
notify: myhandler
- name: 强制所有已通知的处理程序在此时运行,而不是等待正常的同步点
meta: flush_handlers
- name: Reload inventory, useful with dynamic inventories when play makes changes to the existing hosts
cloud_guest:
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
- 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...