簡體   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