Puncte:1

Sarcină ansible pentru actualizarea/curățarea dbatools eșuând

drapel us

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
}
Henrik Pingel avatar
drapel in
Executați ansible-playbook cu `-vvv` pentru a obține rezultate detaliate. Ar trebui să conțină eroarea exactă.
Manu avatar
drapel us
@HenrikPingel folosim AWX și am setat verbozitatea la cea mai mare setare (4, Connection Debug). Am adăugat rezultatul în postarea mea, dar cred că acest lucru nu ne va aduce mai departe.
Puncte:0
drapel us

Am schimbat acum sarcinile de la win_shell la ansible.windows.win_powershell. Acest modul este capabil să gestioneze avertismentul generat de procesul de curățare:

"avertizare": [
    „Versiunea „1.1.97” a modulului „dbatools” este în prezent în uz. Reîncercați operațiunea după închiderea aplicațiilor.”,
    „Nu se poate elimina versiunea dbatools [1.1.97] din cauza: \n\tSystem.Exception: Modulul „dbatools” este în uz în prezent sau nu aveți permisiunile necesare.”

Pe baza acestui lucru voi efectua Actualizare-Dbatools comanda fără -curăță opțiune. După aceea, voi adăuga o a doua sarcină pentru curățarea versiunilor vechi dbatools.

De ce nu ar apărea acest lucru la efectuarea manuală a actualizării/curățării este un mister pentru mine.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.