Func 的 Facts 支持
Facts 是一个非常有用的组件,其功能类似于 Saltstack 的 grains、Ansible 的 Facts,实现获取远程主机的系统信息,以便在对目标主机操作时作为条件进行过滤,产生差异。Func 的 Facts 支持通过 API 来扩展用户自己的属性。Facts 由两部分组成,一为模块(module),另为方法(method),可通过 list_fact_modules、list_fact_methods 方法来查看当前支持的模块与方法的清单,如图11-9所示。
Figure 1. 图11-9 查看主机支持模块及方法
在使用 Facts 时,我们关注它的方法(func "*" call fact list_fact_methods 显示的清单)即可,可通过命令行调用 Facts 的 call_fact 方法查看所有主机的操作系统信息,具体见图11-10。
Figure 2. 图11-10 查看主机操作系统信息
Fact 支持 and 与 or 作为条件表达式连接操作符,下面详细介绍。
(1) and表达式—filter
语法:
--filter "keyword[operator]value,keyword2[operator]value2"
--filter "value in keyword,value ini keyword"
示例:所有满足内核(kernel)版本大于或等于2.6,并且操作系统信息包含CentOS 的目标主机运行 uptime 命令,如图11-11所示。
Figure 3. 图11-11 根据fact条件(and)过滤主机
(2) or表达式—filteror
语法:
--filteror "keyword[operator]value,keyword2[operator]value2"
--filteror "value in keyword,value ini keyword"
示例:所有满足内核(kernel)版本大于或等于 2.6,或者运行级别等于5的目标主机运行 df -m 命令,如图11-12所示。
Figure 4. 图11-12 根据fact条件(or)过滤主机
参考提示
-
关于 Func 的介绍参考官网文档 https://fedorahosted.org/func/ 。