Paul, Thanks for that feedback. Definitely some things to think about here for sure. I thought I had remembered reading somewhere that is wasn't a great idea, and was not able to figure out where I had read that so I am glad you brought up that it wasn't recommended with earlier versions. My thought, is that if a role is being imported inside a role to make sure that dependencies were met, that it might be better done in the master playbook, instead of the role to make debugging easier. I am sure there are other reasons too but that is one of the first things that came to mind.
--John On Sun, Jun 19, 2022 at 10:30 AM Paul Manno <[email protected]> wrote: > Hello flowerysong, > > I'm sure it was the case, at least with older versions of ansible, that > the doc included a statement that roles should not be included from other > roles and that the dependency mechanism should be used instead. Looking at > the link you posted, that feature has only been available since v2.10. I'm > using AWX, running 2.9, and the official RedHat ansible tower is only up to > ansible 2.9.27. That suggests that the feature you're referencing wouldn't > even work in Tower or AWX? Are you using tower and/or AWX and are you able > to use that feature? Another question world be about dependencies for the > roles you import because older roles may still use the older meta/main.yml > which would not be evaluated on role import? > > So maybe we are finding even more reason to not import roles in roles due > to backwards compatibility issues? > > > > Sent from my T-Mobile 5G Device > Get Outlook for Android <https://aka.ms/AAb9ysg> > ------------------------------ > *From:* [email protected] <[email protected]> > on behalf of flowerysong <[email protected]> > *Sent:* Saturday, June 18, 2022 11:45:26 PM > *To:* Ansible Project <[email protected]> > *Subject:* Re: [ansible-project] nested roles > > I highly disagree with this, and would be interested in a pointer to the > documentation that you say claims "importing a role in the tasks of another > role is a bad idea" since I've never seen that in the official Ansible > documentation. > > Explicitly importing or including the role provides more control over > execution order, and ansible-galaxy can still handle dependency install by > listing them in meta/requirements.yml ( > https://docs.ansible.com/ansible/latest/galaxy/user_guide.html#using-meta-requirements-yml > ) > > On Saturday, June 18, 2022 at 11:33:55 AM UTC-4 [email protected] wrote: > > Hi John, > > Per ansible doc, you should not import a role within another role. > Instead, you should use the built in dependencies model. Importing a role > in the tasks of another role is a bad idea because it reduces the > portability of the role. You'd have to guarantee that the role you're using > and the role you import are both present in your roles dir. The dependency > model ansible provides solves this problem by leveraging the ansible galaxy > command to pull dependencies from remote repositories. > > Paul > > Sent from my T-Mobile 5G Device > Get Outlook for Android <https://aka.ms/AAb9ysg> > > ------------------------------ > *From:* [email protected] <[email protected]> on > behalf of John Petro <[email protected]> > *Sent:* Friday, June 17, 2022, 3:26 PM > *To:* [email protected] <[email protected]> > *Subject:* [ansible-project] nested roles > > I have a question regarding nested roles. > > Back Story: I am doing some code reviews for some ansible code a coworker > has done. I noticed that they are importing other roles into the role they > are working on. > > Question: I feel like this is not a good idea, that dependencies should > be taken care of at the playbook level, but I am having a difficult time > justifying why nesting roles is not necessarily a good idea, so I am > looking for some feedback to help me here. I welcome your thoughts on > this... > > --John > > -- > 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/CAPAjob8sDH_4Sz23MFPTsBiB0wzmokOKmyJdfkGdsPY6nTZchQ%40mail.gmail.com > <https://groups.google.com/d/msgid/ansible-project/CAPAjob8sDH_4Sz23MFPTsBiB0wzmokOKmyJdfkGdsPY6nTZchQ%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/7d730b37-122d-44c8-b198-b3a0589984bdn%40googlegroups.com > <https://groups.google.com/d/msgid/ansible-project/7d730b37-122d-44c8-b198-b3a0589984bdn%40googlegroups.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/MN2PR03MB4703E9E402FC785F06A0FC11FDB19%40MN2PR03MB4703.namprd03.prod.outlook.com > <https://groups.google.com/d/msgid/ansible-project/MN2PR03MB4703E9E402FC785F06A0FC11FDB19%40MN2PR03MB4703.namprd03.prod.outlook.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/CAPAjob9%3DGxRHU0EDoMfh10qcKdtqNFUv-brUdWeADXOx5uoh1w%40mail.gmail.com.
