Spec-Zone.ru › Ansible 2.11

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

Примечание

Этот плагин входит в состав коллекции ansible.windows (версия 1.3.0).

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

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

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

Описание

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

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
arguments
raw
Любые аргументы, необходимые установщику для установки или удаления пакета.
Если пакет — MSI, не передавайте аргументы /qn, /log или /norestart.
Используется только для поставщиков msi, msp, и registry.
Может быть списком аргументов, и модуль будет экранировать аргументы по необходимости. Рекомендуется использовать строку при работе с MSI-пакетами из-за особых проблем с экранированием в msiexec.
chdir
path
Устанавливает указанный путь в качестве текущей рабочей директории перед установкой или удалением пакета.
Используется только для поставщиков msi, msp, и registry.
client_cert
строка
Путь к клиенту сертификату (.pfx), используемому для аутентификации X509. Этот путь может быть путём к файлу pfx в файловой системе или путём сертификата PowerShell Cert:\CurrentUser\My\<thumbprint>.
Подключение WinRM должно быть аутентифицировано с помощью CredSSP или become, если файл сертификата не защищен паролем.
Другие типы аутентификации могут установить client_cert_password, если сертификат защищен паролем.
client_cert_password
строка
Пароль для client_cert, если сертификат защищен паролем.
creates_path
путь
Проверит существование указанного пути и использует результат для определения, установлен ли пакет.
Можно использовать совместно с product_id и другими creates_*.
creates_service
строка
Проверит существование указанной службы и использует результат для определения, установлен ли пакет.
Можно использовать совместно с product_id и другими creates_*.
creates_version
строка
Проверит свойство версии файла по пути creates_path и использует результат для определения, установлен ли пакет.
creates_path ДОЛЖЕН быть задан и указывать на файл.
Можно использовать совместно с product_id и другими creates_*.
expected_return_code
список / элементы=целое число
По умолчанию:
[0, 3010]
Один или несколько кодов возврата установки пакета, указывающих на успех.
Коды возврата читаются как целые числа со знаком. Любые значения больше 2147483647 необходимо представить как эквивалентные со знаком, т.е. 4294967295 это -1.
Для преобразования беззнакового числа в эквивалент со знаком можно выполнить "[Int32]("0x{0:X}" -f ([UInt32]3221225477))".
Код возврата 3010 обычно означает, что требуется перезагрузка. Значение возврата reboot_required устанавливается, если код возврата 3010.
Используется только для поставщиков msi, msp, и registry.
follow_redirects
строка
    Варианты:
  • all
  • none
  • safe ←
Следовать ли модулю перенаправлениям.
all будет следовать всем перенаправлениям.
none не будет следовать никаким перенаправлениям.
safe будет следовать только «безопасным» перенаправлениям, где «безопасный» означает, что клиент выполняет только GET или HEAD на URI, на который он перенаправляется.
При следовании перенаправленному URL-адресу заголовок Authorization и любые установленные учетные данные будут удалены и не перенаправлены.
force_basic_auth
логический
    Варианты:
  • нет ←
  • да
По умолчанию заголовок аутентификации отправляется только тогда, когда веб-сервис отвечает на начальный запрос статусом 401. Поскольку некоторые службы базовой аутентификации не отправляют должным образом 401, вход в систему может завершиться неудачей.
Этот параметр принудительно отправляет заголовок Basic аутентификации при первоначальном запросе.
headers
словарь
Дополнительные заголовки для установки в запросе.
Это должен быть словарь, где ключ — имя заголовка, а значение — значение этого заголовка.
http_agent
строка
По умолчанию:
"ansible-httpget"
Заголовок для идентификации, обычно отображается в логах веб-сервера.
Устанавливается в заголовке User-Agent HTTP-запроса.
log_path
путь
Указывает путь к файлу журнала, который сохраняется после установки или удаления пакета.
Используется только для поставщика msi или msp.
При отсутствии параметра используется временный файл журнала для этих поставщиков.
Действителен только для MSI-файлов. Используйте arguments для поставщика registry.
maximum_redirection
целое число
По умолчанию:
50
Указывает, сколько раз модуль будет перенаправлять соединение на альтернативный URI перед отказом от соединения.
Если значение равно 0 или follow_redirects установлено в значение none, или safe, когда не выполняется GET или HEAD, это предотвращает все перенаправления.
password
строка
Пароль для user_name, должен быть установлен, когда установлено значение user_name.
Этот параметр устарел в пользу использования become. См. примеры для получения дополнительной информации. Будет удален в следующей основной версии после 2022-07-01.

