Nota

Este complemento es parte del colección ansible.windows (versión 1.3.0).

Para instalarlo use: ansible-galaxy collection install ansible.windows.

Para usarlo en un libro de jugadas, especifique: ansible.windows.win_package.

  • Sinopsis
  • Parámetros
  • Notas
  • Ver también
  • Ejemplos de
  • Valores devueltos

Sinopsis

  • Instala o desinstala paquetes de software para Windows.
  • Apoyos .exe, .msi, .msp, .appx, .appxbundle, .msix, y .msixbundle.
  • Estos paquetes se pueden obtener del sistema de archivos local, el recurso compartido de archivos de red o una URL.
  • Ver proveedor para obtener más información sobre cada tipo de paquete admitido.

Parámetros

Parámetro Opciones / Valores predeterminados Comentarios
argumentos crudo Cualquier argumento que necesite el instalador para instalar o desinstalar el paquete. Si el paquete es un MSI, no proporcione el /qn, /log o /norestart argumentos. Esto solo se usa para msi, msp, y registry proveedores. Puede ser una lista de argumentos y el módulo escapará de los argumentos según sea necesario, se recomienda usar una cadena cuando se trata de paquetes MSI debido a los problemas de escape únicos con msiexec.
chdir sendero Establezca la ruta especificada como el directorio de trabajo actual antes de instalar o desinstalar un paquete. Esto solo se usa para msi, msp, y registry proveedores.
client_cert cuerda La ruta al certificado de cliente (.pfx) que se usa para la autenticación X509. Este camino puede ser el camino al pfx en el sistema de archivos o en la ruta del certificado de PowerShell Cert:CurrentUserMy<thumbprint>. La conexión WinRM debe autenticarse con CredSSP o become se utiliza en la tarea si el archivo de certificado no está protegido por contraseña. Se pueden configurar otros tipos de autenticación client_cert_password cuando el certificado está protegido con contraseña.
client_cert_password cuerda La contraseña para client_cert si el certificado está protegido con contraseña.
crea_ruta sendero Verificará la existencia de la ruta especificada y usará el resultado para determinar si el paquete ya está instalado. Puede usar esto junto con product_id y otra creates_*.
crea_servicio cuerda Verificará la existencia del servicio especificado y usará el resultado para determinar si el paquete ya está instalado. Puede usar esto junto con product_id y otra creates_*.
crea_versión cuerda Verificará la propiedad de versión de archivo del archivo en creates_path y utilice el resultado para determinar si el paquete ya está instalado.
creates_path DEBE estar configurado y es un archivo. Puede usar esto junto con product_id y otra creates_*.
código_de_retorno_esperado lista / elementos = entero Defecto:
[0, 3010]
Uno o más códigos de retorno de la instalación del paquete que indican éxito. Los códigos de retorno se leen como un entero con signo, cualquier valor superior a 2147483647 debe representarse como el equivalente con signo, es decir 4294967295 es -1. Para convertir un número sin firmar en el equivalente firmado, puede ejecutar “[Int32](“0x 0: X” -f ([UInt32]3221225477)) “. Un código de retorno de 3010 normalmente significa que es necesario reiniciar, el reboot_required El valor de retorno se establece si el código de retorno es 3010. Esto solo se usa para msi, msp, y registry proveedores.
follow_redirects cuerda
    Opciones:

  • todos
  • ninguno
  • a salvo
Si el módulo debe seguir redireccionamientos.
all Seguirá todas las redirecciones.
none no seguirá ninguna redirección.
safe Seguirá solo redireccionamientos “seguros”, donde “seguro” significa que el cliente solo está haciendo un GET o HEAD en el URI al que se redirige. Al seguir una URL redirigida, el Authorization El encabezado y las credenciales establecidas se eliminarán y no se redirigirán.
force_basic_auth booleano
    Opciones:

  • no
