If you are using awx, you can just create a `collections/requirements.yml` file that can specify those needed collections.
See: https://github.com/ansible/awx/blob/devel/docs/collections.md On Mon, Oct 10, 2022 at 10:25 AM Todd Lewis <[email protected]> wrote: > Alas, these projects all run on AWX, so we can't rely on documented extra > steps. It needs to work using the existing AWX scm update processes. > > We get away with it as long as the required collections are already > installed in one of the collection path directories. And they often will be > on local workstations or AWX. But we obviously can't rely on that. > > We'll either have to move these roles into our "collection-common" project > from which we build our common collection, adding the dependencies to > galaxy.yml there, or we'll need to ensure through our CI pipelines that > projects pulling in the common roles include their required collections in > each project's collections/requirements.yml. > > This is not at all the answer I was expecting. But at least I can quit > trying to make the unworkable work. > > On Monday, October 10, 2022 at 10:01:08 AM UTC-4 Richard Megginson wrote: > >> 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/b6d1384d-14cb-4ebc-ba2e-1bf8a7a6001bn%40googlegroups.com > <https://groups.google.com/d/msgid/ansible-project/b6d1384d-14cb-4ebc-ba2e-1bf8a7a6001bn%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/CAD8N0v9M62P5chkHFNbjQHdw7THVaFLh0o%2B-ucOToGQS2UBqVw%40mail.gmail.com.
