Мне нужно создать playbook, который:
- проверяет, установлено ли приложение 1 - если не удается, выйдите из этого хоста и перейдите к следующему хосту
- проверяет, установлено ли приложение application2 - если не удается, выйдите и перейдите на следующий хост
- остановка сервисов application2
- удалить приложение1 - убедитесь, что службы приложения2 остановлены перед установкой приложения3 - затем установите приложение3
- запустить сервисы application2
##################################################
- Playbook Определите, установлены ли приложения
- задачи
- имя: проверьте, установлено ли приложение1, если да, продолжайте
win_shell: |
$application1 = ("","Wow6432Node: |ForEach-Object {Get-ChildItem HKLM:/SOFTWARE\$_\Microsoft\hostname }}"Windows\CurrentVersion\Uninstall\}
select@(n=Name;e={$.getvalue("displayname")}} Где {$. -like "*application1*"}).name.length -gt 0
with_items:"{{имя хоста}}"
изменено_когда: ложь
ignore_errors: правда
регистр: вывод
win_shell: эхо output.stdout
ЛОГИКА ВЫХОДА
- имя: проверьте, установлено ли приложение2, если да, продолжайте
win_shell: |
$application1 = ("","Wow6432Node: |ForEach-Object {Get-ChildItem HKLM:/SOFTWARE\$_\Microsoft\hostname }}"Windows\CurrentVersion\Uninstall\}
select@(n=Name;e={$.getvalue("displayname")}} Где {$. -like "*application2*"}).name.length -gt 0
with_items:"{{имя хоста}}"
изменено_когда: ложь
ignore_errors: правда
регистр: выход2
win_shell: эхо output2.stdout
ЛОГИКА ВЫХОДА
##################################################
- название: остановка сервисов application2
win_shell: Stop-Process -Name "Application2*" -Force
with_items"{{ имя хоста" }}
изменено_когда: ложь
ignore_errors: правда
зарегистрироваться: установлен
- отладка: msg="Остановить службы Application2"
##################################################
- имя: удалить приложение1
win_command: C:\Windows\System32\msiexec.exe /i C:\Program Files (x86)\Application1\uninstall.exe /qn /norestart
зарегистрироваться:application1uninstall
- название: Установка Application3 с помощью win_command
win_command: Application3_installer.exe
зарегистрироваться:application3install
##################################################
- имя: Запуск сервисов Application2
win_service:
имя: Приложение2
состояние: запущено