De forma predeterminada, el encabezado de autenticación solo se envía cuando un servicio web responde a una solicitud inicial con un estado 401. Dado que algunos servicios de autenticación básicos no envían correctamente un 401, los inicios de sesión fallarán. Esta opción fuerza el envío del encabezado de autenticación básica a la solicitud original.
encabezados diccionario Encabezados adicionales para configurar en la solicitud. Este debería ser un diccionario donde la clave es el nombre del encabezado y el valor es el valor para ese encabezado.
http_agent cuerda Defecto:
“ansible-httpget”
Encabezado para identificar como, generalmente aparece en los registros del servidor web. Esto se establece en el User-Agent encabezado en una solicitud HTTP.
log_path sendero Especifica la ruta a un archivo de registro que se conserva después de instalar o desinstalar un paquete. Esto solo se usa para msi o msp proveedor. Cuando se omite, se usa un archivo de registro temporal para esos proveedores. Esto solo es válido para archivos MSI, use arguments Para el registry proveedor.
redireccion_máxima entero Defecto:
50
Especifique cuántas veces el módulo redirigirá una conexión a un URI alternativo antes de que falle la conexión. Si se establece en 0 o follow_redirects se establece en none, o safe cuando no está haciendo un GET o HEAD evita toda redirección.
contraseña cuerda La contraseña para user_name, debe configurarse cuando user_name es. Esta opción está obsoleta a favor del uso de convertirse, consulte los ejemplos para obtener más información. Se eliminará en la versión principal después de 2022-07-01.

alias: contraseña_usuario
sendero cuerda Ubicación del paquete que se instalará o desinstalará. Este paquete puede estar en el sistema de archivos local, en un recurso compartido de red o en una URL. Cuando state=present, product_id no está configurado y la ruta es una URL, este archivo siempre se descargará a un directorio temporal para las verificaciones de idempotencia; de lo contrario, el archivo solo se descargará si el paquete no se ha instalado según el product_id cheques. Si state=present entonces se DEBE establecer este valor. Si state=absent entonces este valor no necesita establecerse si product_id es.
identificación de producto cuerda El ID de producto del paquete instalado. Se utiliza para comprobar si el producto ya está instalado y obtener la información de desinstalación si state=absent. Para paquetes msi, esta es la ProductCode (GUID) del paquete. Esto se puede encontrar en las mismas rutas de registro que el registry proveedor. Para paquetes msp, esta es la PatchCode (GUID) del paquete que se puede encontrar en la Details -> Revision number de las propiedades del archivo. Para paquetes msix, este es el Name o PackageFullName del paquete que se encuentra debajo del Get-AppxPackage cmdlet. Para paquetes de registro (exe), este es el nombre de la clave de registro en las rutas de registro especificadas en proveedor. Este valor se ignora si path está configurado en una ruta de archivo accesible local y el paquete no es un exe. Esto DEBE establecerse cuando el paquete es un exe, o la ruta es una URL o un recurso compartido de red y no se está utilizando la delegación de credenciales. los creates_* En su lugar, se pueden utilizar opciones, pero no se recomienda. El alias identificación de producto está en desuso y se eliminará en la versión principal después de 2022-07-01.

alias: productid
proveedor cuerda
    Opciones:

  • auto
  • msi
  • msix
  • msp
  • registro
Configure el proveedor de paquetes que se utilizará al buscar un paquete. los auto proveedor seleccionará el proveedor adecuado si sendero de lo contrario, analiza todos los demás proveedores en función de la identificación de producto. los msi El proveedor analiza los paquetes MSI instalados en una máquina y el contexto de usuario actual basado en el ProductCode del MSI. los msix el proveedor se usa para instalar .appx, .msix, .appxbundle, o .msixbundle paquetes. Estos paquetes solo se instalan o eliminan con el uso actual. El host debe estar configurado para permitir aplicaciones de descarga lateral o en modo de desarrollador. Vea los ejemplos para saber cómo habilitar esto. Si un paquete ya está instalado pero path apunta a un paquete actualizado, este se instalará sobre el existente. los msp El proveedor analiza todos los parches de MSP instalados en una máquina y el contexto de usuario actual basado en el PatchCode del MSP. A msp se aplicará o eliminará en todos msi productos a los que se aplica y se instala. Si el parche está obsoleto o reemplazado, no se tomará ninguna medida. los registry proveedor se utiliza para tradicional exe instaladores y utiliza la siguiente ruta de registro para determinar si se instaló un producto; HKLM:SoftwareMicrosoftWindowsCurrentVersionUninstall, HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall, HKCU:SoftwareMicrosoftWindowsCurrentVersionUninstall, y HKCU:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall.
proxy_password cuerda La contraseña para proxy_username.
proxy_url cuerda Un proxy explícito para usar en la solicitud. De forma predeterminada, la solicitud utilizará el proxy definido por IE a menos que usa proxy se establece en no.
proxy_use_default_credential booleano
    Opciones:

  • no
