【问题标题】:How to set params/vars globally for all hosts in Ansible's playbook?如何在 Ansible playbook 中为所有主机全局设置参数/变量?
【发布时间】:2017-06-22 07:27:33
【问题描述】:

现在我的剧本看起来像

- 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

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

【问题讨论】:

    标签: ansible automated-deploy


    【解决方案1】:

    您可以使用 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

    祝你好运!

    【讨论】:

    • 非常感谢您的回答!我将我的通用 vars 文件移动到 group_vars/all 并将字符串 gathering = explicit 添加到 ansible.cfg 并得到我想要的!
    猜你喜欢
    • 2016-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 2015-03-05
    • 1970-01-01
    相关资源
    最近更新 更多