Hi all,

Before embarking on developing changes to some existing Win modules and 
creating new modules for some specific idempotent handling it'd be good to 
get some comments on the following. Some items numbered for 
referenceability.

*Background*
One of my company's key 3rd-party software suppliers delivers .msi 
packages. They are not good at reliably updating the imbeded ProductVersion 
and nor do they reliably update FileVersion for .exe/.dll files.
We're in the process of building 80+ roles across 10 or so server types. 
These systems have many administrator/operations people that have varying 
perspectives on the importance of controlled deployments/configuration 
management. 
We are wanting to implement compliance checking via Ansible.  Additionally, 
since we have a design that combines deployment of a software component AND 
it's configuration in the one role, we are wanting reliable idempotentcy
(component software and configuration can change independently)


*Module Changes*
In summary we're looking to add creates_path/creates_filehash to a number 
of modules, as well as some other changes, and develop new supporting 
modules

- win_package
  - creates_displayversion (was 
https://github.com/ansible/ansible/pull/42468)
  - creates_displayname (as above)
  - creates_filehash (would be hashcode result of Get-FileHash for 
file/folder specified in creates_path - default to MD5 algorithm - see 
https://gist.github.com/straff/796003e87132a466a8cf996eacff80b0)
    
- win_unzip
  - creates_filehash (as above - for file specified in creates)

- win_command/win_shell - as per win_unzip

- win_get_url
  - creates or creates_path
  - creates_filehash (as above)
  the idea here is not to download large installers (e.g. Ora 12c client at 
1.2GB) given already installed
  
*New modules*
- win_filehash
  - path - path to file for Get-FileHash
  - algorithm - as per Get-FileHash - default to MD5
  
- win_displayversion
  - displayname - partial name of installed software as per 
Programs/Features - ref 
https://gist.github.com/straff/ba3630a39ef9e1450f7e8bdd3bfb0b32
  
  
    
*Considerations*
1. is there a better place than this forum for discussing this ?
2. develop this as a single PR, or one for each of win_package, unzip, 
command, shell, get_url and one to cover both new win_filehash and 
win_displayversion ?
3. much of this can be achieved with tasks running win_command/shell and 
subsequent 'when:' logic, and in the case of win_get_url, it's always 
followed by some other tasks - these could be in a block with 'when:', but
that approach seems second-class compared to above ideas
4. likely to develop the above even if only some or none gets back into 
official Ansible
5. could avoid supporting folders for the hash function
6. use MD5 only to keep it simple rather than have an 'algorithm' parameter


Regards, Straff




-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ansible-devel+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to