gpt4 book ai didi

ansible playbook 角色变量

转载 作者:行者123 更新时间:2023-12-02 12:21:28 25 4
gpt4 key购买 nike

对于 ansible 来说相当新。具有以下角色,例如:my-role - 我无法覆盖剧本中的默认变量

以下文件:

my-role/tasks/main.yml
my-role/defaults/main.yml
sample-playbook.yml

我的角色/tasks/main.yml

- name: "Add Test User"
user: name={{ my_config_test_user }} comment="{{ my_config_test_user }}" group={{ my_config_test_user }}

我的角色/defaults/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

有什么提示吗?

问候

最佳答案

在当前版本的 Ansible 优先顺序中,my_config_test_user 的值应该是 override 而不是 test 所以我认为你可能有某处有错别字。也许变量拼写不正确?

我建议暂时删除 defaults/main.yml 以确保您不会收到 undefined variable 错误。我还建议使用调试模块来检查tasks/main.yml 中变量的值

- debug: var={{ my_config_test_user }}

这里是当前版本 Ansible 中的优先顺序(从最大的开始)供引用:

  1. 在命令行上设置变量 -e foo=set_on_cmd_line
  2. 在播放中的 vars_files: block 中设置变量
  3. 在 vars: block 中设置变量
  4. 在 host_vars/中设置变量
  5. 在 group_vars 中设置变量/
  6. 角色默认变量roles/.../defaults/main.yml

关于ansible playbook 角色变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30327175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com