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 <[email protected]>
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 [email protected].
> To post to this group, send email to [email protected].
> 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 [email protected].
To post to this group, send email to [email protected].
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