Spec-Zone.ru › Ansible

ansible.windows.win_package модуль — Установка/удаление устанавливаемого пакета

Примечание

Этот модуль входит в состав коллекции ansible.windows (версия 2.5.0).

У вас, возможно, уже установлена эта коллекция, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install ansible.windows.

Для использования в книге задач укажите: ansible.windows.win_package.

  • Описание
  • Параметры
  • Примечания
  • См. также
  • Примеры
  • Возвращаемые значения

Описание

  • Устанавливает или удаляет пакеты программного обеспечения для Windows.
  • Поддерживает .exe, .msi, .msp, .appx, .appxbundle, .msix, и .msixbundle.
  • Эти пакеты могут быть взяты из локальной файловой системы, сетевого файлового ресурса или URL.
  • См. provider для получения дополнительной информации о каждом поддерживаемом типе пакета.

Параметры

Параметр

Комментарии

arguments

any

Любые аргументы, необходимые установщику для установки или удаления пакета.

Если пакет является MSI, не указывайте аргументы /qn, /log или /norestart.

Это используется только для поставщиков msi, msp и registry.

Может быть списком аргументов, и модуль будет экранировать аргументы по мере необходимости; рекомендуется использовать строку при работе с пакетами MSI из-за уникальных проблем с экранированием в msiexec.

При использовании списка аргументов каждый элемент списка считается одним аргументом. Таким образом, если аргумент в списке содержит пробел, Ansible заключит его в кавычки, чтобы убедиться, что Windows воспринимает его как один аргумент. Если это поведение не требуется, аргумент следует разделить на два отдельных элемента списка. Более подробную информацию см. в разделе «Примеры».

chdir

path

Устанавливает указанный путь в качестве текущего рабочего каталога перед установкой или удалением пакета.

Это используется только для поставщиков msi, msp и registry.

client_cert

string

Путь к клиентскому сертификату (.pfx), используемому для проверки подлинности X509. Этот путь может быть либо путем к pfx в файловой системе, либо путем к сертификату PowerShell Cert:\CurrentUser\My\<thumbprint>.

Подключение WinRM должно быть аутентифицировано с помощью CredSSP или become, если файл сертификата не защищен паролем.

Другие типы аутентификации могут устанавливать client_cert_password, если сертификат защищен паролем.

client_cert_password

string

Пароль для client_cert, если сертификат защищен паролем.

creates_path

path

Проверит существование указанного пути и использует результат для определения того, установлен ли пакет.

Вы можете использовать это в сочетании с product_id и другими creates_*.

creates_service

string

Проверит существование указанной службы и использует результат для определения того, установлен ли пакет.

Вы можете использовать это в сочетании с product_id и другими creates_*.

creates_version

string

Проверит свойство версии файла в creates_path и использует результат для определения того, установлен ли пакет.

creates_path ДОЛЖЕН быть установлен и является файлом.

Вы можете использовать это в сочетании с product_id и другими creates_*.

expected_return_code

list / elements=integer

Один или несколько кодов возврата от установки пакета, указывающих на успех.

Коды возврата читаются как знаковое целое число; любые значения, большие чем 2147483647, должны быть представлены как знакомый эквивалент, например, 4294967295 — это -1.

Чтобы преобразовать беззнаковое число в знаковый эквивалент, можно выполнить «[Int32]("0x{0:X}" -f ([UInt32]3221225477))».

Код возврата 3010 обычно означает, что требуется перезагрузка; значение возврата reboot_required устанавливается, если код возврата равен 3010.

Это используется только для поставщиков msi, msp и registry.

Значение по умолчанию: [0, 3010]

follow_redirects

string

Следует ли модулю перенаправлять запросы.

all будет следовать всем перенаправлениям.

none не будет следовать ни одному перенаправлению.

safe будет следовать только «безопасным» перенаправлениям, где «безопасный» означает, что клиент выполняет только GET или HEAD по URI, на который он перенаправляется.

При перенаправлении по перенаправленному URL-адресу заголовок Authorization и любые установленные учетные данные будут отброшены и не перенаправлены.

