Note

Ce plugin fait partie de la collection ansible.windows (version 1.3.0).

Pour l'installer, utilisez : ansible-galaxy collection install ansible.windows.

Pour l'utiliser dans un playbook, spécifiez : ansible.windows.win_package.

  • Synopsis
  • Paramètres
  • Notes
  • Voir aussi
  • Exemples
  • Valeurs de retour

Synopsis

  • Installe ou désinstalle des progiciels pour Windows.
  • Prend en charge .exe, .msi, .msp, .appx, .appxbundle, .msixet .msixbundle.
  • Ces paquets peuvent provenir du système de fichiers local, d'un partage de fichiers réseau ou d'une url.
  • Voir fournisseur pour plus d'infos sur chaque type de paquet pris en charge.

Paramètres

Paramètre Choix/par défaut Commentaires
argumentsbrut Tous les arguments dont le programme d'installation a besoin pour installer ou désinstaller le paquet.Si le paquet est un MSI, ne fournissez pas l'option /qn, /log ou /norestart Ceci n'est utilisé que pour les arguments msi, mspet registry Peut être une liste d'arguments et le module échappera les arguments si nécessaire, il est recommandé d'utiliser une chaîne de caractères lors du traitement des paquets MSI en raison des problèmes uniques d'échappement avec msiexec.
chdirchemin d'accès Définir le chemin spécifié comme le répertoire de travail actuel avant d'installer ou de désinstaller un paquet.Ceci n'est utilisé que pour l'option msi, mspet registry fournisseurs.
client_certchaîne de caractères Le chemin d'accès au certificat du client (.pfx) qui est utilisé pour l'authentification X509. Ce chemin peut être soit le chemin vers le fichier pfx sur le système de fichiers ou le chemin du certificat PowerShell. Cert:CurrentUserMyLa connexion WinRM doit être authentifiée à l'aide de CredSSP ou become est utilisé sur la tâche si le fichier de certificat n'est pas protégé par un mot de passe.D'autres types d'authentification peuvent être définis. client_cert_password lorsque le cert est protégé par un mot de passe.
client_cert_mot de passechaîne de caractères Le mot de passe pour client_cert si le cert est protégé par un mot de passe.
crée_cheminchemin Vérifiera l'existence du chemin spécifié et utilisera le résultat pour déterminer si le paquet est déjà installé.Vous pouvez utiliser ceci en conjonction avec product_id et d'autres creates_*.
creates_servicechaîne de caractères Vérifiera l'existant du service spécifié et utilisera le résultat pour déterminer si le paquet est déjà installé.Vous pouvez utiliser ceci en conjonction avec product_id et d'autres creates_*.
crée_versionchaîne de caractères Vérifiera la propriété de version du fichier à l'adresse creates_path et utilise le résultat pour déterminer si le paquet est déjà installé.creates_path DOIT être défini et est un fichier.Vous pouvez utiliser ceci en conjonction avec product_id et d'autres creates_*.
code_retour_attenduliste / elements=integer Par défaut :
[0, 3010]
Un ou plusieurs codes de retour de l'installation du paquet qui indique le succès.Les codes de retour sont lus comme un nombre entier signé, toute valeur supérieure à 2147483647 doit être représentée comme l'équivalent signé, c'est-à-dire. 4294967295 est -1Pour convertir un nombre non signé en équivalent signé, vous pouvez exécuter "[Int32]("0x{0:X}" -f ([UInt32]3221225477))".Un code de retour de 3010 signifie généralement qu'un redémarrage est nécessaire, la valeur reboot_required valeur de retour est définie si le code de retour est 3010Ceci n'est utilisé que pour la fonction msi, mspet registry fournisseurs.
follow_redirectschaîne de caractères
    Choix :

  • tout
  • aucun
  • sûr
Si ou le module doit suivre les redirections.all suivra toutes les redirections.none ne suivra aucune redirection.safe ne suivra que les redirections "sûres", où "sûres" signifie que le client ne fait qu'un... GET ou HEAD sur l'URI vers lequel il est redirigé.Lorsqu'il suit une URL redirigée, la balise Authorization et tout ensemble d'informations d'identification seront abandonnés et ne seront pas redirigés.
force_basic_authbooléen
    Choix :

  • pas de
  • oui
