Will this work ok if I use apt: module directly instead? For different package lists in Debian and Ubuntu, for example. 19 cze 2014 18:49 "Michael DeHaan" <[email protected]> napisaĆ(a):
> Never do this, ansible_pkg_mgr does not allow the with_items block to be > grouped into a single yum/apt transaction, which results in much slower > package installations. > > I understand why it's appealing, but really don't ... you'll also find > that the yum and apt modules have different options you may want to use > from time to time anyway. > > > On Thu, Jun 19, 2014 at 7:47 AM, Maciej Delmanowski <[email protected]> > wrote: > >> How about this solution? >> >> In `defaults/main.yml`: >> >> java_distribution_packages: >> Debian: [ 'openjdk-7', 'java-stuff' ] >> RefHat: [ 'java-runtime-7', 'other-stuff' ] >> >> And then, in `tasks/main.yml`: >> >> - {{ ansible_pkg_mgr }}: name={{ item }} state=latest >> witn_items: java_distribution_packages[ansible_os_family] >> >> I think that should work fine and let you override >> java_distribution_packages in inventory. >> >> Maciej >> >> >> 2014-06-19 14:40 GMT+02:00 Jeff Geerling <[email protected]>: >> >> The technique I usually use for making a role work cross-distro is to do >>> two things: >>> >>> *For variables*: Include a variables file named {{ ansible_os_family >>> }}.yml (then stick 'Debian.yml' and 'RedHat.yml', etc. into the role's vars >>> folder. >>> >>> *For tasks*: Add "when: ansible_os_family == 'Distribution'" to the >>> task (where 'Distribution' is Debian, RedHat, etc.). >>> >>> This presents an issue; for normal variables that I want to let role >>> users override easily, I put the variables in the roles 'defaults/main.yml' >>> file. But for distribution-specific variables (for example, "java_packages" >>> in my Java role <https://github.com/geerlingguy/ansible-role-java>), I >>> have to put the distro-specific vars include files in the main 'vars' >>> folder, so those variables have higher precedence than, say, group_vars. >>> >>> I've bumped into this a few times, but could usually find other ways of >>> getting the variable I want to take hold. For some users, it's not >>> possible, thus I have bugs like: Openjdk-7 cannot be installed >>> <https://github.com/geerlingguy/ansible-role-java/issues/1>. >>> >>> What are some possible fixes/other ways to do this? >>> >>> I could set up a variable for each distro (like "java_redhat_packages" >>> and "java_debian_packages", but in some roles, where 5-10 of these would be >>> needed, I fear maintainability and simplicity would be sacrificed for >>> variable overridability... >>> >>> -- >>> 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/d8e90023-a27d-4e71-962e-e8919aadfa83%40googlegroups.com >>> <https://groups.google.com/d/msgid/ansible-project/d8e90023-a27d-4e71-962e-e8919aadfa83%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/CAEnKK1yksi6J2QNjDYXbh1iwMwSHgxx1nLjKmOEpEVY2oic78w%40mail.gmail.com >> <https://groups.google.com/d/msgid/ansible-project/CAEnKK1yksi6J2QNjDYXbh1iwMwSHgxx1nLjKmOEpEVY2oic78w%40mail.gmail.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/CA%2BnsWgw0pa_HG2p%3DCjJWd1Q-iWy%3D6UDfdoiFRJNnd1hHw2aRHg%40mail.gmail.com > <https://groups.google.com/d/msgid/ansible-project/CA%2BnsWgw0pa_HG2p%3DCjJWd1Q-iWy%3D6UDfdoiFRJNnd1hHw2aRHg%40mail.gmail.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/CAEnKK1zX3KMkvEVxFHCpNe_UPsU%2BbYfuPAZVYstWDDb-kF77Hw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
