my-role
- 我无法覆盖剧本中的默认变量
以下文件:
my-role/tasks/main.yml
my-role/defaults/main.yml
sample-playbook.yml
我的角色/任务/ main.yml
- name: "Add Test User"
user: name={{ my_config_test_user }} comment="{{ my_config_test_user }}" group={{ my_config_test_user }}
我的角色/默认/ main.yml
my_config_test_user: "test"
剧本:
- name: TestCase
hosts: all
remote_user: root
vars:
my_config_test_user: "override"
roles:
- my-role
在任务中my_config_test_user
的值保持test
而不是我预期的结果override
任何提示?
问候
答案 0 :(得分:15)
在当前版本的Ansible优先顺序中,my_config_test_user
的值应该覆盖而不是 test 所以我认为你可能在某处有拼写错误。也许变量拼写不正确?
我建议暂时删除defaults / main.yml,以确保不会出现未定义的变量错误。我还建议使用调试模块来检查tasks / main.yml
中变量的值- debug: var={{ my_config_test_user }}
此处的参考是当前版本的Ansible中的优先顺序(以最大值开头):