snapshot
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
---
|
||||
- name: "Checkmk | Cleanup agent"
|
||||
hosts: all
|
||||
gather_facts: true
|
||||
|
||||
tasks:
|
||||
- name: "Windows | Remove installed Checkmk agent"
|
||||
when: ansible_facts['os_family'] == 'Windows'
|
||||
ansible.windows.win_powershell:
|
||||
script: |
|
||||
$Ansible.Changed = $false
|
||||
$uninstallRoots = @(
|
||||
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall',
|
||||
'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall'
|
||||
)
|
||||
|
||||
$products = foreach ($root in $uninstallRoots) {
|
||||
if (Test-Path -LiteralPath $root) {
|
||||
Get-ChildItem -LiteralPath $root -ErrorAction SilentlyContinue |
|
||||
ForEach-Object {
|
||||
$product = Get-ItemProperty -LiteralPath $_.PSPath -ErrorAction SilentlyContinue
|
||||
if ($product.DisplayName -like 'Check MK Agent*' -or
|
||||
$product.DisplayName -like 'Checkmk Agent*') {
|
||||
[PSCustomObject]@{
|
||||
ProductCode = $_.PSChildName
|
||||
DisplayName = $product.DisplayName
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($product in $products) {
|
||||
if ($product.ProductCode -match '^\{[0-9A-Fa-f-]+\}$') {
|
||||
$process = Start-Process -FilePath 'msiexec.exe' `
|
||||
-ArgumentList "/x $($product.ProductCode) /qn /norestart" `
|
||||
-Wait -PassThru
|
||||
|
||||
if ($process.ExitCode -notin @(0, 1605, 1614, 3010)) {
|
||||
throw "Failed to uninstall $($product.DisplayName). MSI exit code: $($process.ExitCode)"
|
||||
}
|
||||
|
||||
if ($process.ExitCode -in @(0, 3010)) {
|
||||
$Ansible.Changed = $true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$Ansible.Result = @{
|
||||
removed_products = @($products.DisplayName)
|
||||
}
|
||||
|
||||
- name: "Debian | Remove Checkmk agent"
|
||||
when: ansible_facts['os_family'] == 'Debian'
|
||||
ansible.builtin.apt:
|
||||
name: check-mk-agent
|
||||
state: absent
|
||||
purge: true
|
||||
|
||||
- name: "RedHat | Remove Checkmk agent"
|
||||
when: ansible_facts['os_family'] == 'RedHat'
|
||||
ansible.builtin.dnf:
|
||||
name: check-mk-agent
|
||||
state: absent
|
||||
Reference in New Issue
Block a user