如何包含从Galaxy下载的任务

时间:2016-05-18 15:16:33

标签: ansible ansible-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角色。

请建议。

1 个答案:

答案 0 :(得分:2)

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

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

- hosts: all
  roles:
    - ferrarimarco.chruby
  

我需要在web和worker上安装chruby

您可以将其添加为这些角色的依赖项。格式是一样的。使用内容:

创建文件roles/web/meta/main.yml(对于worker角色也是如此)
dependencies:
  - ferrarimarco.chruby

如果你正在寻找实际使用chruby的任务,我不得不让你失望。这个角色没什么。但在我看来chruby只是一个命令,你可以使用commandshell模块:

- name: Change ruby to 1.9.3
  shell: chruby 1.9.3

角色可以提供触发特定任务的机制(标签或外部变量),例如安装,更新或卸载软件。角色还可以提供与已安装软件交互的模块。但这不是灌木角色的情况。它只是通过apt。

安装chruby及其依赖项