Обновить playbooks/install_software_win.yml
This commit is contained in:
@@ -3,44 +3,46 @@
|
|||||||
hosts: windows
|
hosts: windows
|
||||||
gather_facts: no
|
gather_facts: no
|
||||||
|
|
||||||
# Если коллекции не подтягиваются автоматически, раскомментируйте:
|
# Не забываем про коллекции, если они нужны
|
||||||
# collections:
|
collections:
|
||||||
# - community.windows
|
- community.windows
|
||||||
# - ansible.windows
|
- ansible.windows
|
||||||
|
|
||||||
vars:
|
vars:
|
||||||
drive_letter: "Z"
|
drive_letter: "Z"
|
||||||
# Остальные переменные (smb_user, smb_pass, smb_path) ждем из Semaphore
|
# smb_user, smb_pass, smb_path приходят из Semaphore Environment
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
# 1. Монтируем диск
|
# 1. СНАЧАЛА УДАЛЯЕМ ДИСК (Принудительная зачистка)
|
||||||
|
# Это гарантирует, что старые зависшие сессии не помешают
|
||||||
|
- name: Force unmount Z drive
|
||||||
|
community.windows.win_mapped_drive:
|
||||||
|
letter: "{{ drive_letter }}"
|
||||||
|
state: absent
|
||||||
|
ignore_errors: yes # Не падать, если диска и так нет
|
||||||
|
|
||||||
|
# 2. ТЕПЕРЬ МОНТИРУЕМ НАЧИСТО
|
||||||
- name: Mount Network Drive
|
- name: Mount Network Drive
|
||||||
ansible.windows.win_mapped_drive: # Или ansible.windows.win_mapped_drive
|
community.windows.win_mapped_drive:
|
||||||
letter: "{{ drive_letter }}"
|
letter: "{{ drive_letter }}"
|
||||||
path: "{{ smb_path }}"
|
path: "{{ smb_path }}"
|
||||||
username: "{{ smb_user }}"
|
username: "{{ smb_user }}"
|
||||||
password: "{{ smb_pass }}"
|
password: "{{ smb_pass }}"
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: List files on Z drive (Debug)
|
# 3. Проверяем файлы (для отладки)
|
||||||
ansible.windows.win_shell: Get-ChildItem -Path Z:\
|
- name: Check file existence
|
||||||
register: dir_out
|
win_stat:
|
||||||
|
path: "{{ drive_letter }}:\\Stirling-PDF.msi"
|
||||||
|
register: file_info
|
||||||
|
|
||||||
- name: Show files
|
# 4. Установка
|
||||||
debug:
|
|
||||||
var: dir_out.stdout_lines
|
|
||||||
|
|
||||||
# --- СЮДА ВСТАВЛЯЕМ УСТАНОВКУ ---
|
|
||||||
|
|
||||||
# Пример 1: Установка MSI (самый надежный вариант)
|
|
||||||
- name: Install Stirling-PDF (MSI)
|
- name: Install Stirling-PDF (MSI)
|
||||||
ansible.windows.win_package:
|
ansible.windows.win_package:
|
||||||
# Важно: путь начинается с буквы диска (Z:)
|
|
||||||
path: "{{ drive_letter }}:\\Stirling-PDF.msi"
|
path: "{{ drive_letter }}:\\Stirling-PDF.msi"
|
||||||
state: present
|
state: present
|
||||||
arguments: /quiet /norestart
|
arguments: /quiet /norestart
|
||||||
# Игнорировать ошибки, если файл не найден (для теста можно убрать)
|
when: file_info.stat.exists
|
||||||
ignore_errors: no
|
|
||||||
|
|
||||||
# Пример 2: Установка EXE (Notepad++)
|
# Пример 2: Установка EXE (Notepad++)
|
||||||
- name: Install Notepad++ (EXE)
|
- name: Install Notepad++ (EXE)
|
||||||
@@ -50,11 +52,10 @@
|
|||||||
# Для EXE ключи тихой установки зависят от установщика (/S, /VERYSILENT и т.д.)
|
# Для EXE ключи тихой установки зависят от установщика (/S, /VERYSILENT и т.д.)
|
||||||
arguments: /S
|
arguments: /S
|
||||||
product_id: Notepad++ # Помогает Ansible понять, установлен ли софт
|
product_id: Notepad++ # Помогает Ansible понять, установлен ли софт
|
||||||
|
when: file_info.stat.exists
|
||||||
|
|
||||||
# --------------------------------
|
# 5. Уборка
|
||||||
|
|
||||||
# 3. Отключаем диск
|
|
||||||
- name: Unmount Network Drive
|
- name: Unmount Network Drive
|
||||||
ansible.windows.win_mapped_drive:
|
community.windows.win_mapped_drive:
|
||||||
letter: "{{ drive_letter }}"
|
letter: "{{ drive_letter }}"
|
||||||
state: absent
|
state: absent
|
||||||
Reference in New Issue
Block a user