当前位置: 首页 > news >正文

【网络运维】Playbook进阶: FACTS变量

管理 FACTS

FACTS 介绍

FACTS 是 Ansible 在受管主机上自动检测到的变量,默认保存在内容中,只存在于本次playbook执行期间。

FACTS含有主机相关的信息,可以像play中的常规变量一样使用。

受管主机的 facts 包括:

• 主机名称 • 内核版本 • 网络接口 • IP地址 • 操作系统版本 • 各种环境变量
• CPU数量 • 提供的或可用的内存 • 可用磁盘空间

借助 facts,可以方便地检索受管主机的状态,并根据该状态确定要执行的操作。

例如:

  • 可以根据当前内核版本的FACTS运行条件任务,以此来重新启动服务器。
  • 可以根据通过FACTS报告的可用内存来自定义 MySQL 配置文件。
  • 可以根据FACTS的值设置配置文件中使用的 IPv4 地址。

通常,每个play在执行第一个任务之前会先自动收集FACTS。

查看 FACTS 内容

示例1:查看所有变量

---
- name: Dump factshosts: node1tasks:- name: Print all factsdebug:var: ansible_facts

在这里插入图片描述

示例2:查看单个变量

---
- hosts: node1tasks:- name: Print Ansible factsdebug: msg: >The default IPv4 address of {{ ansible_fqdn }}is {{ ansible_default_ipv4.address }}

在这里插入图片描述

部分 FACTS

FACTVARIABLE
短主机名ansible_facts[‘hostname’]
完全限定的域名ansible_facts[‘fqdn’]
主要IPv4地址(基于路由)ansible_facts[‘default_ipv4’][‘address’]
所有网络接口的名称列表ansible_facts[‘interfaces’]
/dev/vdal磁盘分区的大小ansible_facts[‘devices’][‘vda’][‘partitions’]['vda1][‘size’]
DNS服务器列表ansible_facts[‘dns’][‘nameservers’]
当前运行的内核的版本ansible_facts[‘kernel’]

setup 和 gather_facts 模块

setup 和 gather_facts 模块都可以用来收集facts:

  • gather_facts 模块,只能用来收集facts。

  • setup 模块,除了用来收集facts,还提供额外选项:

    • filter 选项,用于查看特定facts值。

    • gather_subset 选项,用于控制收集facts范围。

[furongwang@controller web]$ ansible -m setup node1 -a 'filter=ansible_default_ipv4'
node1 | SUCCESS => {"ansible_facts": {"ansible_default_ipv4": {"address": "172.25.250.10","alias": "enp1s0","broadcast": "172.25.250.255","gateway": "172.25.250.254","interface": "enp1s0","macaddress": "52:54:00:00:fa:0a","mtu": 1500,"netmask": "255.255.255.0","network": "172.25.250.0","type": "ether"},"discovered_interpreter_python": "/usr/libexec/platform-python"},"changed": false
}

关闭 FACTS 收集

关闭 FACTS 收集部分原因:

  • 不使用任何FACTS
  • 希望加快play速度或减小play在受管主机上造成的负载
  • 受管主机因为某种原因而无法运行setup模块
  • 需要安装一些必备软件后再收集FACTS

Ansible配置文件设置

[defaults]
gathering = explicit

playbook中设置

---
- name: Fact dumphosts: node1gather_facts: no

即使关闭以后,也可以随时使用setup模块收集facts。

http://www.dtcms.com/a/335905.html

相关文章:

  • 原子操作(Atomic Operation):指在执行过程中不会被中断的操作
  • 【力扣热题100】双指针—— 三数之和
  • 记一次安装OpenStack(Stein)-nova报错问题解决
  • 19.训练模式、评估模式
  • 基于遗传编程的自动程序生成
  • JAVA面试汇总(四)JVM(二)
  • pytorch线性回归
  • 7 索引的监控
  • 数学建模 14 中心对数比变换
  • 定时器中断点灯
  • Redux搭档Next.js的简明使用教程
  • 安卓开发中遇到Medium Phone API 36.0 is already running as process XXX.
  • 突破Python性能墙:关键模块C++化的爬虫优化指南
  • 【牛客刷题】字符串按索引二进制1个数奇偶性转换大小写
  • 编程算法实例-整数分解质因数
  • Vue3 + Element Plus 人员列表搜索功能实现
  • UE5多人MOBA+GAS 48、制作闪现技能
  • 第三十九天(WebPack构建打包Mode映射DevTool源码泄漏识别还原)
  • 软件开发 - foreground 与 background
  • 电容,三极管,场效应管
  • 光耦,发声器件,继电器,瞬态抑制二极管
  • 【102页PPT】新一代数字化转型信息化总体规划方案(附下载方式)
  • Coin与Token的区别解析
  • Python爬虫-解决爬取政务网站的附件,找不到附件链接的问题
  • 数学建模-评价类问题-优劣解距离法(TOPSIS)
  • 博士招生 | 新加坡国立大学 SWEET实验室 招收人机交互方向 博士/博士后
  • 13.web api 4
  • 实现用户输入打断大模型流式输出:基于Vue与FastAPI的方案
  • 基于DSP+ARM+FPGA架构的储能协调控制器解决方案,支持全国产化
  • Diamond基础2:开发流程之LedDemo