win_package – Установка/удаление пакетов
Описание
- Устанавливает или удаляет пакет в формате MSI или EXE.
- Эти пакеты могут быть источниками с локальной файловой системы, сетевого файлового ресурса или URL.
- Пожалуйста, обратитесь к разделу с примечаниями по некоторым нюансам использования данного модуля.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| arguments строка | Любые аргументы, необходимые установщику для установки или удаления пакета. Если пакет имеет формат MSI, не используйте аргументы /qn, /log или /norestart. Начиная с Ansible 2.5, этот параметр может быть списком аргументов, и модуль будет экранировать аргументы по необходимости. Рекомендуется использовать строку при работе с пакетами MSI из-за уникальных проблем с экранированием в msiexec. | |
| chdir путь добавлен в 2.8 | Устанавливает указанный путь в качестве текущей рабочей директории перед установкой или удалением пакета. | |
| creates_path путь добавлен в 2.4 | Проверяет существование указанного пути и использует результат для определения, установлен ли пакет. Можно использовать вместе с product_id и другими creates_*. | |
| creates_service строка добавлен в 2.4 | Проверяет существование указанной службы и использует результат для определения, установлен ли пакет. Можно использовать вместе с product_id и другими creates_*. | |
| creates_version строка добавлен в 2.4 | Проверяет свойство версии файла по пути creates_path и использует результат для определения, установлен ли пакет.creates_path ДОЛЖЕН быть задан и указывать на файл.Можно использовать вместе с product_id и другими creates_*. | |
| expected_return_code список | По умолчанию: [0, 3010] | Один или несколько кодов возврата от установки пакета, указывающих на успех. До Ansible 2.4 это было только 0, но начиная с Ansible 2.4 это 0 и 3010.Код возврата 3010 обычно означает, что требуется перезагрузка. Значение возврата reboot_required устанавливается, если код возврата равен 3010. |
| log_path путь добавлен в 2.8 | Указывает путь к файлу журнала, который сохраняется после установки или удаления пакета MSI. Если опущено, используется временный файл журнала для пакетов MSI. Действительно только для файлов MSI. Для других типов пакетов используйте arguments. | |
| password строка | Пароль для user_name, должен быть установлен, когда user_name установлен.псевдонимы: user_password | |
| path строка | Расположение пакета для установки или удаления. Пакет может находиться на локальной файловой системе, сетевом ресурсе или по URL. Если путь находится на сетевом ресурсе, а текущий транспорт WinRM не поддерживает делегирование учетных данных, то user_name и user_password должны быть заданы для доступа к файлу.В некоторых случаях этот файл будет скопирован локально на сервер, чтобы он мог к нему обратиться. Подробнее см. в разделе примечания. Если state=present, то это значение ОБЯЗАТЕЛЬНО должно быть задано.Если state=absent, то это значение не нужно задавать, если product_id задано. | |
| product_id строка | Идентификатор продукта устанавливаемого пакета. Используется для проверки, установлен ли продукт, и получения информации об удалении, если state=absent.Идентификаторы продуктов установленных программ можно найти в редакторе реестра Windows, либо в HKLM:Software\Microsoft\Windows\CurrentVersion\Uninstall, либо для 32-битных программ в HKLM:Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall.Это ДОЛЖНО быть установлено, если пакет не MSI или путь URL или сетевой ресурс, и делегирование учетных данных не используется. Вместо этого можно использовать варианты creates_*, но это не рекомендуется.псевдонимы: productid | |
| state строка |
| Установка или удаление пакета. Модуль использует product_id и наличие файла в пути реестра, чтобы определить нужно ли установить или удалить пакет.псевдонимы: ensure |
| username строка | Имя пользователя с доступом к пакету, если он находится на сетевом ресурсе. Это необходимо только если транспорт WinRM использует метод аутентификации, который не поддерживает делегирование учетных данных, например, Basic или NTLM. псевдонимы: user_name | |
| validate_certs булево добавлен в 2.4 |
| Если no, сертификаты SSL не будут проверены. Это следует использовать только на контролируемых вами сайтах с самозаверяющими сертификатами.До Ansible 2.4 это по умолчанию было no. |
Примечания
Примечание
- Если
state=absentи продукт EXE, путь может отличаться от пути, используемого при первоначальной установке. Если путь не указан, будет использован путь, указанный в реестре поUninstallStringдля данного product_id. - Не все идентификаторы продукта имеют формат GUID. Некоторые программы неправильно используют другой формат, но этот модуль должен поддерживать любой формат.
- По умолчанию все установки и удаления MSI будут выполняться с параметрами
/log, /qn, /norestart. - Рекомендуется сначала скачать пакет с URL с помощью модуля win_get_url, так как это обеспечивает больше гибкости при вызове
win_package. - Пакеты будут временно скачаны или скопированы локально, если путь - сетевой ресурс и делегирование учетных данных не задано, или путь - URL, и файл не MSI.
- Все проверки установки в
product_idиcreates_*складываются. Если одна из проверок завершается ошибкой, программа считается отсутствующей.
См. также
См. также
- win_chocolatey – Управление пакетами с помощью chocolatey
- Официальная документация по модулю win_chocolatey.
- win_hotfix – Установка и удаление исправлений Windows
- Официальная документация по модулю win_hotfix.
- win_updates – Загрузка и установка обновлений Windows
- Официальная документация по модулю win_updates.
Примеры
- name: Install the Visual C thingy
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, and permanent log
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
log_path: D:\logs\vcredist_x64-exe-{{lookup('pipe', 'date +%Y%m%dT%H%M%S')}}.log
- name: Install Remote Desktop Connection Manager from msi
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
- name: Uninstall Remote Desktop Connection Manager
win_package:
product_id: '{0240359E-6A4C-4884-9E94-B397A02D893C}'
state: absent
- name: Install Remote Desktop Connection Manager locally omitting the product_id
win_package:
path: C:\temp\rdcman.msi
state: present
- name: Uninstall Remote Desktop Connection Manager from local MSI omitting the product_id
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 specifying the credentials
win_package:
path: \\domain\programs\7z.exe
product_id: 7-Zip
arguments: /S
state: present
user_name: DOMAIN\User
user_password: Password
- name: Install 7zip and use a file version for the installation check
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
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
win_package:
product_id: 7-Zip
arguments: /S
state: absent
- name: Install application and override expected return codes
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]
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| log строка | ошибка установки/деинсталляции для пакетов MSI | Содержание журнала MSI. Пример: Установка завершена успешно |
| rc целое число | произошли изменения | Код возврата процесса пакета. |
| reboot_required логическое | всегда | Требуется перезагрузка для завершения пакета. Устанавливается в значение true, если код возврата исполняемого файла равен 3010. Пример: True |
| stderr строка | ошибка во время установки или удаления | Поток stderr процесса пакета. Пример: Не удалось установить программу |
| stdout строка | ошибка во время установки или удаления | Поток stdout процесса пакета. Пример: Установка программы |
Состояние
- Данный модуль не гарантирует обратную совместимость интерфейса. [превью]
- Этот модуль поддерживается основной командой Ansible. [core]
Поддержка Red Hat
Дополнительную информацию о поддержке данного модуля Red Hat можно найти в этой статье базы знаний Red Hat.
Авторы
- Trond Hindenes (@trondhindenes)
- Jordan Borean (@jborean93)
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/win_package_module.html