ansible事实详解

Ansible 事实是 Ansible 在执行任务前,自动从受控节点收集的系统信息集合,这些信息会以变量形式存储,能直接用于区分不同节点的配置逻辑,实现自动化任务的差异化执行。

  1. 核心收集的信息类型

• 基础主机信息:包含主机名、系统发行版(如 CentOS、Ubuntu)、发行版具体版本、系统家族(如 RedHat 家族、Debian 家族)、内核版本、系统架构(如 x86_64、arm64)。

• 硬件资源信息:包含 CPU 总核心数、总内存大小、可用内存大小、磁盘分区与挂载点详情、主机的网卡列表。

• 网络配置信息:包含各网卡对应的 IPv4 地址、主机的所有 IPv4 地址列表、网卡 MAC 地址、DNS 服务器地址。

• 说明:默认事实不包含已安装软件包和服务运行状态,这类信息需要通过专用模块主动查询。

  1. 查看事实的方法

• 命令行查看

使用 Ansible 内置的 setup 模块,可查看单个主机或主机组的所有事实,也能通过过滤关键词,只查看特定类别的信息,比如只看内存相关的事实。

• 在任务执行过程中查看

在自动化任务流程里,可通过调试功能输出指定的事实变量,快速验证受控节点的对应信息。

  1. 事实收集的开关与自定义

• 关闭默认收集

如果执行的自动化任务不需要用到任何事实信息,可关闭自动收集功能,以此提升任务的执行效率。

• 自定义本地事实

除了 Ansible 自动收集的默认事实,还能在受控节点的指定目录下,创建以 .fact 为后缀的文件,写入自定义的信息,Ansible 会自动加载这些内容并作为事实变量,供任务调用。

  1. 典型应用场景

• 差异化系统配置:根据受控节点的系统家族,选择对应的包管理器进行软件安装,比如 RedHat 家族用 yum,Debian 家族用 apt。

• 硬件资源校验:在部署服务前,检查受控节点的内存、CPU 等硬件资源是否满足服务运行的最低要求,不满足则终止任务并提示。

相关推荐
七夜zippoe1 天前
Docker容器化Python应用最佳实践:从镜像优化到安全防护
python·docker·云原生·eureka·容器化
灰子学技术1 天前
istio从0到1:产品落地过程的问题集锦
云原生·istio
-dcr1 天前
56.kubernetes弹性伸缩
云原生·容器·kubernetes
老百姓懂点AI1 天前
[云原生] Serverless冷启动优化:智能体来了(西南总部)AI调度官的Pod预热策略与AI agent指挥官的模型加载加速
人工智能·云原生·serverless
Cyber4K1 天前
【Kubernetes专项】K8s 常见持久化存储方案及存储类动态 PV
云原生·容器·kubernetes
牛奶咖啡131 天前
Prometheus+Grafana构建云原生分布式监控系统(十二)_基于DNS的服务发现
云原生·prometheus·dns·搭建自己的dns服务器·使用bind搭建dns服务器·配置正向解析·基于dns的服务发现
噎住佩奇2 天前
k8s-配置管理
云原生·容器·kubernetes
程序媛Dev2 天前
K8s 太重、虚拟机太旧,Sealos 找到了基础架构的最优解
云原生·容器·kubernetes
江畔何人初2 天前
docker概念-容器运行时、容器、容器镜像及结构
linux·运维·云原生
2501_944175782 天前
我用 Sealos 把 Dify + DeepSeek 部署时间从 2 天压到 15 分钟
云原生