Par défaut, l'en-tête d'authentification n'est envoyé que lorsqu'un service Web répond à une requête initiale avec un état 401. Comme certains services d'authentification de base n'envoient pas correctement une 401, les connexions échouent.Cette option force l'envoi de l'en-tête d'authentification de base lors de la demande initiale.
en-têtesdictionnaire En-têtes supplémentaires à définir sur la requête.Cela devrait être un dictionnaire où la clé est le nom de l'en-tête et la valeur est la valeur pour cet en-tête.
http_agentchaîne de caractères Par défaut :
"ansible-httpget"
En-tête à identifier en tant que, apparaît généralement dans les journaux du serveur web.Il est défini à la valeur User-Agent sur une requête HTTP.
log_pathchemin d'accès Spécifie le chemin d'accès à un fichier journal qui est conservé après l'installation ou la désinstallation d'un paquet.Ceci n'est utilisé que pour l'option msi ou msp Lorsqu'il est omis, un fichier journal temporaire est utilisé à la place pour ces fournisseurs.Ceci n'est valable que pour les fichiers MSI, utilisez le paramètre arguments pour le registry fournisseur.
maximum_redirectionnombre entier Par défaut :
50
Spécifiez combien de fois le module redirigera une connexion vers un URI alternatif avant que la connexion n'échoue.S'il est défini à 0 ou follow_redirects est réglé sur noneou safe lorsqu'on ne fait pas de GET ou HEAD cela empêche toute redirection.
mot de passechaîne de caractères Le mot de passe pour user_namedoit être défini lorsque user_name est.Cette option est dépréciée en faveur de l'utilisation de become, voir les exemples pour plus d'informations. Sera supprimée dans la version majeure après 2022-07-01.
alias : user_password
chemin d'accèschaîne de caractères Emplacement du paquet à installer ou à désinstaller.Ce paquet peut se trouver soit sur le système de fichiers local, soit sur un partage réseau, soit sur une url.When state=present, product_id n'est pas défini et que le chemin d'accès est une URL, ce fichier sera toujours téléchargé dans un répertoire temporaire pour les vérifications d'idempotence, sinon le fichier ne sera téléchargé que si le paquet n'a pas été installé sur la base du paramètre product_id Si state=present alors cette valeur DOIT être définie. state=absent alors cette valeur n'a pas besoin d'être définie si product_id est.
produit_idchaîne de caractères L'id de produit du packagé installé.Ceci est utilisé pour vérifier si le produit est déjà installé et obtenir les informations de désinstallation si... state=absentPour les paquets msi, il s'agit de l'identifiant ProductCode (GUID) du paquet. Il peut être trouvé sous les mêmes chemins de registre que l'identifiant de l'utilisateur. registry Pour les paquets msp, il s'agit de l'identifiant PatchCode (GUID) du paquet qui peut se trouver sous le Details -> Revision number des propriétés du fichier.Pour les paquets msix, c'est le Name ou PackageFullName du paquet trouvé sous la balise Get-AppxPackage cmdlet.Pour les paquets de registre (exe), il s'agit du nom de la clé de registre sous les chemins de registre spécifiés dans la rubrique fournisseur Cette valeur est ignorée si path est défini sur un chemin de fichier accessible localement et que le package n'est pas un exeCette valeur DOIT être définie lorsque le paquet est un exe. exe ou que le chemin est une url ou un partage réseau et que la délégation d'accréditation n'est pas utilisée. L'adresse creates_* peuvent être utilisées à la place mais ne sont pas recommandées.L'alias productid est déprécié et sera supprimé lors de la version majeure qui suivra la version 2022-07-01.
alias : productid
fournisseurchaîne de caractères
    Choix :

  • auto
  • msi
  • msix
  • msp
  • registre
