13 使用 Inventory 之基本 Inventory 配置
在前一篇中,我们探索了在编写 Playbook 时如何使用循环和条件语句。在这一篇中,我们将深入了解 Ansible 的 Inventory 文件,尤其是如何配置基本的静态 Inventory。掌握 Inventory 的配置对于有效管理和执行 Ansible Playbook 至关重要。
什么是 Inventory?
在 Ansible 中,Inventory
是一个用于定义和组织您的目标主机和它们的分组的列表。Ansible 使用 Inventory 来知道应该在哪些主机上执行任务。您可以使用静态 Inventory 文件(通常是 INI
格式或 YAML
格式)或动态 Inventory。
基本静态 Inventory 配置
静态 Inventory 通常存储在一个文本文件中,您可以使用简单的 INI 或 YAML 格式进行配置。下面,我们将通过案例来展示如何配置基本的 Inventory。
示例 1:INI 格式 Inventory
假设我们有三台服务器,它们的 IP 地址分别是 192.168.1.10
、192.168.1.11
和 192.168.1.12
。我们可以创建一个名为 inventory.ini
的文件,内容如下:
1 | [web_servers] |
在这个示例中,我们创建了两个组:web_servers
和 db_servers
。ansible_host
是定义主机 IP 地址的关键字。
示例 2:YAML 格式 Inventory
同样的配置,您可以使用 YAML 格式创建一个名为 inventory.yml
的文件,内容如下:
1 | all: |
在 YAML 格式中,您可以更清晰地看到组与主机关系。
使用 Inventory 执行 Ansible 命令
配置好 Inventory 后,您可以使用 ansible
命令来执行一些操作。例如,您可以使用以下命令 ping 所有的 web 服务器:
1 | ansible web_servers -i inventory.ini -m ping |
这条命令的意思是针对 web_servers
组中的所有主机,使用 ping
模块进行测试。
为主机添加变量
在实际应用中,您可能需要为不同的主机设置特定变量。您可以在 Inventory 文件中为主机提供特定的变量。例如,我们为 web1
添加一个环境变量 env
,可以在 inventory.ini
中这样配置:
1 | [web_servers] |
在 Playbook 中,您可以使用 {{ ansible_host }}
或 {{ env }}
来引用这些变量。
结论
通过本节的学习,我们了解了如何配置基本的静态 Inventory 文件,如何将主机分组,以及如何为主机设置变量。这些知识为您编写 Ansible Playbook 及后续使用动态 Inventory 打下了基础。
在下一篇教程中,我们将探讨如何使用动态 Inventory,进一步提升 Ansible 的灵活性和可扩展性。请继续关注我们的系列教程!