ansible-collections / ansible.windows

Windows core collection for Ansible
https://galaxy.ansible.com/ansible/windows
GNU General Public License v3.0
249 stars 169 forks source link

Install Embedded AppxPackage need to have path #467

Closed Catskan closed 1 year ago

Catskan commented 1 year ago
SUMMARY

I would like to install "Gaming.Services", it's a AppxPackages already in Windows 11. But, the task failed because it need the field "path". However, I use the win_packages task to uninstall some packages, and works good.

I search in the documentation to know what ansible.windows.win_package need in "Path" for embedded packages, but didn't find anything.

ISSUE TYPE
COMPONENT NAME

ansible.windows.win_package

ANSIBLE VERSION
ansible [core 2.14.1]
  config file = None
  configured module search path = ['/home/aurelien/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/aurelien/.local/lib/python3.11/site-packages/ansible
  ansible collection location = /home/aurelien/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/aurelien/.local/bin/ansible
  python version = 3.11.1 (main, Jan  3 2023, 18:24:27) [GCC 10.2.1 20210110] (/usr/local/bin/python3)
  jinja version = 3.1.2
  libyaml = True
COLLECTION VERSION
Collection                    Version
----------------------------- -------
amazon.aws                    5.1.0  
ansible.netcommon             4.1.0  
ansible.posix                 1.4.0  
ansible.utils                 2.8.0  
ansible.windows               1.12.0 
arista.eos                    6.0.0  
awx.awx                       21.10.0
azure.azcollection            1.14.0 
check_point.mgmt              4.0.0  
chocolatey.chocolatey         1.3.1  
cisco.aci                     2.3.0  
cisco.asa                     4.0.0  
cisco.dnac                    6.6.1  
cisco.intersight              1.0.22 
cisco.ios                     4.0.0  
cisco.iosxr                   4.0.3  
cisco.ise                     2.5.9  
cisco.meraki                  2.13.0 
cisco.mso                     2.1.0  
cisco.nso                     1.0.3  
cisco.nxos                    4.0.1  
cisco.ucs                     1.8.0  
cloud.common                  2.1.2  
cloudscale_ch.cloud           2.2.3  
community.aws                 5.0.0  
community.azure               2.0.0  
community.ciscosmb            1.0.5  
community.crypto              2.9.0  
community.digitalocean        1.22.0 
community.dns                 2.4.2  
community.docker              3.3.1  
community.fortios             1.0.0  
community.general             6.1.0  
community.google              1.0.0  
community.grafana             1.5.3  
community.hashi_vault         4.0.0  
community.hrobot              1.6.0  
community.libvirt             1.2.0  
community.mongodb             1.4.2  
community.mysql               3.5.1  
community.network             5.0.0  
community.okd                 2.2.0  
community.postgresql          2.3.1  
community.proxysql            1.4.0  
community.rabbitmq            1.2.3  
community.routeros            2.5.0  
community.sap                 1.0.0  
community.sap_libs            1.4.0  
community.skydive             1.0.0  
community.sops                1.5.0  
community.vmware              3.2.0  
community.windows             1.11.1 
community.zabbix              1.9.0  
containers.podman             1.10.1 
cyberark.conjur               1.2.0  
cyberark.pas                  1.0.14 
dellemc.enterprise_sonic      2.0.0  
dellemc.openmanage            6.3.0  
dellemc.os10                  1.1.1  
dellemc.os6                   1.0.7  
dellemc.os9                   1.0.4  
f5networks.f5_modules         1.21.0 
fortinet.fortimanager         2.1.7  
fortinet.fortios              2.2.1  
frr.frr                       2.0.0  
gluster.gluster               1.0.2  
google.cloud                  1.0.2  
grafana.grafana               1.1.0  
hetzner.hcloud                1.9.0  
hpe.nimble                    1.1.4  
ibm.qradar                    2.1.0  
ibm.spectrum_virtualize       1.10.0 
infinidat.infinibox           1.3.12 
infoblox.nios_modules         1.4.1  
inspur.ispim                  1.2.0  
inspur.sm                     2.3.0  
junipernetworks.junos         4.1.0  
kubernetes.core               2.3.2  
lowlydba.sqlserver            1.2.1  
mellanox.onyx                 1.0.0  
netapp.aws                    21.7.0 
netapp.azure                  21.10.0
netapp.cloudmanager           21.21.0
netapp.elementsw              21.7.0 
netapp.ontap                  22.0.1 
netapp.storagegrid            21.11.1
netapp.um_info                21.8.0 
netapp_eseries.santricity     1.3.1  
netbox.netbox                 3.9.0  
ngine_io.cloudstack           2.3.0  
ngine_io.exoscale             1.0.0  
ngine_io.vultr                1.1.2  
openstack.cloud               1.10.0 
openvswitch.openvswitch       2.1.0  
ovirt.ovirt                   2.4.1  
purestorage.flasharray        1.15.0 
purestorage.flashblade        1.10.0 
purestorage.fusion            1.2.0  
sensu.sensu_go                1.13.1 
splunk.es                     2.1.0  
t_systems_mms.icinga_director 1.31.4 
theforeman.foreman            3.7.0  
vmware.vmware_rest            2.2.0  
vultr.cloud                   1.3.1  
vyos.vyos                     4.0.0  
wti.remote                    1.0.4  

# /home/aurelien/.ansible/collections/ansible_collections
Collection        Version
----------------- -------
ansible.windows   1.13.0 
community.general 6.1.0
CONFIGURATION
CONFIG_FILE() = None
OS / ENVIRONMENT

Debian container

STEPS TO REPRODUCE
  - name: Uninstall WindowsAppxPackages
    ansible.windows.win_package:
        product_id: "{{ item }}"
        state: present
    loop:
        - Microsoft.GamingServices
ACTUAL RESULTS
failed: [aurelien-gaming] (item=Microsoft.GamingServices) => {"ansible_loop_var": "item", "changed": false, "item": "Microsoft.GamingServices", "msg": "state is present but all of the following are missing: path"}

Thanks for your advices

jborean93 commented 1 year ago

To install a package you always need to specify the path, the module can't install something if it doesn't have anything to install from. Uninstalling packages is a different story as typically the files needed to uninstall something are still on host and can be queried through just the product_id.

So for Microsoft.GaminingServices you need to specify the path to the appx/appxbundle needed to install the product.