Ansible не знает, где скачать 32-битную или 64-битную версию.Если у вас только 64-битная целевая машина, просто укажите путь к исполняемому 64-битному файлу.
Если у вас есть обе архитектуры, вы можете написать две отдельные задачи и использовать ключевое слово when
, связанное с ansible_architecture
переменная, значение которой может быть 32 bits
или 64 bits
, см. ниже.
Также вам, вероятно, не нужно иметь две отдельные операции загрузки и установки, поскольку win_package может выполнять обе операции в одном и том же такте.
---
- hosts: win
gather_facts: true
# ansible_connection: winrm
tasks:
name: Download and install application, 32 bit case
win_package:
path: 'https://download-cf.jetbrains.com/[path-of-the-32-bits-edition].exe'
product_id: "PhpStorm"
arguments: /S /install
state: present
when: ansible_architecture == "32 bits"
name: Download and install application, 64 bit case
win_package:
path: 'https://download-cf.jetbrains.com/[path-of-the-64-bits-edition].exe'
product_id: "PhpStorm"
arguments: /S /install
state: present
when: ansible_architecture == "64 bits"
Чтобы сделать его еще проще, вы также можете использовать Chocolatey, который предоставляет пакет phpstorm, см. https://chocolatey.org/packages/phpstorm
Ansible способен устанавливать пакеты Chocolatey, используя win_chocolatey
, см. https://docs.ansible.com/ansible/latest/modules/win_chocolatey_module.html.
Преимущества использования пакетов Chocolatey многочисленны, например, управление зависимостями, автоматическое обновление версии (или сохранение указанной версии, если это необходимо), ...
Здесь ваша PlayBook может быть уменьшена до:
---
- hosts: win
gather_facts: true
# ansible_connection: winrm
tasks:
- name: choco install phpstorm
win_chocolatey:
name: phpstorm
state: latest