ansible win exe установить 32/64 бит - PullRequest
0 голосов
/ 13 ноября 2018

Может кто-нибудь, пожалуйста, посоветуйте.Что я делаю, так это скачиваю phpstorme в удаленную машину Windows и устанавливаю его, но он установлен 32-битным, как я могу заставить ANSIBLE установить 64-битную версию?Заранее спасибо.Playbook ниже.

---
- hosts: win
  gather_facts: true
#  ansible_connection: winrm
  tasks:
    name: Download  application
    win_get_url:
      url: https://download-cf.jetbrains.com/webide/PhpStorm-2018.2.5.exe
      dest: 'C:\Users\administrator\Downloads'
    name: Install application
    win_package:
      path: 'C:\Users\administrator\Downloads\PhpStorm-2018.2.5.exe'
      product_id: "PhpStorm"
      arguments: /S /install
      state: present

1 Ответ

0 голосов
/ 14 мая 2019

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