Варианты:

  • "all"
  • "none"
  • "safe" ← (по умолчанию)

force_basic_auth

boolean

По умолчанию заголовок аутентификации отправляется только тогда, когда веб-сервис отвечает на первоначальный запрос со статусом 401. Поскольку некоторые службы Basic Auth не отправляют 401 должным образом, вход будет невозможен.

Этот параметр принудительно отправляет заголовок Basic Authentication при первоначальном запросе.

Варианты:

  • false ← (по умолчанию)
  • true

headers

dictionary

Дополнительные заголовки для установки в запросе.

Это должен быть словарь, где ключ — имя заголовка, а значение — значение для этого заголовка.

http_agent

string

Заголовок для идентификации, обычно отображается в логах веб-сервера.

Это устанавливается в заголовок User-Agent в HTTP-запросе.

Значение по умолчанию: "ansible-httpget"

log_path

path

Указывает путь к файлу журнала, который сохраняется после установки или удаления пакета.

Это используется только для поставщика msi или msp.

Если этот параметр опущен, вместо этого используется временный файл журнала для этих поставщиков.

Это допустимо только для файлов MSI; используйте arguments для поставщика registry.

maximum_redirection

integer

Указывает, сколько раз модуль перенаправит подключение к альтернативному URI, прежде чем подключение завершится неудачей.

Если установлено значение 0 или follow_redirects установлен в none, или safe при отсутствии GET или HEAD, это предотвращает все перенаправления.

Значение по умолчанию: 50

path

string

Расположение пакета для установки или удаления.

Этот пакет может находиться на локальном файловом диске, сетевом ресурсе или быть URL-адресом.

Когда state=present, product_id не задан, а путь является URL-адресом, этот файл всегда будет загружен во временную директорию для проверки идемпотентности, в противном случае файл будет загружен только в том случае, если пакет не был установлен на основе проверок product_id.

Если state=present, то это значение ДОЛЖНО быть задано.

Если state=absent, то это значение не нужно задавать, если задано product_id.

product_id

string

Идентификатор продукта установленного пакета.

Используется для проверки того, установлен ли продукт, и получения информации об удалении, если state=absent.

Для пакетов MSI это ProductCode (GUID) пакета. Его можно найти по тем же реестровым путям, что и у поставщика registry.

Для пакетов MSP это PatchCode (GUID) пакета, который можно найти в свойствах файла по Details -> Revision number.

Для пакетов msix это Name или PackageFullName пакета, найденные с помощью командлета Get-AppxPackage.

Для пакетов реестра (exe) это имя ключа реестра по указанным в provider реестровым путям.

Это значение игнорируется, если path задан в виде локального пути к файлу, и пакет не является exe.

Это значение ДОЛЖНО быть задано, когда пакет является exe, или путь является URL-адресом или сетевым ресурсом, и делегирование учетных данных не используется. Вместо этого можно использовать параметры creates_*, но это не рекомендуется.

provider

string

Устанавливает поставщика пакетов для поиска пакета.

Поставщик auto выберет соответствующего поставщика, если path, иначе он отсканирует все остальные поставщики на основе product_id.

Поставщик msi сканирует пакеты MSI, установленные в глобальном контексте системы и текущем контексте пользователя на основе ProductCode MSI.

Поставщик msix используется для установки пакетов .appx, .msix, .appxbundle, или .msixbundle. Эти пакеты устанавливаются или удаляются только в контексте текущего пользователя. Хост должен быть настроен для поддержки загружаемых приложений или в режиме разработчика. Примеры настройки приведены в примерах использования. Если пакет уже установлен, но path указывает на обновленный пакет, то он будет установлен поверх существующего.

Поставщик msp сканирует все исправления MSP, установленные в глобальном контексте системы и текущем контексте пользователя на основе PatchCode MSP. Исправление msp будет применено или удалено ко всем соответствующим msi продуктам, к которым оно относится, и установлено. Если исправление устарело или заменено, никаких действий не будет предпринято.

Поставщик registry используется для традиционных установщиков exe и использует следующие реестровые пути для определения, был ли продукт установлен; HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall, HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall, HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall, и HKCU:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall.

