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.10192.168.1.11192.168.1.12。我们可以创建一个名为 inventory.ini 的文件,内容如下:

1
2
3
4
5
6
[web_servers]
web1 ansible_host=192.168.1.10
web2 ansible_host=192.168.1.11

[db_servers]
db1 ansible_host=192.168.1.12

在这个示例中,我们创建了两个组:web_serversdb_serversansible_host 是定义主机 IP 地址的关键字。

示例 2:YAML 格式 Inventory

同样的配置,您可以使用 YAML 格式创建一个名为 inventory.yml 的文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
all:
children:
web_servers:
hosts:
web1:
ansible_host: 192.168.1.10
web2:
ansible_host: 192.168.1.11
db_servers:
hosts:
db1:
ansible_host: 192.168.1.12

在 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
2
3
[web_servers]
web1 ansible_host=192.168.1.10 env=production
web2 ansible_host=192.168.1.11 env=staging

在 Playbook 中,您可以使用 {{ ansible_host }}{{ env }} 来引用这些变量。

结论

通过本节的学习,我们了解了如何配置基本的静态 Inventory 文件,如何将主机分组,以及如何为主机设置变量。这些知识为您编写 Ansible Playbook 及后续使用动态 Inventory 打下了基础。

在下一篇教程中,我们将探讨如何使用动态 Inventory,进一步提升 Ansible 的灵活性和可扩展性。请继续关注我们的系列教程!

13 使用 Inventory 之基本 Inventory 配置

https://zglg.work/ansible-zero/13/

作者

IT教程网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论