sassoftware / viya-ark

SAS Viya Administration Resource Kit (SAS Viya ARK). Tools and utilities to help SAS customers with SAS Viya readiness.
Apache License 2.0
55 stars 34 forks source link

Perform package installs in a single transaction rather than using a loop #102

Open AWSmith0216 opened 1 year ago

AWSmith0216 commented 1 year ago

Is your feature request related to a problem? Please describe. Not really. In my environment, during the package pre-install phase, I had some packages succeed and some fail with SSL errors. That brought my attention to the fact the packages were installing as separate transactions, although I don't think that it's necessarily the reason for my failure.

Describe the solution you'd like Currently when installing packages, the package module is being used along with a with_items loop. This causes the package module to install each package one at a time. If the list of packages was instead passed as direct input to the name parameter, then the packages would be installed in a single transaction. That would likely be a bit faster and perhaps more reliable.

Refer to https://github.com/ansible/ansible/issues/24581 for some discussion.

Describe alternatives you've considered None. This seems to be the preferred approach.

Additional context Example of current output:

TASK [viya-ark.preinstall : Ensures required packages are present] *************
changed: [10.11.12.13] => (item=numactl) => {"ansible_loop_var": "item", "changed": true, "item": "numactl", "msg": "", "rc": 0, "results": ["Installed: numactl-2.0.12-13.el8.x86_64"]}
changed: [10.11.12.13] => (item=libXp.x86_64) => {"ansible_loop_var": "item", "changed": true, "item": "libXp.x86_64", "msg": "", "rc": 0, "results": ["Installed: libXp-1.0.3-3.el8.x86_64"]}
ok: [10.11.12.13] => (item=libXext) => {"ansible_loop_var": "item", "changed": false, "item": "libXext", "msg": "Nothing to do", "rc": 0, "results": []}
changed: [10.11.12.13] => (item=libXmu) => {"ansible_loop_var": "item", "changed": true, "item": "libXmu", "msg": "", "rc": 0, "results": ["Installed: libICE-1.0.9-15.el8.x86_64", "Installed: libXmu-1.1.3-1.el8.x86_64", "Installed: libSM-1.2.3-1.el8.x86_64", "Installed: libXt-1.1.5-12.el8.x86_64"]}
changed: [10.11.12.13] => (item=libXtst) => {"ansible_loop_var": "item", "changed": true, "item": "libXtst", "msg": "", "rc": 0, "results": ["Installed: libXi-1.7.10-1.el8.x86_64", "Installed: libXtst-1.2.3-7.el8.x86_64"]}
changed: [10.11.12.13] => (item=xterm) => {"ansible_loop_var": "item", "changed": true, "item": "xterm", "msg": "", "rc": 0, "results": ["Installed: pkgconf-1.4.2-1.el8.x86_64", "Installed: pkgconf-m4-1.4.2-1.el8.noarch", "Installed: pkgconf-pkg-config-1.4.2-1.el8.x86_64", "Installed: libfontenc-1.1.3-8.el8.x86_64", "Installed: xorg-x11-fonts-misc-7.5-19.el8.noarch", "Installed: libXpm-3.5.12-9.el8_7.x86_64", "Installed: libXft-2.3.3-1.el8.x86_64", "Installed: xorg-x11-font-utils-1:7.5-41.el8.x86_64", "Installed: libXaw-1.0.13-10.el8.x86_64", "Installed: libpkgconf-1.4.2-1.el8.x86_64", "Installed: xterm-331-1.el8_3.2.x86_64", "Installed: xterm-resize-331-1.el8_3.2.x86_64"]}
changed: [10.11.12.13] => (item=net-tools) => {"ansible_loop_var": "item", "changed": true, "item": "net-tools", "msg": "", "rc": 0, "results": ["Installed: net-tools-2.0-0.52.20160912git.el8.x86_64"]}

There should instead be a single "changed" line.

kevinlinglesas commented 1 year ago

Thank you @AWSmith0216 for your interest in this project and the time you took to submit this enhancement request. Unfortunately, we are not able to consider enhancement requests for this project at this time.
We are able to consider contributions from the user community. If you are interested and able, please submit a pull request covering your suggested enhancement. Pull requests should target the develop branch.