Ansible 如何包含从Galaxy下载的任务

Ansible 如何包含从Galaxy下载的任务,ansible,ansible-galaxy,Ansible,Ansible Galaxy,我有下一个项目角色: hosts site.yml /roles /proxy /tasks ... /web /tasks ... /worker /tasks ... /db /tasks ... 我需要在web和worker上安装chruby。所以是从Galaxy安装的,但我不知道如何将任务从chruby添加到web和worker角色 请注意。您不能包含来自角色的单个任务。如果您安装了一个角色,无论是来自Ga

我有下一个项目角色:

hosts
site.yml
/roles
  /proxy
    /tasks
    ...
  /web
    /tasks
    ...
  /worker
    /tasks
    ...
  /db
    /tasks
    ...
我需要在
web
worker
上安装chruby。所以是从Galaxy安装的,但我不知道如何将任务从chruby添加到
web
worker
角色


请注意。

您不能包含来自角色的单个任务。如果您安装了一个角色,无论是来自Galaxy还是任何其他来源,您都可以通过将其添加到剧本的角色部分或作为您自己角色的依赖项来使用它

chruby角色的自述文件显示了一个示例剧本:

- hosts: all
  roles:
    - ferrarimarco.chruby
我需要在web和worker上安装chruby

您可以将其作为依赖项添加到这些角色中。格式是一样的。创建一个文件
roles/web/meta/main.yml
(工作人员角色也是如此),内容如下:

dependencies:
  - ferrarimarco.chruby
如果你在寻找能真正使用chruby的任务,我会让你失望的。角色中没有任何内容。但在我看来,chruby只是一个可以与
命令
shell
模块一起使用的命令:

- name: Change ruby to 1.9.3
  shell: chruby 1.9.3

角色可以提供触发特定任务的机制(标记或额外变量),例如安装、更新或卸载软件。角色还可以提供与已安装软件交互的模块。但克鲁比的角色并非如此。它只是通过apt安装chruby及其依赖项。

您不能包含来自角色的单个任务。如果您安装了一个角色,无论是来自Galaxy还是任何其他来源,您都可以通过将其添加到剧本的角色部分或作为您自己角色的依赖项来使用它

chruby角色的自述文件显示了一个示例剧本:

- hosts: all
  roles:
    - ferrarimarco.chruby
我需要在web和worker上安装chruby

您可以将其作为依赖项添加到这些角色中。格式是一样的。创建一个文件
roles/web/meta/main.yml
(工作人员角色也是如此),内容如下:

dependencies:
  - ferrarimarco.chruby
如果你在寻找能真正使用chruby的任务,我会让你失望的。角色中没有任何内容。但在我看来,chruby只是一个可以与
命令
shell
模块一起使用的命令:

- name: Change ruby to 1.9.3
  shell: chruby 1.9.3

角色可以提供触发特定任务的机制(标记或额外变量),例如安装、更新或卸载软件。角色还可以提供与已安装软件交互的模块。但克鲁比的角色并非如此。它只是通过apt安装chruby及其依赖项。

依赖项-这就是我所需要的。有没有办法管理订单?依赖项是按照它们被引用的顺序执行的。我的意思是在我的任务之间运行(我知道这不是
依赖项
,可能是包含项)。您可以始终只包含来自另一个角色的任务文件。但这与运行角色不同。默认值、变量、文件、模板、处理程序等将不可用,只执行任务。所以我认为这在chruby的情况下是行不通的。也许你可以将你的web和worker角色分成更小的包,然后按照你希望在主角色中的顺序实现所有的小包,包括chruby角色。依赖关系-这就是我需要的。有没有办法管理订单?依赖项是按照它们被引用的顺序执行的。我的意思是在我的任务之间运行(我知道这不是
依赖项
,可能是包含项)。您可以始终只包含来自另一个角色的任务文件。但这与运行角色不同。默认值、变量、文件、模板、处理程序等将不可用,只执行任务。所以我认为这在chruby的案例中是行不通的。也许你可以将你的web和worker角色分成更小的包,然后按照你希望在主角色中的顺序实现所有的小包,包括chruby角色。