Варианты:

  • "auto" ← (по умолчанию)
  • "msi"
  • "msix"
  • "msp"
  • "registry"

proxy_password

string

Пароль для proxy_username.

proxy_url

string

Явный прокси для использования в запросе.

По умолчанию запрос использует прокси, определенный в IE, если use_proxy не задано как no.

proxy_use_default_credential

boolean

Использует учетные данные текущего пользователя при аутентификации с прокси-хостом, защищенным аутентификацией NTLM, Kerberos, или Negotiate.

Прокси, использующие аутентификацию Basic, все равно потребуют явных учетных данных через параметры proxy_username и proxy_password.

Модуль получит доступ к учетным данным пользователя только при использовании become с паролем, соединении с SSH с паролем или соединении с WinRM с использованием CredSSP или Kerberos with delegation.

Если не используется become или другой метод аутентификации, указанный выше, доступные учетные данные по умолчанию будут отсутствовать, и аутентификация по прокси не произойдет.

Варианты:

  • false ← (по умолчанию)
  • true

proxy_username

string

Имя пользователя для аутентификации по прокси.

state

string

Указывает на установку или удаление пакета.

Модуль использует product_id для определения того, установлен ли пакет.

Для всех поставщиков, кроме auto, path можно использовать для проверки идемпотентности, если это локальный путь к файловому диску.

Варианты:

  • "absent"
  • "present" ← (по умолчанию)

url_method

string

Метод HTTP запроса.

url_password

string

Пароль для url_username.

url_timeout

integer

Устанавливает время ожидания запроса перед его истечением (в секундах).

Установленное значение 0 указывает на бесконечное время ожидания.

По умолчанию: 30

url_username

string

Имя пользователя для аутентификации.

use_default_credential

boolean

Использует учетные данные текущего пользователя при аутентификации с сервером, защищенным аутентификацией NTLM, Kerberos, или Negotiate.

Серверы, использующие аутентификацию Basic, все равно потребуют явных учетных данных через параметры url_username и url_password.

Модуль получит доступ к учетным данным пользователя только при использовании become с паролем, соединении с SSH с паролем или соединении с WinRM с использованием CredSSP или Kerberos with delegation.

Если не используется become или другой метод аутентификации, указанный выше, доступные учетные данные по умолчанию будут отсутствовать, и аутентификация не произойдёт.

Варианты:

  • false ← (по умолчанию)
  • true

use_proxy

boolean

Если no, прокси, определённый в IE для текущего пользователя, не будет использоваться.

Варианты:

  • false
  • true ← (по умолчанию)

validate_certs

boolean

Если no, сертификаты SSL не будут проверены.

Использовать только на сайтах, контролируемых лично, с использованием самозаверяющих сертификатов.

Варианты:

  • false
  • true ← (по умолчанию)

wait_for_children

boolean

добавлен в ansible.windows 1.3.0

Модуль будет ждать завершения процесса, который он запустил, но любые процессы, запущенные в этом дочернем процессе, будут проигнорированы.

Установите true для ожидания завершения всех дочерних процессов перед возвращением модуля.

Это полезно, если установщик/деинсталлятор является просто оболочкой, которая затем вызывает фактический установщик в качестве собственного дочернего процесса. Когда этот параметр true, модуль будет ожидать завершения обоих процессов перед возвратом.

Этого обычно не требуется для большинства установщиков, и установка на true может привести к тому, что модуль не вернётся до тех пор, пока процесс, ожидающий его, не будет остановлен вручную.

Требуется Windows Server 2012 или Windows 8 или более поздняя версия.

Варианты:

  • false ← (по умолчанию)
  • true

Примечания

Примечание

  • Когда state=absent и продукт является exe, путь может отличаться от пути, используемого для первоначальной установки пакета. Если путь не задан, используемый путь будет таким, как указано в QuietUninstallString или UninstallString в реестре для данного product_id.
  • По умолчанию все установки и удаления MSI будут выполняться с аргументами /log, /qn, /norestart.
  • Все проверки установки в product_id и creates_* суммируются; если одна из них завершится неудачей, программа считается отсутствующей.