Utiliza las credenciales del usuario actual cuando se autentica con un host proxy protegido con NTLM, Kerberos, o Negotiate autenticación. Proxies que usan Basic auth aún requerirá credenciales explícitas a través del proxy_username y proxy_password opciones. El módulo solo tendrá acceso a las credenciales del usuario si usa become con una contraseña, se está conectando con SSH usando una contraseña, o se está conectando con WinRM usando CredSSP o Kerberos with delegation. Si no está usando become o un método de autenticación diferente a los indicados anteriormente, no habrá credenciales predeterminadas disponibles y no ocurrirá autenticación de proxy.
proxy_username cuerda El nombre de usuario que se utilizará para la autenticación de proxy.
estado cuerda
    Opciones:

  • ausente
  • regalo
Ya sea para instalar o desinstalar el paquete. El módulo utiliza identificación de producto para determinar si el paquete está instalado o no. Para todos los proveedores pero auto, los sendero se puede usar para verificaciones de idempotencia si es una ruta de acceso del sistema de archivos localmente accesible. El alias garantizar está en desuso y se eliminará en la versión principal después de 2022-07-01.

alias: asegurar
url_method cuerda El método HTTP de la solicitud.
url_password cuerda La contraseña para url_username.
url_timeout entero Defecto:
30
Especifica cuánto tiempo puede estar pendiente la solicitud antes de que se agote (en segundos). Ajustado a 0 para especificar un tiempo de espera infinito.
url_username cuerda El nombre de usuario que se utilizará para la autenticación.
use_default_credential booleano
    Opciones:

  • no
Utiliza las credenciales del usuario actual cuando se autentica con un servidor protegido con NTLM, Kerberos, o Negotiate autenticación. Sitios que utilizan Basic auth aún requerirá credenciales explícitas a través del url_username y url_password opciones. El módulo solo tendrá acceso a las credenciales del usuario si usa become con una contraseña, se está conectando con SSH usando una contraseña, o se está conectando con WinRM usando CredSSP o Kerberos with delegation. Si no está usando become o un método de autenticación diferente a los indicados anteriormente, no habrá credenciales predeterminadas disponibles y no se producirá ninguna autenticación.
usa proxy booleano
    Opciones:

  • no
Si no, no utilizará el proxy definido en IE para el usuario actual.
nombre de usuario cuerda Nombre de usuario de una cuenta con acceso al paquete si se encuentra en un archivo compartido. Esto solo es necesario si el transporte de WinRM se realiza a través de un método de autenticación que no admite la delegación de credenciales como Basic o NTLM o no se utiliza. Esta opción está obsoleta a favor del uso de convertirse, consulte los ejemplos para obtener más información. Se eliminará en la versión principal después de 2022-07-01.

alias: nombre_usuario
validate_certs booleano
    Opciones:

  • no
Si no, Los certificados SSL no se validarán. Esto solo debe usarse en sitios controlados personalmente que utilicen certificados autofirmados.
wait_for_children booleano agregado en 1.3.0 de ansible.windows
    Opciones:

  • no
El módulo esperará a que finalice el proceso que genera, pero cualquier proceso generado en ese proceso hijo se ignorará. Ajustado a yes para esperar a que finalicen todos los procesos descendientes antes de que regrese el módulo. Esto es útil si el instalador / desinstalador es solo un contenedor que luego llama al instalador real como su propio proceso hijo. Cuando esta opción es yes entonces el módulo esperará a que finalicen ambos procesos antes de regresar. Esto no debería ser necesario para la mayoría de los instaladores y la configuración para yes podría resultar en que el módulo no regrese hasta que el proceso que está esperando se haya detenido manualmente. Requiere Windows Server 2012 o Windows 8 o más reciente para usar.

Notas

Nota

  • Cuando state=absent y el producto es un exe, la ruta puede ser diferente de la que se usó para instalar el paquete originalmente. Si no se establece la ruta, la ruta utilizada será la que se establece en QuietUninstallString o UninstallString en el registro para eso identificación de producto.
  • De forma predeterminada, todas las instalaciones y desinstalaciones de msi se ejecutarán con los argumentos /log, /qn, /norestart.
  • Todas las comprobaciones de instalación en product_id y creates_* si se suman, si uno falla, se considera que el programa está ausente.

Ver también

Ver también

chocolatey.chocolatey.win_chocolatey

La documentación oficial sobre el chocolatey.chocolatey.win_chocolatey módulo.

community.windows.win_hotfix

La documentación oficial sobre el community.windows.win_hotfix módulo.

ansible.windows.win_updates

La documentación oficial sobre el ansible.windows.win_updates módulo.

community.windows.win_inet_proxy

La documentación oficial sobre el community.windows.win_inet_proxy módulo.

Ejemplos de

- name: Install the Visual C thingy
  ansible.windows.win_package:
    path: http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe
    product_id: 'CF2BEA3C-26EA-32F8-AA9B-331F7E34BA97'
    arguments: /install /passive /norestart