псевдонимы: user_password
path
строка
Расположение пакета для установки или удаления.
Пакет может находиться в локальной файловой системе, сетевом ресурсе или URL.
Если state=present, product_id не задан, и путь — URL, этот файл всегда будет загружен во временную директорию для проверки идемпотентности. В противном случае файл будет загружен только если пакет не установлен, основываясь на проверках product_id.
Если state=present, то это значение ДОЛЖНО быть установлено.
Если state=absent, то это значение не нужно устанавливать, если установлено product_id.
product_id
строка
Идентификатор продукта устанавливаемого пакета.
Используется для проверки установки продукта и получения информации об удалении, если state=absent.
Для MSI-пакетов — это ProductCode (GUID) пакета. Его можно найти в тех же реестровых путях, что и у поставщика registry.
Для msp-пакетов — это PatchCode (GUID) пакета, который можно найти в свойствах файла по пути Details -> Revision number.
Для msix-пакетов — это Name или PackageFullName пакета, найденные в командлете Get-AppxPackage.
Для пакетов реестра (exe), это имя реестровой записи в указанных реестровых путях в provider.
Это значение игнорируется, если path задан локальным доступным путем файла, и пакет не exe.
Это ДОЛЖНО быть установлено, если пакет exe, или путь — URL или сетевой ресурс, и делегирование учетных данных не используется. Вместо этого можно использовать параметры creates_*, но это не рекомендуется.
Псевдоним productid устарел и будет удален в следующей основной версии после 2022-07-01.

псевдонимы: productid
provider
строка
    Варианты:
  • auto ←
  • msi
  • msix
  • msp
  • registry
Устанавливает поставщика пакета для поиска пакета.
Поставщик 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.
proxy_password
строка
Пароль для proxy_username.
proxy_url
строка
Явный прокси для использования в запросе.
По умолчанию запрос будет использовать прокси 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 или другой метод аутентификации, отличные от указанных выше, доступные учетные данные по умолчанию отсутствуют, и аутентификация прокси не выполняется.
proxy_username
строка
Имя пользователя для аутентификации по прокси.
state
строка
    Выбо­ры:
  • отсутствует
  • есть ←
Установка или удаление пакета.
Модуль использует product_id для определения наличия или отсутствия пакета.
Для всех поставщиков, кроме auto, path может использоваться для проверок идемпотентности, если это локально доступный путь к файловой системе.
Псевдоним ensure устарел и будет удален в следующей крупной версии после 2022-07-01.

псевдонимы: ensure
url_method
строка
HTTP-метод запроса.
url_password
строка
Пароль для url_username.
url_timeout
целое число
По умолчанию:
30
Указывает, как долго запрос может ожидать, прежде чем истечёт время ожидания (в секундах).
Установите значение 0, чтобы указать бесконечное время ожидания.
url_username
строка
Имя пользователя для аутентификации.
use_default_credential
boolean
    Выбо­ры:
  • нет ←
  • да
Использует учетные данные текущего пользователя при аутентификации с сервером, защищенным с помощью аутентификации NTLM, Kerberos, или Negotiate.
Для сайтов, использующих аутентификацию Basic, по-прежнему требуются явные учетные данные через параметры url_username и url_password.
Модуль получит доступ к учетным данным пользователя только при использовании become с паролем, подключении к SSH с паролем или подключении к WinRM с использованием CredSSP или Kerberos with delegation.
Если не используется become или другой метод аутентификации, отличные от указанных выше, доступные учетные данные по умолчанию отсутствуют, и аутентификация не выполняется.
use_proxy
boolean
    Выбо­ры:
  • нет
  • да ←
Если no, прокси, определённый в IE для текущего пользователя, не будет использоваться.
username
строка
Имя пользователя учетной записи с доступом к пакету, если он находится на сетевом ресурсе.
Это необходимо только в том случае, если транспорт WinRM использует метод аутентификации, не поддерживающий делегирование учетных данных, такой как Basic или NTLM, или не используется become.
Этот параметр устарел в пользу использования become, см. примеры для получения дополнительной информации. Он будет удалён в следующей крупной версии после 2022-07-01.

псевдонимы: user_name
validate_certs
boolean
    Выбо­ры:
  • нет
  • да ←
Если no, сертификаты SSL не будут проверены.
Это следует использовать только на сайтах, контролируемых лично, которые используют самозаверенные сертификаты.
wait_for_children
boolean
добавлен в 1.3.0 ansible.windows
    Выбо­ры:
  • нет ←
  • да
Модуль будет ожидать завершения процесса, который он запускает, но любые процессы, запущенные в этом дочернем процессе, игнорируются.
Установите значение yes, чтобы ожидать завершения всех дочерних процессов, прежде чем модуль вернёт результат.
Это полезно, если программа установки/удаления просто оболочка, которая затем вызывает фактический установщик как свой дочерний процесс. Когда этот параметр равен yes, модуль будет ожидать завершения обоих процессов, прежде чем возвращать результат.
Это, вероятно, не потребуется для большинства установщиков, а установка значения yes может привести к тому, что модуль не вернёт результат, пока процесс, которого он ожидает, не будет остановлен вручную.
Требуется Windows Server 2012 или Windows 8 или более поздняя версия.

Примечания

Примечание

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

См. также

См. также

chocolatey.chocolatey.win_chocolatey

Официальная документация по модулю chocolatey.chocolatey.win_chocolatey.

community.windows.win_hotfix

Официальная документация по модулю community.windows.win_hotfix.

ansible.windows.win_updates

Официальная документация по модулю ansible.windows.win_updates.

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 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: 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: yes
  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.

Пример:
Установка завершена успешно
rc
целое число
изменение произошло
Код возврата процесса пакета.

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

Пример:
True
stderr
строка
ошибка при установке или удалении
Поток stderr процесса пакета.

Пример:
Не удалось установить программу
stdout
строка
ошибка при установке или удалении
Поток stdout процесса пакета.

Пример:
Установка программы


Авторы

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

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

Spec-Zone.ru

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