ansible剧本角色变量

ansible剧本角色变量,ansible,ansible-playbook,Ansible,Ansible Playbook,对ansible来说相当陌生。 拥有以下角色,例如:我的角色-我无法覆盖剧本中的默认变量 以下文件: 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_c

对ansible来说相当陌生。 拥有以下角色,例如:
我的角色
-我无法覆盖剧本中的默认变量

以下文件:

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 }}
my_config_test_user: "test"
- debug: var={{ my_config_test_user }}
我的角色/defaults/main.yml

- name: "Add Test User"
  user: name={{ my_config_test_user }} comment="{{ my_config_test_user }}" group={{ my_config_test_user }}
my_config_test_user: "test"
- debug: var={{ my_config_test_user }}
剧本:

- name: TestCase
  hosts: all
  remote_user: root
  vars:
    my_config_test_user: "override"
  roles:
    - my-role
在任务中,
my\u config\u test\u user
的值保持
test
而不是我的预期结果
override

有什么提示吗


关于

在当前版本的Ansible order of Priority中说,
my\u config\u test\u user
的值应该是override not test,所以我认为您可能在某个地方有输入错误。可能变量拼写不正确

我建议暂时删除defaults/main.yml,以确保不会出现未定义的变量错误。我还建议使用debug模块检查tasks/main.yml中变量的值

- name: "Add Test User"
  user: name={{ my_config_test_user }} comment="{{ my_config_test_user }}" group={{ my_config_test_user }}
my_config_test_user: "test"
- debug: var={{ my_config_test_user }}
以下是Ansible当前版本的优先顺序(从最大值开始)供参考:

  • 在命令行上设置变量-e foo=set_on_cmd_行
  • Vars_文件中设置的变量:在播放中阻止
  • Vars中设置的Vars:游戏中的block
  • 主机变量中设置的变量/
  • 组中设置的变量/
  • 角色默认值vars roles/../defaults/main.yml

  • 非常感谢这是一个输入错误,移动默认文件显示:)许多thx-它吓坏了我-我阅读了整个文档,等等,还有+1的变量优先级列表!!