Ansible允许我们在主机变量和库存文件中定义组。下面是一个示例解决方法:
inventory.ini
:[web]
webserver1 ansible_host=192.168.1.10
webserver2 ansible_host=192.168.1.11
[database]
dbserver1 ansible_host=192.168.1.12
dbserver2 ansible_host=192.168.1.13
[app:children]
web
database
在这个示例中,我们定义了两个组 web
和 database
,并将它们作为 app
组的子组。
host_vars/webserver1.yml
:app_port: 8080
app_env: production
在这个示例中,我们为 webserver1
主机定义了两个变量 app_port
和 app_env
。
- name: Example playbook
hosts: web
tasks:
- name: Debug group variables
debug:
var: group_names
- name: Debug group variables
debug:
var: app_port
- name: Debug host variables
debug:
var: app_env
在这个示例中,我们使用了 hosts: web
来指定Playbook只在 web
组中的主机上运行任务。然后,我们使用 debug
模块打印出组变量 group_names
,以及主机变量 app_port
和 app_env
。
通过这个示例,您可以了解如何在Ansible中使用主机变量和库存文件中的组。您可以根据需要定义更多的组和变量,并在Playbook中使用它们。