如何在Ansible的剧本中为所有主机全局设置params / vars?

时间:2017-06-22 07:27:33

标签: ansible automated-deploy

现在我有一个看起来像

的剧本
- hosts: hws
  gather_facts: no
  vars_files:
    - variables.yml
  roles:
    - role: hypervisor

- hosts: vms
  gather_facts: no
  vars_files:
    - variables.yml
  roles:
    - role: web-server

它看起来很难看。如何设置

  gather_facts: no
  vars_files:
    - variables.yml

整个文件中的每个主机全局?

1 个答案:

答案 0 :(得分:0)

您可以使用ansible目录布局根据主机组或主机对变量进行分组。

ansible.cfg
hosts
group_vars/
    hws.yml   #variables for hws hosts
    vms.yml   #variables for vms hosts
    all  #here you can put variables commont to both hws + vms
roles/
    hypervisor
    web-server
playbook.yml

这样您就不需要在剧本中包含变量文件了。

您还可以在此处阅读有关ansible目录结构的更多信息: http://docs.ansible.com/ansible/playbooks_best_practices.html

这里有关变量优先权: http://docs.ansible.com/ansible/playbooks_variables.html

祝你好运!