Ansible:覆盖变量

Ansible: override variables

如何在以下情况下覆盖变量: playbook/roles/role1/defaults/main.yml

# Example1
myvars:
  var1: val1
  var2: val2

我只想覆盖此散列中的 1 个变量,例如

# Example1
myvars:
  var2: val2-new

我已经添加到 playbook.yml 以下结构:

vars_files:
  - vars/local_conf_options.yml

vars/local_conf_options.yml 包含示例 2 中的内容 我收到关于未定义变量 var1 的错误。

我该如何解决这个问题?

PS:我尝试将 'defaults' 重命名为 'vars',但出现了同样的错误。

您可以将hash_behaviour修改为merge。默认为 replace.

但请注意,这是全局设置!由于此更改,您的剧本的其他部分可能会中断。