win_package - Установка/удаление пакетов для установки
Новая версия в версии 1.7.
Описание
- Устанавливает или удаляет пакет в формате MSI или EXE.
- Эти пакеты могут быть источниками из локальной файловой системы, сетевого ресурса или URL.
- Пожалуйста, ознакомьтесь с разделом "Примечания", чтобы узнать о некоторых нюансах использования этого модуля.
Параметры
| параметр | обязательно | значение по умолчанию | выбор | комментарии |
|---|---|---|---|---|
| arguments | нет | Любые аргументы, необходимые установщику для установки или удаления пакета. Если пакет имеет формат MSI, не передавайте аргументы /qn, /log или /norestart. | ||
| 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. | |
| name | нет | Имя пакета. Если имя не указано, для сообщений в логах будет использоваться путь. Начиная с Ansible 2.4, это устарело и больше не требуется. | ||
| 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 (добавлено в 2.4)
| нет | да |
| Если no, сертификаты SSL не будут проверены. Это следует использовать только на контролируемых вами сайтах, использующих самозаверенные сертификаты.До Ansible 2.4 это по умолчанию no. |
Примеры
- 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 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 | См. rc, это будет удалено в пользу rc в Ansible 2.6. | изменения произошли | int | 0 |
| log | Содержимое журнала MSI. | изменения произошли и пакет MSI | str | Установка завершена успешно |
| rc | Код возврата процесса пакета. | изменения произошли | int | 0 |
| reboot_required | Требуется ли перезагрузка для завершения установки пакета. Устанавливается в true, если код возврата исполняемого файла равен 3010. | всегда | bool | True |
| restart_required | См. reboot_required, это будет удалено в пользу reboot_required в Ansible 2.6. | всегда | bool | True |
| stderr | Поток stderr процесса пакета. | ошибка во время установки или удаления | str | Не удалось установить программу |
| stdout | Поток stdout процесса пакета. | ошибка во время установки или удаления | str | Установка программы |
Примечания
Примечание
- Для платформ, отличных от Windows, используйте модуль package.
- Когда
state=absentи продукт EXE, путь может отличаться от того, который использовался для первоначальной установки пакета. Если путь не задан, то используемый путь будет соответствовать значениюUninstallStringв реестре для данного product_id. - Не все идентификаторы продуктов имеют формат GUID, некоторые программы неправильно используют другой формат, но этот модуль должен поддерживать любой формат.
- По умолчанию все установки и удаления MSI выполняются с параметрами
/log, /qn, /norestart. - Рекомендуется сначала загрузить пакет с URL-адреса, используя модуль win_get_url, так как это открывает больше возможностей для настройки при вызове
win_package. - Пакеты будут временно скачиваться или копироваться локально, когда путь — сетевой ресурс, и делегирование учетных данных не настроено, или путь — URL-адрес, а файл не является MSI.
- Все проверки установки в
product_idиcreates_*суммируются; если одна из них завершается неудачей, программа считается отсутствующей.
Статус
Этот модуль помечен как превью, что означает, что его интерфейс не гарантируется как обратная совместимость.
Информация о техническом обслуживании
Дополнительную информацию о поддержке этого модуля компанией Red Hat см. в этом knowledge base article<https://access.redhat.com/articles/rhel-top-support-policies>.
Для получения помощи в разработке модулей, если вы заинтересованы, ознакомьтесь с Информацией о сообществе и участии, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/win_package_module.html