允许在Ansible剧本中多次运行某些角色

允许在Ansible剧本中多次运行某些角色,ansible,Ansible,我扮演了一个角色,他的唯一工作是从Artifactory下载并解包二进制软件包。几乎所有我想安装的东西都需要我使用这个角色 我有一个包含三个主要组件的部署,每个组件都将使用相同的可重用角色从Artifactory中提取。该角色采用参数,例如安装的包的名称、可从中下载二进制文件的工件URL 可重用角色从/meta/dependencies调用 问题是可重用角色只运行一次。第二次运行Ansible时会跳过它(即使参数不同) 有没有办法告诉Ansible,即使以前使用不同的参数运行过该角色,也必须始终

我扮演了一个角色,他的唯一工作是从Artifactory下载并解包二进制软件包。几乎所有我想安装的东西都需要我使用这个角色

我有一个包含三个主要组件的部署,每个组件都将使用相同的可重用角色从Artifactory中提取。该角色采用参数,例如安装的包的名称、可从中下载二进制文件的工件URL

可重用角色从/meta/dependencies调用

问题是可重用角色只运行一次。第二次运行Ansible时会跳过它(即使参数不同)


有没有办法告诉Ansible,即使以前使用不同的参数运行过该角色,也必须始终运行该角色?

只需在剧本中使用不同的参数值多次包含该角色即可

这应该可以做到:

---

- hosts: server
  tasks:
  - include_role:
       name: artifactory
    vars:
      artifact: 'artifact_1'

  - include_role:
       name: artifactory
    vars:
      artifact: 'artifact_2'

只需在剧本中使用不同的参数值多次包含角色

这应该可以做到:

---

- hosts: server
  tasks:
  - include_role:
       name: artifactory
    vars:
      artifact: 'artifact_1'

  - include_role:
       name: artifactory
    vars:
      artifact: 'artifact_2'

您是否连续三次调用此角色?或者你在这两者之间还有其他角色吗?无论如何,我的观点是,你必须重构你的角色,以避免多次运行它们。角色的全部意义在于,它在库存中的一组特定机器上运行一次。您是否连续调用此角色3次?或者你在这两者之间还有其他角色吗?无论如何,我的观点是,你必须重构你的角色,以避免多次运行它们。角色的全部要点是,它在库存中的一组特定机器上运行一次。