自动加载ansible的主机特定变量

Sil*_*ind 5 ansible ansible-playbook

我需要设置很少的主机特定变量.到目前为止,我将它们添加到hosts文件中,但变量列表变得非常冗长.

我想做的是告诉ansible加载一个包含所有必要变量的主机特定文件.假设我的主持人是:

[webservers]
hydrogen
helium
lithium
Run Code Online (Sandbox Code Playgroud)

而它们的变量结构如下:

.
??? variables
?   ??? hydrogen.yml
?   ??? helium.yml
?   ??? lithium.yml
??? blahblah
Run Code Online (Sandbox Code Playgroud)

如何自动为每个主机加载这些变量?

udo*_*dan 10

Ansible有集团和主机变量的概念.无需手动告诉它从文件加载变量,它都是内置的.只需在文件夹中创建相对于您的playbook(或库存文件)的文件group_vars和/或host_vars:

.
??? group_vars
?   ??? webservers.yml
??? host_vars
?   ??? hydrogen.yml
?   ??? helium.yml
?   ??? lithium.yml
??? playbook.yml
Run Code Online (Sandbox Code Playgroud)

另请参阅最佳实践:组和主机变量