Right - there is no mechanism in Ansible to do this. This is what we did for linux system roles - https://linux-system-roles.github.io/documentation/role-requirements.html - basically, made up our own file and rely on documentation.
On Mon, Oct 10, 2022 at 7:41 AM Matt Martz <[email protected]> wrote: > You should generally not do this. If you have content that is > distributed, it should only rely on others of its type. A standalone role > on a standalone role, or a collection on a collection. Note that > collections can contain roles. > > As such, there is no automatic installation of dependencies. > > Should you wish to keep your use of standalone roles with dependencies on > collections you would just have to rely on documentation. And maybe insert > some form of canary test, that tries to use a module you need, wrapped in a > block/rescue that then provides a friendly error when the module is not > available. > > On Mon, Oct 10, 2022 at 8:35 AM Todd Lewis <[email protected]> wrote: > >> We have a handful of "common" roles that are used by many of our Ansible >> projects. These projects list their required roles in their respective >> roles/requirements.yml files. Nothing surprising here; it's worked this >> way for years. >> >> With recent maintenance, one of these "common" roles has started using >> bits from a couple of collections — community.general and ansible.utils. >> From reading the docs, I erroneously thought I could specify those >> collections in meta/requirements.yml like so: >> >> --- >> collections: >> - name: community.general >> - name: ansible.utils >> >> However, that's wrong. (See this >> <https://github.com/ansible/ansible/issues/73732> for details.) >> Evidently meta/requirements.yml must be in "v1" format, which is just a >> list of roles; no "roles:" or "collections:" dict allowed. >> >> So how does a required role specify the collections on which it depends? >> >> -- >> 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 view this discussion on the web visit >> https://groups.google.com/d/msgid/ansible-project/f6fafb0d-b072-4252-9115-4132663221d9n%40googlegroups.com >> <https://groups.google.com/d/msgid/ansible-project/f6fafb0d-b072-4252-9115-4132663221d9n%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > > > -- > Matt Martz > @sivel > sivel.net > > -- > 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 view this discussion on the web visit > https://groups.google.com/d/msgid/ansible-project/CAD8N0v-X_3HTBZ-3ex2%2BXh-STOBtdHqTeBHZJEOqMA5KQwjH5g%40mail.gmail.com > <https://groups.google.com/d/msgid/ansible-project/CAD8N0v-X_3HTBZ-3ex2%2BXh-STOBtdHqTeBHZJEOqMA5KQwjH5g%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CALF5A-KQHK1CYEOOGfXm6xtJqRupVh_XP_iAQ8RWOU_-3Bq9vQ%40mail.gmail.com.
