I also yearn for a solution to this problem -- I think that ansible
playbooks don't compose well -- and roles are (in my opinion) a not-so-good
abstraction for code re-use / process organization.  Frequently for the
'orchestration' portion of some automation I find myself needing playbooks
and the only way I can write playbook logic with access to resources that
is shared with other playbooks (vars, group_vars, plugins etc) is to keep
them all in what becomes a giant directory of playbooks ...  Its both
annoying and harder to organize/package for other users than it would be if
I could compose the playbook units in a better way ...  I'd love to be able
to:

(1) include a playbook from another playbook with dynamically specified
hosts: eg something like:
include: some-playbook.yml hosts={{some_host_or_group_determined_by_logic}}

(2) organize my playbooks so that I can suggest to other developers which
playbooks are entry points and which are only meant to be used as part of
other automation pipelines -- while keeping a unified
'file/template/plugin/var_file...' search space ...
include: ./some_dir/some-playbook.yml keep_resource_search_paths=true


On Mon, Jan 4, 2016 at 5:50 PM, Yoshi Spendiff <yoshispend...@gmail.com>
wrote:

> Hi,
>
> Torsten, did you ever find an answer?
>
> It seems like it should be trivial to simply have a *plays *or *playbooks
> *directory, but I'm not finding a good way to do it...
>
> Breaking down into projects isn't what I'm looking for as I'd like to
> share roles
>
> Regards,
> Yoshi
>
>
> On Thursday, May 28, 2015 at 8:09:06 AM UTC-7, Ulrich Hochholdinger wrote:
>>
>> Hi,
>> I'm also in the situation to get "many" different projects under control
>> and use following directory structure:
>> - one folder per project with dependeing playbooks and roles
>> - global inventory with one folder per stage (since the project share
>> hosts I made only one inventory )
>> - group_vars and host_vars only in inventory
>> - global "site.yml' including playbooks out of projects
>> - "only for "global_roles" I had to add one Entry in roles_path in my
>> ansible.cfg
>>
>> I don't know if this is good practice. Improvements and tips are welcome
>> :D
>>
>> Details:
>>
>> site.yml example:
>> ---
>> - include project1/deployment.yml
>> - include project2/play.yml
>> ...
>>
>> Directory-Layout:
>>  ansible/
>> ├── site.yml
>> ├── project1/
>> │   ├── character1.yml
>> │   ├── character2.yml
>> │   ├── config_mgmt.yml
>> │   ├── deployment.yml
>> │   ├── library/
>> │   │   └── module1
>> │   ├── roles/
>> │   │   ├── role1/
>> │   │   └── role2/
>> │   └── site.yml
>> ├── project2/
>> │   ├── roles/
>> │   └──  ...
>> ├── project3/
>> ├── .../
>> ├── global_roles/
>> │   ├── role1/
>> │   └── role2/
>> ├── inventory/
>> │   ├── development/
>> │   │   ├── project1
>> │   │   ├── project2
>> │   │   ├── ....
>> │   │   ├── group_vars/
>> │   │   └── host-vars/
>> │   ├── integration/
>> │   │   └── ...
>> │   ├── staging/
>> │   └── production/
>>
>>
>> Cheers
>>      Ulli
>> Am Donnerstag, 28. Mai 2015 12:55:24 UTC+2 schrieb Torsten Reinhard:
>>>
>>> in addition, also the group_vars cannot be resolved - they are expected
>>> relative to the playbook(s) - or the inventory hosts file.
>>>
>>> => how do i define common group_vars/all.yml - when i want to structure
>>> my playbooks in (sub) directories ?
>>>
>>> Regards, Torsten
>>>
>> --
> You received this message because you are subscribed to the Google Groups
> "Ansible Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to ansible-project+unsubscr...@googlegroups.com.
> To post to this group, send email to ansible-project@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/5f73dfaf-a13d-4336-af8d-922b3fe8fa3c%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/5f73dfaf-a13d-4336-af8d-922b3fe8fa3c%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ansible-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CABUBibuuO%3DTqmc8vAr-d5tnedNn9cKYcG_zMvWfGXSASnOsaww%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to