Главная

Thursday, 8 October 2020

Инсталлируем софт с помощью Ansible.


Всем привет.

Сегодня инсталлируем софт с помощью Ansible. В качестве управляемых хостов берем Windows. Итак, я знаю четыре способа как это сделать: из пакета, прямо из интернета, и с помощью пакетного cmd-файла или PowerShell. В двух последних случаях надо предварительно закинуть на хост сам cmd-файлик или ps1.

Создаем плейбук Ansible.

- name: Windows file example playbook

  hosts: all

  gather_facts: false

Далее пишем наши задачи. Первый вариант - инсталляция из пакета: 

  tasks:

- name: Install package 

    win_package:

      path: c:\temp\install\rdcman.msi

      product_id: '{0240359E-6A4C-4884-9E94-B397A02D893C}'

      arguments: /silent /unattended

      state: present

Пусть вы желаете раскрутить Adobe Acrobat Reader на штатных хостах Windows, вы можете воспользоваться модулями win_copy или win_get_url для распространения надлежащего установщика, а затем своим модулем win_package для его установки. Однако можно использовать более изящный способ:

- name: Install Acrobat Reader

  win_chocolatey:

    name: adobereader

    state: present


Что касается вариантов пакетного cmd-файла или PowerShell, то для начала создаем предварительно отдельную папку, если не хотим использовать ту же c:\temp (Вдруг она не существует?)

   - name: Create a directory using cmd.exe

      win_shell: mkdir C:\MasteryCMD

      args:

        executable: cmd    

ИЛИ

   - name: Create a directory using PowerShell

      win_shell: New-Item -Path C:\MasteryPS -ItemType Directory

далее копируем наш master.cmd на целевой хост:

    - name: Copy across a test file

      win_copy:

        src: ~/src/mastery/master.cmd

        dest: 'C:\MasteryCMD\master.cmd'

и запускаем его на выполнение:

   - name: Create a directory using cmd.exe

      win_shell: C:\MasteryCMD\master.cmd

      args:

        executable: cmd    

С PowerShell поступаем аналогично.

Удачи.


No comments:

Post a Comment

А что вы думаете по этому поводу?