Păstrez Instalarea dbatools.io Modul PowerShell actualizat pe serverele mele MSSQL cu un manual simplu Ansible care include următoarea sarcină:
################### ACTUALIZARE DBATOOLS ###################
- nume: uppdate dbatools
win_shell: |
if ([Net.ServicePointManager]::SecurityProtocol -match "Tls12") {
scrie-gazdă „OK: tls 12 activ”
}
altfel{
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
scrie-gazdă „SET: tls 12 a fost activat”
}
if ((Get-PSRepository).name -notLike „PSGallery”) {
scrie-gazdă „SET: Înregistrare PSGallery”
Register-PSRepository -Implicit
}
else {
scrie-gazdă „OK: PSGallery există”
}
Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
scrie-gazdă „SET: se actualizează dbatools”
Update-Dbatools -Cleanup -Confirm:$false
# La fel ca la instalare, cu excepția comenzii de instalare de la sfârșit
când: is_installed.stdout.find('true') != -1 ## folosit "find", deoarece stdout conține /r/n deoarece este o listă / find mai ușor decât curățarea var
Această sarcină funcționează, dar returnează următoarea eroare, de fiecare dată când trebuie să curețe o versiune veche de dbatools:
fatal: [server.domain.local]: FAILED! => {"schimbat": false, "module_stderr": "#< CLIXML\r\n", "module_stdout": "", "msg": "EROAREA MODULUI\nConsultați stdout/stderr pentru eroarea exactă", "rc „: 4294967295}
eu folosesc ignore_errors: da
pe el, astfel încât să nu-mi strice rezultatele, dar în cele din urmă aș dori să rezolv această problemă în mod fiabil.
Dacă execut această comandă direct prin conexiune la distanță pe orice gazdă, funcționează fără erori.
La plecarea din -Curăță
opțiunea departe, funcționează și fără erori, dar versiunile vechi de dbatools nu vor fi șterse și s-ar adăuga în timp.
Aveți idee despre cum poate fi gestionată corect această eroare pe Ansible?
Mesaj de eroare cu nivel ridicat de verbozitate:
redirecționarea (tip: module) ansible.builtin.win_shell către ansible.windows.win_shell
Folosind fișierul modul /runner/requirements_collections/ansible_collections/ansible/windows/plugins/modules/win_shell.ps1
Canalizarea este activată.
<SQL-Server-IP> STABILIREȚI CONEXIUNEA WINRM PENTRU UTILIZATOR: ansible-service-user pe PORTUL 5986 LA SQL-Server-IP
EXEC (prin înveliș pentru conducte)
fatal: [SQL-Server-FQDN]: FAILED! => {
„schimbat”: fals,
"module_stderr": "#< CLIXML\r\n",
"module_stdout": "",
"msg": "EROARE DE MODUL\nVedeți stdout/stderr pentru eroarea exactă",
"rc": 4294967295
}