Модуль ansible.windows.win_package — устанавливает/удаляет устанавливаемый пакет
Примечание
Этот модуль входит в коллекцию ansible.windows (версия 3.6.1).
Возможно, эта коллекция уже установлена, если вы используете пакет 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, не указывайте аргументы Используется только для поставщиков Можно указать список аргументов, и модуль экранирует их при необходимости. При работе с пакетами MSI рекомендуется использовать строку из-за особенностей экранирования в msiexec. При использовании списка аргументов каждый его элемент считается отдельным аргументом. Поэтому, если аргумент списка содержит пробел, Ansible заключит его в кавычки, чтобы Windows воспринимала его как один аргумент. Если такое поведение нежелательно, разделите аргумент на два отдельных элемента списка. Подробнее см. в разделе примеров. |
chdir path | Перед установкой или удалением пакета задаёт указанный путь в качестве текущего рабочего каталога. Используется только для поставщиков |
checksum string добавлено в ansible.windows 2.8.0 | Если этому параметру передано значение checksum, перед запуском будет вычислена контрольная сумма пакета, чтобы проверить, что указанный путь или загруженный файл содержит ожидаемые данные. |
checksum_algorithm string добавлено в ansible.windows 2.8.0 | Указывает алгоритм хеширования, используемый при вычислении контрольной суммы указанного пути. Варианты:
|
client_cert string | Путь к сертификату клиента (.pfx), используемому для аутентификации X509. Это может быть путь к Подключение WinRM должно быть аутентифицировано с помощью Для других типов аутентификации можно указать client_cert_password, если сертификат защищён паролем. |
client_cert_password string | Пароль для client_cert, если сертификат защищён паролем. |
creates_path path | Проверяет наличие указанного пути и использует результат, чтобы определить, установлен ли пакет. Можно использовать вместе с |
creates_service string | Проверяет наличие указанной службы и использует результат, чтобы определить, установлен ли пакет. Можно использовать вместе с |
creates_version string | Проверяет свойство версии файла по пути Параметр Можно использовать вместе с |
expected_return_code list / elements=integer | Один или несколько кодов возврата установки пакета, указывающих на успех. Коды возврата считываются как знаковые целые числа. Любые значения больше 2147483647 необходимо представлять в виде соответствующего знакового числа, например Чтобы преобразовать беззнаковое число в соответствующее знаковое, можно выполнить “[Int32](“0x{0:X}” -f ([UInt32]3221225477))”. Код возврата Используется только для поставщиков По умолчанию: |
follow_redirects string | Определяет, должен ли модуль следовать перенаправлениям.
При переходе по перенаправленному URL заголовок Варианты:
|
force_basic_auth boolean | По умолчанию заголовок аутентификации отправляется только после того, как веб-служба ответит на первоначальный запрос статусом 401. Поскольку некоторые службы с базовой аутентификацией некорректно возвращают статус 401, вход в систему завершается ошибкой. Этот параметр принудительно отправляет заголовок базовой аутентификации с исходным запросом. Варианты:
|
headers dictionary | Дополнительные заголовки запроса. Значение должно быть словарём, где ключ — имя заголовка, а значение — его содержимое. |
http_agent string | Идентификатор клиента, обычно отображаемый в журналах веб-сервера. Указывается в заголовке По умолчанию: |
log_path path | Указывает путь к файлу журнала, который сохраняется после установки или удаления пакета. Используется только для поставщиков Если параметр не указан, для этих поставщиков вместо него используется временный файл журнала. Допустимо только для файлов MSI; для поставщика |
maximum_redirection integer | Указывает, сколько раз модуль может перенаправить соединение на альтернативный URI до его сбоя. Если задано значение По умолчанию: |
path string | Расположение пакета для установки или удаления. Пакет может находиться в локальной файловой системе, в сетевом ресурсе или по URL. Если задано Если задано Если задано Модуль не может определить идентификатор продукта, если задано |
product_id string | Идентификатор установленного пакета. Используется для проверки, установлен ли продукт, а также для получения сведений об удалении, если задано Для пакетов MSI это Для пакетов MSP это Для пакетов MSIX это Для пакетов реестра (EXE) это имя раздела реестра в путях реестра, указанных в provider. Это значение игнорируется, если Это значение СЛЕДУЕТ задавать, если пакет является |
provider string | Задаёт поставщика пакетов, который будет использоваться при поиске пакета. Поставщик Поставщик Поставщик Поставщик Поставщик Варианты:
|
proxy_password string | Пароль для proxy_username. |
proxy_url string | Явно заданный прокси-сервер для запроса. По умолчанию запрос использует прокси-сервер, заданный в Internet Explorer, если для use_proxy не указано |
proxy_use_default_credential boolean | Использует учётные данные текущего пользователя при аутентификации на прокси-сервере, защищённом с помощью Для прокси-серверов, использующих аутентификацию Модуль получит доступ к учётным данным пользователя, только если используется Если не используется Варианты:
|
proxy_username string | Имя пользователя для аутентификации на прокси-сервере. |
state string | Определяет, нужно установить или удалить пакет. Модуль использует product_id, чтобы определить, установлен ли пакет. Для всех поставщиков, кроме Варианты:
|
url_method string | Метод HTTP-запроса. |
url_password string | Пароль для url_username. |
url_timeout integer | Указывает, как долго запрос может оставаться ожидающим ответа до истечения времени ожидания (в секундах). Задайте значение По умолчанию: |
url_username string | Имя пользователя для аутентификации. |
use_default_credential boolean | Использует учётные данные текущего пользователя при аутентификации на сервере, защищённом с помощью Для сайтов, использующих аутентификацию Модуль получит доступ к учётным данным пользователя, только если используется Если не используется Варианты:
|
use_proxy boolean | Если задано Варианты:
|
validate_certs boolean | Если задано Используйте этот параметр только на сайтах, которыми вы управляете лично и которые используют самоподписанные сертификаты. Варианты:
|
verify_signature boolean добавлено в ansible.windows 3.4.0 | Если задано Задача завершится с ошибкой, если возвращаемый Get-AuthenticodeSignature статус подписи не равен Valid. Если задано Варианты:
|
wait_for_children boolean добавлено в ansible.windows 1.3.0 | Модуль ожидает завершения запущенного им процесса, но не ожидает завершения процессов, запущенных этим дочерним процессом. Задайте значение Это полезно, если программа установки или удаления является лишь оболочкой, которая запускает фактическую программу установки как дочерний процесс. Если для этого параметра задано значение Для большинства программ установки этот параметр не требуется. Значение Для использования требуется Windows Server 2012, Windows 8 или более поздняя версия. Варианты:
|
Примечания
Примечание
- Если задано
state=absent, а продукт является EXE-файлом, путь может отличаться от использованного при первоначальной установке пакета. Если параметр path не задан, используется путь, указанный в реестре для этого product_id в разделеQuietUninstallStringилиUninstallString. - По умолчанию все установки и удаления MSI выполняются с аргументами
/log, /qn, /norestart. - Все проверки установки в разделах
product_idиcreates_*объединяются: если хотя бы одна из них не пройдена, программа считается отсутствующей.
См. также
См. также
- chocolatey.chocolatey.win_chocolatey
-
Управление пакетами с помощью chocolatey.
- community.windows.win_hotfix
-
Официальная документация по модулю community.windows.win_hotfix.
- ansible.windows.win_updates
-
Загрузка и установка обновлений Windows.
- community.windows.win_inet_proxy
-
Официальная документация по модулю community.windows.win_inet_proxy.
Примеры
- 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
- 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
- name: Install 7-Zip with Authenticode signature validation
ansible.windows.win_package:
path: C:\temp\7z.exe
arguments: /S
state: present
verify_signature: true
Возвращаемые значения
Общие возвращаемые значения описаны здесь, ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
checksum строка добавлено в ansible.windows 2.8.0 | Контрольная сумма пакета по алгоритму <algorithm> Возвращается: задан параметр checksum_algorithm, пакет существует и не используется режим проверки Пример: |
log строка | Содержимое журнала MSI или MSP. Возвращается: сбой установки или удаления пакетов MSI или MSP Пример: |
rc целое число | Код возврата процесса пакета. Возвращается: произошло изменение Пример: |
reboot_required логическое значение | Требуется ли перезагрузка для завершения установки пакета. Значение равно true, если исполняемый файл вернул код 3010. Возвращается: всегда Пример: |
stderr строка | Поток stderr процесса пакета. Возвращается: сбой во время установки или удаления Пример: |
stdout строка | Поток stdout процесса пакета. Возвращается: сбой во время установки или удаления Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/ansible/windows/win_package_module.html