0Pricing
DevOps Bootcamp · 课时

缓存与多个 Inventory 来源

合并大型 Inventory 并提升速度

缓存与多个 Inventory 来源 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。

查询会耗费时间

当您拥有数百台主机时,每次运行都访问云 API 会很慢。每次 play 开始时,都要再次付出查询的时间成本。⏱️

缓存结果

清单缓存会存储获取到的主机数据,让重复运行时可以复用这些数据,而不必每次都重新查询云环境。

启用缓存

在插件配置或 ansible.cfg 中将 cache 键设置为 true,即可启用缓存。

cache: true
cache_plugin: jsonfile

选择缓存后端

cache_plugin 决定数据存储在哪里,例如将 jsonfile 存储在磁盘上,或使用 redis 在多台机器之间共享更快速的存储。

设置合理的超时时间

cache_timeout 以秒为单位,决定缓存数据在 Ansible 从数据源刷新之前可以保持多长时间有效。

cache_timeout: 3600

过期缓存是个陷阱

较长的超时时间速度更快,但风险也更高。如果实例发生变化,您可能会定位到已经不存在的主机。请在速度和实例群的新鲜度之间取得平衡。

合并多个数据源

您很少只有一个数据源。将 -i 指向一个目录,Ansible 就会加载其中的每个清单文件。

ansible-playbook -i inventories/ site.yml

数据源会合并

所有文件中的主机和组会合并为一个清单,因此 AWS、Azure 和静态文件可以在一次运行中共存。

顺序会影响变量

文件会按字母顺序加载。当两个数据源设置了同一个主机变量时,后加载的数据源会覆盖前者,因此命名顺序很重要。

混用静态与动态清单

静态文件可以固定指定一台特殊主机,而插件负责获取其余主机,让固定的锚点与弹性、自动发现的主机并存。

验证合并后的视图

请针对该目录运行 ansible-inventory,查看最终合并后的关系图,并确认每个数据源都按预期提供了内容。

ansible-inventory -i inventories/ --graph

快速检查

请回忆如何合并清单数据源。

回顾

使用带有后端和超时时间的缓存来减少 API 调用,并将 -i 指向一个目录以合并多个清单数据源。💾

常见问题解答

「缓存与多个 Inventory 来源」课时是免费的吗?

是的 — 「缓存与多个 Inventory 来源」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。

「缓存与多个 Inventory 来源」这节课中我会学到什么?

合并大型 Inventory 并提升速度 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「缓存与多个 Inventory 来源」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 DevOps Bootcamp 课中编写并运行代码吗?

能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 静态限制与 Inventory 插件模型
  2. aws_ec2 Inventory 插件
  3. constructed:按标签对主机分组
  4. 缓存与多个 Inventory 来源
← 返回 DevOps Bootcamp