Ansible facts详解
Ansible是一个系列文章,我会尽量以通俗易懂、诙谐幽默的总结方式给大家呈现这些枯燥的知识点,让学习变的有趣一些。
Ansible系列博文直达链接:Ansible入门系列
前言
如果你跟着前面的文章在自己的测试环境进行了操作的话,你会发现在Ansible执行完成后,在输出内容中都包含以下这么一项:
TASK [Gathering Facts] ****************************************
ok: [192.168.1.3]
从内容来看,这是执行了一个名为Gathering Facts
的TASK,但是即使在我们的命令中或者YAML中没有定义这个TASK,也会执行这个任务,这是什么道理?下面我就带着大家对Ansible中的facts一探究竟。
Ansible facts简介
大家肯定疑问,这个facts是个啥?
facts组件是Ansible用于采集被管理机器设备信息的一个功能,采集的机器设备信息主要包含IP地址,操作系统,以太网设备,mac 地址,时间/日期相关数据,硬件信息等。
那话又说回来了,采集这些信息有什么用呢?有的时候我们需要根据远程主机的信息作为执行条件操作,例如,根据远程服务器使用的操作系统版本,可以安装不同版本的软件包;或者也可以显示与每台远程计算机相关的一些信息,例如每台设备上有多少RAM可用。
所以,在一些业务场景中,facts对我们是很有帮助的,省去了我们好多工作,大大提高了工作效率。
Ansible facts用法
我们可以使用setup
模块获取被管理机器的所有facts信息,可以使用filter
来查看指定的信息。setup
模块获取的整个facts信息被包装在一个JSON格式的数据结构中,ansible_facts
是最外层的值。我们可以通过以下Ansible Ad-Hoc命令查看facts信息:
ansible server1 -m setup
由于输出内容实在太多,这里只贴出部分内容:
192.168.1.3 | SUCCESS => {
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"192.168.1.3"
],
"ansible_all_ipv6_addresses": [
"2409:8a10:72:1c10:c59e:af39:7c72:6afb",
"fe80::7107:62de:8cf8:db00"
],
"ansible_apparmor": {
"status": "disabled"
},
"ansible_architecture": "x86_64",
"ansible_bios_date": "12/01/2006",
"ansible_bios_version": "VirtualBox",
"ansible_cmdline": {
"BOOT_IMAGE": "/vmlinuz-3.10.0-957.el7.x86_64",
"LANG": "en_US.UTF-8",
"crashkernel": "auto",
"quiet": true,
"rd.lvm.lv": "centos/swap",
"rhgb": true,
"ro": true,
"root": "/dev/mapper/centos-root"
},
......
由于输出的内容实在是太多了,我们可以使用filter
参数来查看指定的信息,比如这样:
ansible server1 -m setup -a 'filter=ansible_all_ipv4_addresses'
输出内容如下:
192.168.1.3 | SUCCESS => {
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"192.168.1.3"
]
},
"changed": false
}
到这里,话又说回来!我们没有配置Gathering Facts
的TASK,但是依然自动的就执行了这个任务,这个默认是在哪里配置的呢?
Ansible facts配置
在Ansible的配置文件中,关于facts的重要配置项有以下几个:
gathering
:facts的开关,默认是开启的;有以下三个取值:smart
:开启facts信息收集,但是会优先使用facts缓存信息,可以使用gather_facts: False
禁用facts收集;implicit
:开启facts信息收集,要禁止收集,必须使用gather_facts: False
;explicit
:关闭facts信息收集,要显式收集,必须使用gather_facts: Ture
。
fact_caching
:缓存facts信息的方式;可以配置成jsonfile
或者redis
;fact_caching_connection
:缓存插件的配置,针对不同的fact_caching
方式,取值含义则不同:- 如果
fact_caching
为jsonfile
,则此处应配置存储缓存文件的目录; - 如果
fact_caching
为redis
,则此处应按照host:port:database的格式配置redis的信息。
- 如果
gather_timeout
:收集超时时间,默认为86400;fact_caching_timeout
:设置facts缓存的过期时间,默认是86400秒。
总结
这篇文章对Ansible facts进行了一些简单的总结,在后面的文章中,还会涉及到facts的一些内容,希望通过这篇文章,大家能明白Ansible facts的一些简单用法和配置即可!希望对大家有帮助!
果冻想,认真玩技术的地方。
2019年10月5日,于内蒙古呼和浩特。
Ansible facts详解的更多相关文章
- Ansible配置详解
目录 Ansible配置详解 参考 配置优先级 配置参数说明 Ansible配置详解
- Ansible配置文件ansible.cfg详解
Ansible是一个系列文章,我会尽量以通俗易懂.诙谐幽默的总结方式给大家呈现这些枯燥的知识点,让学习变的有趣一些. Ansible系列博文直达链接:Ansible入门系列 前言 此时外面小雨淅淅沥沥 ...
- ansible 变量详解
定义变量的方法 1. 主机变量,在hosts文件中设置变量, [atlanta] host1 http_port= maxRequestsPerChild= host2 http_port= maxR ...
- ansible playbook详解
ansible playbook是由yml语法书写,结构清晰,可读性强,所以必须掌握yml基础语法 语法 描述 缩进 YAML使用固定的缩进风格表示层级结构,每个缩进由两个空格组成,不能使用tabs键 ...
- ansible配置文件详解
# ansible配置文件配置 配置项介绍 , 配置文件ansible.cfg, 运行playbook时,默认时在yaml文件所在路径寻找,然后再去/etc/ansible/下寻找 [defaults ...
- 2、Ansible配置文件详解
0.配置文件 两个核心文件:ansible.cfg和hosts文件,默认都存放在/etc/ansible目录下. ansible.cfg:主要设置一些ansible初始化的信息,比如日志存放路径.模块 ...
- Ansible 配置文件详解
# config file for ansible -- http://ansible.com/ # ============================================== # ...
- ansible 配置详解
ansible 安装方式 ansible安装常用两种方式,yum安装和pip程序安装.下面我们来详细介绍一下这两种安装方式. 使用 pip(python的包管理模块)安装 首先,我们需要安装一个pyt ...
- Ansible Playbook 详解
一.playbook 的简单使用 1.创建文件实例 (1)编辑配置文件 [root@tiejiangSRC1 ~]# cd /etc/ansible/ [root@tiejiangSRC1 ansib ...
随机推荐
- vue实例中created、mounted以及其他类型说明
生命周期图示(图片来自coderwhy老师): 每个 Vue 实例在被创建之前都要经过一系列的初始化过程.例如,实例需要配置数据观测(data observer).编译模版.挂载实例到 DOM ,然后 ...
- HttpServletRequest 和 HttpServletResponse详解
用HttpServletRequest,现在整理如下,以便以后查阅 请求与响应相关的类和接口非常多,下表是主要的与请求和接口相关的类以及接口. 主要的与请求和接口相关的类及接口 方 法 说 ...
- Typora + Powershell/bash + Git搭建自己的笔记
网上都说什么onenote,evernote,ant等笔记.个人感觉这些都不算太好,还是自己用简易东西搭建一个笔记. 个人推荐使用typora写笔记. 上面既有文件目录,还能通过模糊搜索. 然后需要p ...
- bcdedit 替代easybcd 编辑grub
bcdedit这个命令是win7下,继续安装xubuntu时遇到的.当时xubuntu的语言设置为en-us,时区改为HK,可是仍有很多不太适应的地方.于是,删了xubuntu,重装它.同时,grub ...
- 视口viewport
一.viewport 1. 何为视口? 视口是浏览器显示网页的矩形区域. 2. 默认视口:模拟一个大约1000像素宽的视口. 理想视口:因设备.操作系统.浏览器而异,一般而言,手机宽带大约在300-5 ...
- windows10安全及性能优化
一.关闭一些服务. Google 更新服务 (gupdate) Google 更新服务 (gupdatem) HomeGroupListener HomeGroupProvider Xbox Live ...
- java中String转换成json,json转换成String
前置添加pom <!-- 配置gson --> <dependency> <groupId>com.google.code.gson</groupId> ...
- echarts的时间轴的提示内容写在轴下方
echarts的时间轴的提示内容写在轴下方 在echarts中横坐标的拖动轴dataZone的提示内容在两端,并且没有相关配置让其显示在轴下方或者其他位置. 解决方式: 在图标下方添加dom并且监听拖 ...
- Linux 比较常用的命令
#磁盘空间 df -h 显示已经挂载的分区列表 du -sh [file] 估算当前使用磁盘空间 du -sk * | sort -rn 以容量大小递减排序 文件搜索 find find [file_ ...
- VNC CentOS 7 远程工具,VNC CentOS 7 远程工具推荐!
IIS7服务器管理工具是一款能够在Windows和Linux系统下进行VNC使用的软件!它能够成为VNC的客户端,帮助操作者完成VNC的相关命令!同时,它还能够作为FTP的操作客户端,实现FTP的传输 ...