Définissez le fournisseur de paquets à utiliser lors de la recherche d'un paquet. auto sélectionnera le fournisseur approprié si chemin sinon il scanne tous les autres fournisseurs en se basant sur le chemin produit_id.Le msi provider recherche les paquets MSI installés sur une machine large et le contexte utilisateur actuel en se basant sur le paramètre ProductCode du MSI.Le msix est utilisé pour installer .appx, .msix, .appxbundleou .msixbundle paquets. Ces paquets ne sont installés ou supprimés que sur l'utilisation actuelle. L'hôte doit être configuré pour autoriser les applications chargées sur le côté ou en mode développeur. Voir les exemples pour savoir comment activer cela. Si un paquet est déjà installé mais path pointe vers un paquet mis à jour, celui-ci sera installé par-dessus le paquet existant.L'option msp recherche tous les correctifs MSP installés sur une machine large et un contexte d'utilisateur actuel en fonction de l'adresse de l'utilisateur. PatchCode du MSP. A msp sera appliqué ou supprimé sur tous les msi produits auxquels il s'applique et qui sont installés. Si le correctif est obsolète ou remplacé, aucune action ne sera entreprise. registry est utilisé pour les produits traditionnels exeinstallateurs et utilise le chemin de registre suivant pour déterminer si un produit a été installé.ed; HKLM:SoftwareMicrosoftWindowsCurrentVersionUninstall, HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall, HKCU:SoftwareMicrosoftWindowsCurrentVersionUninstallet HKCU:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall.
mot_de_passe_du_proxychaîne de caractères Le mot de passe pour proxy_username.
proxy_urlchaîne de caractères Un proxy explicite à utiliser pour la requête.Par défaut, la requête utilisera le proxy défini par IE, sauf si use_proxy soit défini à no.
utilisation_du_proxy_default_credentialbooléen
    Choix :

  • pas de
  • oui
Utilise les références de l'utilisateur actuel lors de l'authentification avec un hôte proxy protégé par NTLM, Kerberosou Negotiate Les serveurs mandataires qui utilisent Basic nécessiteront toujours des informations d'identification explicites par le biais de l'option proxy_username et proxy_mot de passe Le module n'aura accès aux informations d'identification de l'utilisateur que s'il utilise les options become avec un mot de passe, vous vous connectez avec SSH à l'aide d'un mot de passe, ou vous vous connectez avec WinRM à l'aide d'un mot de passe. CredSSP ou Kerberos with delegationSi vous n'utilisez pas become ou une méthode d'authentification différente de celles énoncées ci-dessus, il n'y aura pas d'informations d'identification par défaut disponibles et aucune authentification par proxy ne se produira.
proxy_usernamechaîne de caractères Le nom d'utilisateur à utiliser pour l'authentification du proxy.
étatchaîne de caractères
    Choix :

  • absent
  • présent
Si l'on veut installer ou désinstaller le paquet.Le module utilise produit_id pour déterminer si le paquet est installé ou non.Pour tous les fournisseurs mais auto, le chemin d'accès peut être utilisé pour les contrôles d'idempotence s'il s'agit d'un chemin de système de fichiers accessible localement.L'alias assure est déprécié et sera supprimé lors de la version majeure qui suivra la version de 2022-07-01.
alias : ensure
url_methodchaîne de caractères La méthode HTTP de la requête.
url_passwordchaîne de caractères Le mot de passe pour url_username.
url_timeoutentier Par défaut :
30
Spécifie combien de temps la demande peut être en attente avant qu'elle n'expire (en secondes).Défini à 0 pour spécifier un délai d'attente infini.
url_usernamechaîne de caractères Le nom d'utilisateur à utiliser pour l'authentification.
utilisation_default_credentialbooléen
    Choix :

  • pas de
  • oui
Utilise les informations d'identification de l'utilisateur actuel lors de l'authentification auprès d'un serveur protégé par l'option NTLM, Kerberosou Negotiate Les sites qui utilisent l'authentification Basic nécessiteront toujours des informations d'identification explicites par le biais de l'option url_username et url_mot de passe Le module n'aura accès aux informations d'identification de l'utilisateur que si l'on utilise les options become avec un mot de passe, vous vous connectez avec SSH à l'aide d'un mot de passe, ou vous vous connectez avec WinRM à l'aide d'un mot de passe. CredSSP ou Kerberos with delegationSi vous n'utilisez pas become ou une méthode d'authentification différente de celles énoncées ci-dessus, il n'y aura pas d'informations d'identification par défaut disponibles et aucune authentification ne se produira.
utiliser_proxybooléen
    Choix :

  • pas de
  • oui
