Всем привет.
Сегодня инсталлируем софт с помощью 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
А что вы думаете по этому поводу?