61 lines
2.1 KiB
YAML
61 lines
2.1 KiB
YAML
---
|
||
- name: Install Software from SMB
|
||
hosts: windows
|
||
gather_facts: no
|
||
|
||
# Не забываем про коллекции, если они нужны
|
||
collections:
|
||
- community.windows
|
||
- ansible.windows
|
||
|
||
vars:
|
||
drive_letter: "Z"
|
||
# smb_user, smb_pass, smb_path приходят из Semaphore Environment
|
||
|
||
tasks:
|
||
# 1. СНАЧАЛА УДАЛЯЕМ ДИСК (Принудительная зачистка)
|
||
# Это гарантирует, что старые зависшие сессии не помешают
|
||
- name: Force unmount Z drive
|
||
community.windows.win_mapped_drive:
|
||
letter: "{{ drive_letter }}"
|
||
state: absent
|
||
ignore_errors: yes # Не падать, если диска и так нет
|
||
|
||
# 2. ТЕПЕРЬ МОНТИРУЕМ НАЧИСТО
|
||
- name: Mount Network Drive
|
||
community.windows.win_mapped_drive:
|
||
letter: "{{ drive_letter }}"
|
||
path: "{{ smb_path }}"
|
||
username: "{{ smb_user }}"
|
||
password: "{{ smb_pass }}"
|
||
state: present
|
||
|
||
# 3. Проверяем файлы (для отладки)
|
||
- name: Check file existence
|
||
win_stat:
|
||
path: "{{ drive_letter }}:\\Stirling-PDF.msi"
|
||
register: file_info
|
||
|
||
# 4. Установка
|
||
- name: Install Stirling-PDF (MSI)
|
||
ansible.windows.win_package:
|
||
path: "{{ drive_letter }}:\\Stirling-PDF.msi"
|
||
state: present
|
||
arguments: /quiet /norestart
|
||
when: file_info.stat.exists
|
||
|
||
# Пример 2: Установка EXE (Notepad++)
|
||
- name: Install Notepad++ (EXE)
|
||
ansible.windows.win_package:
|
||
path: "{{ drive_letter }}:\\notepad.exe"
|
||
state: present
|
||
# Для EXE ключи тихой установки зависят от установщика (/S, /VERYSILENT и т.д.)
|
||
arguments: /S
|
||
product_id: Notepad++ # Помогает Ansible понять, установлен ли софт
|
||
when: file_info.stat.exists
|
||
|
||
# 5. Уборка
|
||
- name: Unmount Network Drive
|
||
community.windows.win_mapped_drive:
|
||
letter: "{{ drive_letter }}"
|
||
state: absent |