繁体   English   中英

ansible include_vars订购问题

[英]ansible include_vars ordering issue

#file: cmservers.yml

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

我发现角色任务首先被执行,但是需要首先定义用户列表,这不会发生。 任何帮助赞赏。

或者,您可以在playbook中使用vars_files指令。 当您将变量存储在角色vars/main.yml ,这很方便,但是在执行playbook时还有一些其他变量或一些私有数据(您可以使用Ansible Vault)。

#file: cmservers.yml

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

由于include_vars是一项任务,因此最好在角色/ hanlders中使用它,而在playbooks中使用vars_files 使用vars_files传递Ansible命令行变量也更容易。 有关详细信息,请参阅: http//docs.ansible.com/ansible/playbooks_variables.html

您可以使用pre_tasks确保在role和post_tasks之前执行某些任务,以确保在应用角色后执行某些任务。 因此,将您的tasks更改为pre_tasks将解决问题。

- hosts: cmservers

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

  roles:
    - ansible-users-master

您可以查看角色文档以获取更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM