如何包含从 Galaxy 下载的任务

How to include tasks downloaded from Galaxy

我有下一个项目角色:

hosts
site.yml
/roles
  /proxy
    /tasks
    ...
  /web
    /tasks
    ...
  /worker
    /tasks
    ...
  /db
    /tasks
    ...

我需要在 webworker 上安装 chruby。所以从 Galaxy 安装了 https://github.com/ferrarimarco/ansible-role-chruby,但我不知道如何将任务从 chruby 添加到 webworker 角色。

请指教

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

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

- hosts: all
  roles:
    - ferrarimarco.chruby

I need to install chruby on web and worker

您可以将其添加为这些角色的依赖项。格式是一样的。使用内容创建一个文件 roles/web/meta/main.yml(对于 worker 角色也是如此):

dependencies:
  - ferrarimarco.chruby

如果您正在寻找实际使用 chruby 的任务,我不得不让您失望了。角色中没有任何东西。但在我看来,chruby 只是一个可以与 commandshell 模块一起使用的命令:

- name: Change ruby to 1.9.3
  shell: chruby 1.9.3

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