Ansible:角色的任务结构

时间:2016-04-14 11:29:40

标签: ansible ansible-playbook ansible-role

我有4个剧本。其中2个正在我的目标机器上部署服务,其中2个正在再次删除它们。 现在我想把它们放在角色里。但我不确定最佳做法是什么 2个部署的剧本只使用不同的变量和模板做同样的事情。同样适用于删除剧本。

Atm我的结构如下:

ansible.cfg
ssh_key
inventoryfile
group_vars
    ....
roles
    deployservicegroupA
       vars
           ...
       templates
           ...
       tasks
           main.yml (this file simply includes the two tasks right below)
           copy-service-templates.yml
           start-services.yml
    deployservicegroupB
       vars
           ...
       templates
           ...
       tasks
           main.yml (this file simply includes the two tasks right below)
           copy-service-templates.yml
           start-services.yml
    removeservicegroupA
       vars
           ...
       templates
           ...
       tasks
           main.yml (this file simply includes the two tasks right below)
           remove-services.yml
           cleanup.yml
    removeservicegroupB
       vars
           ...
       templates
           ...
       tasks
           main.yml (this file simply includes the two tasks right below)
           remove-services.yml
           cleanup.yml

这是他们打算用户做的吗? 我特别想知道我的任务完全相同,但可以在不同的角色中找到。如果我应该将我的任务包含在main.yml任务文件中。

1 个答案:

答案 0 :(得分:2)

根据您的评论,您为每个服务使用了一个组,您可以使用group_vars指定要使用的变量。

然后,您可以将角色合并在一起,您唯一需要做的就是根据您正在运行的组加载特定模板。