60 lines
2.1 KiB
YAML
60 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 понять, установлен ли софт
|
|
|
|
# 5. Уборка
|
|
- name: Unmount Network Drive
|
|
community.windows.win_mapped_drive:
|
|
letter: "{{ drive_letter }}"
|
|
state: absent |