- name: Install Visual C thingy with list of arguments instead of a string
  ansible.windows.win_package:
    path: http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe
    product_id: 'CF2BEA3C-26EA-32F8-AA9B-331F7E34BA97'
    arguments:
    - /install
    - /passive
    - /norestart

- name: Install Remote Desktop Connection Manager from msi with a permanent log
  ansible.windows.win_package:
    path: https://download.microsoft.com/download/A/F/0/AF0071F3-B198-4A35-AA90-C68D103BDCCF/rdcman.msi
    product_id: '0240359E-6A4C-4884-9E94-B397A02D893C'
    state: present
    log_path: D:logsvcredist_x64-exe-lookup('pipe', 'date +%Y%m%dT%H%M%S').log

- name: Uninstall Remote Desktop Connection Manager
  ansible.windows.win_package:
    product_id: '0240359E-6A4C-4884-9E94-B397A02D893C'
    state: absent

- name: Install Remote Desktop Connection Manager locally omitting the product_id
  ansible.windows.win_package:
    path: C:temprdcman.msi
    state: present

- name: Uninstall Remote Desktop Connection Manager from local MSI omitting the product_id
  ansible.windows.win_package:
    path: C:temprdcman.msi
    state: absent

# 7-Zip exe doesn't use a guid for the Product ID
- name: Install 7zip from a network share with specific credentials
  ansible.windows.win_package:
    path: \domainprograms7z.exe
    product_id: 7-Zip
    arguments: /S
    state: present
  become: yes
  become_method: runas
  become_flags: logon_type=new_credential logon_flags=netcredentials_only
  vars:
    ansible_become_user: DOMAINUser
    ansible_become_password: Password

- name: Install 7zip and use a file version for the installation check
  ansible.windows.win_package:
    path: C:temp7z.exe
    creates_path: C:Program Files7-Zip7z.exe
    creates_version: 16.04
    state: present

- name: Uninstall 7zip from the exe
  ansible.windows.win_package:
    path: C:Program Files7-ZipUninstall.exe
    product_id: 7-Zip
    arguments: /S
    state: absent

- name: Uninstall 7zip without specifying the path
  ansible.windows.win_package:
    product_id: 7-Zip
    arguments: /S
    state: absent

- name: Install application and override expected return codes
  ansible.windows.win_package:
    path: https://download.microsoft.com/download/1/6/7/167F0D79-9317-48AE-AEDB-17120579F8E2/NDP451-KB2858728-x86-x64-AllOS-ENU.exe
    product_id: '7DEBE4EB-6B40-3766-BB35-5CBBC385DA37'
    arguments: '/q /norestart'
    state: present
    expected_return_code: [0, 666, 3010]

- name: Install a .msp patch
  ansible.windows.win_package:
    path: C:PatchesProduct.msp
    state: present

- name: Remove a .msp patch
  ansible.windows.win_package:
    product_id: 'AC76BA86-A440-FFFF-A440-0C13154E5D00'
    state: absent

- name: Enable installation of 3rd party MSIX packages
  ansible.windows.win_regedit:
    path: HKLM:SOFTWAREMicrosoftWindowsCurrentVersionAppModelUnlock
    name: AllowAllTrustedApps
    data: 1
    type: dword
    state: present

- name: Install an MSIX package for the current user
  ansible.windows.win_package:
    path: C:InstallersCalculator.msix  # Can be .appx, .msixbundle, or .appxbundle
    state: present

- name: Uninstall an MSIX package using the product_id
  ansible.windows.win_package:
    product_id: InputApp
    state: absent

Valores devueltos

Los valores de retorno comunes están documentados aquí, los siguientes son los campos exclusivos de este módulo:

Llave Devuelto Descripción
Iniciar sesión cuerda falla de instalación / desinstalación para paquetes MSI o MSP El contenido del registro MSI o MSP.
Muestra: La instalación se completó con éxito
rc entero se produjo el cambio El código de retorno del proceso del paquete.
reinicio requerido booleano siempre Si es necesario reiniciar para finalizar el paquete. Esto se establece en verdadero si el código de retorno ejecutable es 3010.
Muestra: Cierto
stderr cuerda falla durante la instalación o desinstalación El flujo stderr del proceso del paquete.
Muestra: No se pudo instalar el programa
stdout cuerda falla durante la instalación o desinstalación El flujo de salida estándar del proceso del paquete.
Muestra: Programa de instalación

Autores

  • Trond Hindenes (@trondhindenes)
  • Jordan Borean (@ jborean93)