Hel*_*hka 5 ansible ansible-playbook
相当新的ansible.具有以下角色,例如:my-role- 我无法覆盖剧本中的默认变量
以下文件:
my-role/tasks/main.yml
my-role/defaults/main.yml
sample-playbook.yml
Run Code Online (Sandbox Code Playgroud)
我的角色/任务/ main.yml
- name: "Add Test User"
user: name={{ my_config_test_user }} comment="{{ my_config_test_user }}" group={{ my_config_test_user }}
Run Code Online (Sandbox Code Playgroud)
我的角色/默认/ main.yml
my_config_test_user: "test"
Run Code Online (Sandbox Code Playgroud)
剧本:
- name: TestCase
hosts: all
remote_user: root
vars:
my_config_test_user: "override"
roles:
- my-role
Run Code Online (Sandbox Code Playgroud)
在任务中my_config_test_user停留的价值test而不是我预期的结果override
任何提示?
问候
jar*_*arv 15
在当前版本的Ansible优先顺序中,my_config_test_user应该覆盖不应该测试的值,所以我认为你可能在某个地方有一个错字.也许变量拼写不正确?
我建议暂时删除defaults/main.yml以确保您没有得到未定义的变量错误.我还建议使用调试模块来检查tasks/main.yml中变量的值
- debug: var={{ my_config_test_user }}
Run Code Online (Sandbox Code Playgroud)
这里的参考是当前版本的Ansible中的优先顺序(从最大的开始):