我想为不同的主机指定不同的密钥。但群里有主持人
production
。例如。我有主机变量库存文件和组变量库存文件。
inventoy/hostvars/host-01
secret-key: <>
库存/组变量/生产
secret-key: <>
我希望,如果指定了主机,则应该从主机文件中选择密钥,否则从生产环境中选择密钥。在ansible中是否可能?或者我们可以采取什么方法来完成这项任务
我尝试使用标签,但它在从命令行运行剧本时添加了额外的变量
这一切都归结为变量优先级。
一般来说,Ansible 优先考虑最近定义的、更活跃的、范围更明确的变量。
在您的情况下,
inventory/hostvars/host-01
(9)中设置的变量将覆盖inventory/group-vars/production
(6)中设置的变量。
您可以手动更改它。我在一些剧本中明确设置了顺序,如下所示:
- name: Run a playbook with some extra variables
hosts: all
vars_files:
- 'group_vars/override-less-important/all.yml'
- 'group_vars/override-more-important/all.yml'