См. также

См. также

chocolatey.chocolatey.win_chocolatey

Управление пакетами с помощью Chocolatey.

community.windows.win_hotfix

Установка и удаление исправлений Windows.

ansible.windows.win_updates

Загрузка и установка обновлений Windows.

community.windows.win_inet_proxy

Управление настройками прокси для WinINet и Internet Explorer.

Примеры

- 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 MSBuild thingy with arguments split to prevent quotes
  ansible.windows.win_package:
    path: https://download.visualstudio.microsoft.com/download/pr/9665567e-f580-4acd-85f2-bc94a1db745f/vs_BuildTools.exe
    product_id: '{D1437F51-786A-4F57-A99C-F8E94FBA1BD8}'
    arguments:
      - --norestart
      - --passive
      - --wait
      - --add
      - Microsoft.Net.Component.4.6.1.TargetingPack
      - --add
      - Microsoft.Net.Component.4.6.TargetingPack

- 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:\logs\vcredist_x64-exe-{{lookup('pipe', 'date +%Y%m%dT%H%M%S')}}.log

- name: Install Application from msi with multiple properties for installer
  ansible.windows.win_package:
    path: C:\temp\Application.msi
    state: present
    arguments: >-
      SERVICE=1
      DBNAME=ApplicationDB
      DBSERVER=.\SQLEXPRESS
      INSTALLDIR="C:\Program Files (x86)\App lication\App Server"

- name: Install Microsoft® SQL Server® 2019 Express (DPAPI example)
  ansible.windows.win_package:
    path: C:\temp\SQLEXPR_x64_ENU\SETUP.EXE
    product_id: Microsoft SQL Server SQL2019
    arguments:
      - SAPWD=VeryHardPassword
      - /ConfigurationFile=C:\temp\configuration.ini
  become: true
  vars:
    ansible_become_method: runas
    ansible_become_user: "{{ user }}"
    ansible_become_pass: "{{ password }}"

- 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:\temp\rdcman.msi
    state: present

- name: Uninstall Remote Desktop Connection Manager from local MSI omitting the product_id
  ansible.windows.win_package:
    path: C:\temp\rdcman.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: \\domain\programs\7z.exe
    product_id: 7-Zip
    arguments: /S
    state: present
  become: true
  become_method: runas
  become_flags: logon_type=new_credential logon_flags=netcredentials_only
  vars:
    ansible_become_user: DOMAIN\User
    ansible_become_password: Password

- name: Install 7zip and use a file version for the installation check
  ansible.windows.win_package:
    path: C:\temp\7z.exe
    creates_path: C:\Program Files\7-Zip\7z.exe
    creates_version: 16.04
    state: present

- name: Uninstall 7zip from the exe
  ansible.windows.win_package:
    path: C:\Program Files\7-Zip\Uninstall.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:\Patches\Product.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:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock
    name: AllowAllTrustedApps
    data: 1
    type: dword
    state: present

- name: Install an MSIX package for the current user
  ansible.windows.win_package:
    path: C:\Installers\Calculator.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

Значения возврата

Общие значения возврата документированы здесь, следующие поля уникальны для данного модуля:

Ключ

Описание

log

строка

Содержимое журнала MSI или MSP.

Возвращается: при неудаче установки/удаления пакетов MSI или MSP

Пример: "Installation completed successfully"

rc

целое число

Код возврата процесса пакета.

Возвращается: изменения произошли

Пример: 0

reboot_required

boolean

Требуется ли перезагрузка для завершения пакета. Устанавливается в значение true, если код возврата исполняемого файла равен 3010.

Возвращается: всегда

Пример: true

stderr

строка

Поток stderr процесса пакета.

Возвращается: ошибка при установке или удалении

Пример: "Failed to install program"

stdout

строка

Поток stdout процесса пакета.

Возвращается: ошибка при установке или удалении

Пример: "Installing program"

Авторы

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

Ссылки на сборку

  • Система отслеживания проблем
  • Репозиторий (источники)
  • Связь

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/ansible/windows/win_package_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API