win_package - Установка/удаление устанавливаемого пакета
Новая версия с 1.7.
Описание
- Устанавливает или удаляет пакет в формате MSI или EXE.
- Эти пакеты могут быть источниками из локальной файловой системы, сетевой файловой папки или URL.
- Пожалуйста, ознакомьтесь с разделом "Примечания" относительно некоторых нюансов этого модуля.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| arguments | Любые аргументы, необходимые установщику для установки или удаления пакета. Если пакет MSI, не указывайте аргументы /qn, /log или /norestart. Начиная с Ansible 2.5, этот параметр может быть списком аргументов, и модуль будет экранировать аргументы по мере необходимости. Рекомендуется использовать строку при работе с пакетами MSI из-за особых проблем с экранированием в msiexec. | |
| 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, но с 2.4 это и 0, и 3010. Код возврата 3010 обычно означает, что требуется перезагрузка, значение reboot_required устанавливается, если код возврата равен 3010. |
| 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 | По умолчанию: "present" | Установка или удаление пакета. Модуль использует product_id и наличие файла в пути реестра для определения, нужно ли установить или удалить пакет.псевдонимы: ensure |
| username | Имя пользователя с доступом к пакету, если он расположен на сетевом ресурсе. Требуется только в том случае, если транспорт WinRM использует метод авторизации, не поддерживающий делегирование учетных данных, например, Basic или NTLM. псевдонимы: user_name | |
| validate_certs bool (добавлено в 2.4) |
| Если no, сертификаты SSL не будут проверены. Это следует использовать только на контролируемых сайтах, использующих самозаверяющие сертификаты.До Ansible 2.4 это по умолчанию no. |
Примечания
Примечание
- Для не-Windows целей используйте модуль package вместо этого.
- Когда
state=absentи продукт - exe, путь может отличаться от пути, использовавшегося для установки пакета первоначально. Если путь не установлен, путь будет соответствовать значениюUninstallStringв реестре для данного product_id. - Не все идентификаторы продукта имеют формат GUID, некоторые программы неправильно используют другой формат, но этот модуль должен поддерживать любой формат.
- По умолчанию все установки и удаления msi выполняются с параметрами
/log, /qn, /norestart. - Рекомендуется сначала загрузить пакет с URL с помощью модуля win_get_url, так как это открывает больше гибкости при вызове
win_package. - Пакеты будут временно загружены или скопированы локально, когда путь - сетевой ресурс и делегирование учетных данных не установлено, или путь - URL, а файл не MSI.
- Все проверки установки в
product_idиcreates_*складываются, если одна из них завершается ошибкой, программа считается отсутствующей.
Примеры
- 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
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
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]
Значения возврата
Общие значения возврата описаны в документации, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| exit_code int | изменения произошли | См. rc, это будет удалено в пользу rc в Ansible 2.6. |
| log str | изменения произошли, и пакет MSI | Содержание журнала MSI. Пример: Установка завершена успешно |
| rc int | изменения произошли | Код возврата процесса пакета. |
| reboot_required bool | всегда | Требуется ли перезагрузка для завершения установки пакета. Это значение устанавливается в true, если код возврата исполняемого файла равен 3010. Пример: True |
| restart_required bool | всегда | См. reboot_required, это будет удалено в пользу reboot_required в Ansible 2.6 Пример: True |
| stderr str | ошибка во время установки или удаления | Поток stderr процесса пакета. Пример: Ошибка установки программы |
| stdout str | ошибка во время установки или удаления | Поток stdout процесса пакета. Пример: Установка программы |
Статус
Этот модуль помечен как предварительный, что означает, что его интерфейс не гарантируется как обратной совместимый.
Техническое обслуживание
Этот модуль помечен как ядерный, что означает, что его поддерживает Команда разработчиков Ansible. Подробнее см. в Документации по поддержке модулей.
Для списка других модулей, также поддерживаемых командой Ansible Core, см. здесь.
Поддержка
Дополнительную информацию о поддержке этого модуля компанией 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.6/modules/win_package_module.html