Ansible在角色依赖中覆盖主机

时间:2017-05-05 07:47:47

标签: dependencies ansible

假设我有一个角色glusterfs,它在主机glusterfs-servers上配置GlusterFS群集。

此外,我有一个角色storage-clients,它希望在主机storage-clients上从此GlusterFS群集装载卷。

因此,为确保成功设置GlusterFS群集,我将以下内容添加到role/storage-clients/meta/main.yml

---
dependencies:
  - { role: glusterfs, hosts: glusterfs-servers }

但这会导致ansible在glusterfs中的主机上运行storage-clients角色,这显然会失败。

我在我的剧本中担任glusterfs角色之前的storage-clients角色,但我想确保我的角色尽可能地防错。

这怎么可能?

1 个答案:

答案 0 :(得分:0)

角色的依赖关系应用于同一主机,作为主要角色。

如果您需要设置一些安全网,请在storage-clients角色中添加一些检查任务。例如:

- name: Ensure glusterfs servers are ready
  script: check_glusterfs.sh
  delegate_to: '{{ item }}'
  with_items: '{{ groups["glusterfs-servers"] | default([]) }}'
  run_once: yes