Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible 负责包括变量的订购问题_Ansible - Fatal编程技术网

Ansible 负责包括变量的订购问题

Ansible 负责包括变量的订购问题,ansible,Ansible,我发现角色任务是先执行的,但是用户列表需要先定义,这是不可能的。 非常感谢您的帮助。您可以使用pre\u tasks确保某些任务在角色之前执行,使用post\u tasks确保某些任务在应用角色之后执行。因此,将任务更改为pre_任务将解决问题 #file: cmservers.yml - hosts: cmservers tasks: - include_vars: /var/cm/local/ansible/vars/cmusers.yml - debug: v

我发现角色任务是先执行的,但是用户列表需要先定义,这是不可能的。
非常感谢您的帮助。

您可以使用
pre\u tasks
确保某些任务在角色之前执行,使用
post\u tasks
确保某些任务在应用角色之后执行。因此,将
任务
更改为
pre_任务
将解决问题

#file: cmservers.yml

 - hosts: cmservers
   tasks:
     - include_vars: /var/cm/local/ansible/vars/cmusers.yml
     - debug: var=users
   roles:
     - ansible-users-master

您可以查看以了解更多详细信息。

或者,您可以在剧本中使用
vars\u files
指令。当您将变量存储在角色
vars/main.yml
中时,这会很方便,但在执行playbook时会包含一些附加变量或一些私有数据(您可以使用Ansible Vault)

- hosts: cmservers

  pre_tasks:
    - include_vars: /var/cm/local/ansible/vars/cmusers.yml
    - debug: var=users

  roles:
    - ansible-users-master

由于
include_vars
是一项任务,因此最好在角色/角色中使用它,而在剧本中使用
vars_文件。使用
vars\u文件
传递Ansible命令行变量也更容易。有关更多信息,请参见:

创建一个角色,其中包含
include
debug
,这样您就可以让所有
角色处于同一级别。这就成功了。明亮的现在定义了我的变量。现在实际上有两个包含vars的include文件,我正在包括它们。我已经在ansible hash_BehaviuO中设置了合并标志,或者最后加载的include文件正在覆盖用户哈希值。@SebastienAdjifotis我对
hash_BehaviuO
不太熟悉,但可能存在如下所述的错误:。不确定您是否遇到相同的问题。看起来是相同的问题。我在那篇帖子上加了一条评论。我真的希望有决心。因为我需要有合并散列的能力。找到了一个避免合并的解决方案,就是定义单独的散列名称,然后通过传递散列名称指定角色`角色:{role:ansible users master,用户:{{cmusers}},组:{{cmusers\u groups}}-{role:ansible users master,用户:{{appusers},组:'{{appusers\u groups}}}{{appusers\u groups}}}}}`完全同意。这是一个更好的答案,尽管pre\u任务值得注意。
#file: cmservers.yml

 - hosts: cmservers
   vars_files:
     - /var/cm/local/ansible/vars/cmusers.yml
   roles:
     - ansible-users-master