Si no, il n'utilisera pas le proxy défini dans IE pour l'utilisateur actuel.
nom d'utilisateurchaîne de caractères Nom d'utilisateur d'un compte ayant accès au paquet s'il est situé sur un partage de fichiers.Ceci n'est nécessaire que si le transport WinRM est sur une méthode d'authentification qui ne supporte pas la délégation de crédence comme Basic ou NTLM ou become n'est pas utilisé.Cette option est dépréciée en faveur de l'utilisation de become, voir les exemples pour plus d'informations. Sera supprimée sur la version majeure après 2022-07-01.
alias : nom_utilisateur
valider_certsbooléen
    Choix :

  • pas de
  • oui
Si no, les certificats SSL ne seront pas validés.Cela ne devrait être utilisé que sur des sites contrôlés personnellement utilisant des certificats auto-signés.
attendre_des_enfantsbooléen ajouté dans la version 1.3.0 de ansible.windows
    Choix :

  • pas de
  • oui
Le module attendra que le processus qu'il génère se termine, mais tout processus généré dans ce processus enfant sera ignoré. yes pour attendre que tous les processus descendants se terminent avant que le module ne revienne.Ceci est utile si l'installateur/désinstallateur est juste un wrapper qui appelle ensuite l'installateur réel comme son propre processus enfant. Lorsque cette option est yes alors le module attendra que les deux processus se terminent avant de revenir.Cela ne devrait pas être nécessaire pour la plupart des installateurs et le réglage à yes pourrait faire en sorte que le module ne revienne pas jusqu'à ce que le processus qu'il attend ait été arrêté manuellement.Nécessite Windows Server 2012 ou Windows 8 ou plus récent pour être utilisé.

Notes

Note

  • Lorsque state=absent et que le produit est un exe, le chemin peut être différent de celui qui a été utilisé pour installer le paquet à l'origine. Si path n'est pas défini, alors le chemin utilisé sera ce qui est défini dans la rubrique QuietUninstallString ou UninstallString dans le registre pour ce produit_id.
  • Par défaut, toutes les installations et désinstallations msi seront exécutées avec les arguments suivants . /log, /qn, /norestart.
  • Toutes les vérifications d'installation sous product_id et creates_* s'additionnent, si l'une d'elles échoue alors le programme est considéré comme absent.

Voir aussi

Voir aussi

chocolatey.chocolatey.win_chocolatey

La documentation officielle sur le chocolatey.chocolatey.win_chocolatey module.

communauté.windows.win_hotfix

La documentation officielle sur le module communauté.windows.win_hotfix module.

ansible.windows.win_updates

La documentation officielle sur le module ansible.windows.win_updates module.

communauté.windows.win_inet_proxy

La documentation officielle sur le module communauté.windows.win_inet_proxy module.

Exemples

-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.04state: 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:1type: 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 .appxbundlestate: present

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

Valeurs de retour

Les valeurs de retour courantes sont documentées ici Les champs suivants sont propres à ce module :

Clé Retourné Description
journalchaîne de caractères échec de l'installation/désinstallation des paquets MSI ou MSP Le contenu du journal des paquets MSI ou MSP.
Exemple : Installation terminée avec succès.
rcentier changement survenu Le code de retour du processus du paquet.
reboot_requiredbooléen toujours Si un redémarrage est nécessaire pour finaliser le paquet. Ceci est mis à true si le code de retour de l'exécutable est 3010.
Exemple : Vrai
stderrchaîne de caractères échec lors de l'installation ou de la désinstallation Le flux stderr du processus du paquetage.
Exemple : Échec de l'installation du programme
stdoutchaîne de caractères échec lors de l'installation ou de la désinstallation Le flux stdout du processus du paquet.
Exemple : Programme d'installation

Auteurs

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