Score:1

งานที่ต้องทำในการอัปเดต/ล้างข้อมูล dbatools ล้มเหลว

ธง us

ฉันเก็บการติดตั้งของ dbatools.io โมดูล PowerShell อัปเดตบนเซิร์ฟเวอร์ MSSQL ของฉันด้วยเพลย์บุ๊ก Ansible แบบง่ายๆ ซึ่งรวมถึงงานต่อไปนี้:

###################### อัพเดท DBATOOLS ####################
    - ชื่อ: อัปเดต dbatools
      win_shell: |
        ถ้า ([Net.ServicePointManager]::SecurityProtocol -match "Tls12") {
            เขียนโฮสต์ "ตกลง: tls 12 ใช้งานอยู่"
            }
                อื่น{
                [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
                เขียนโฮสต์ "SET: เปิดใช้งาน tls 12"
                }

        ถ้า ((รับ PSRepository).ชื่อ -notLike "PSGallery") {
            โฮสต์เขียน "SET: PSGallery กำลังลงทะเบียน"
            ลงทะเบียน PSRepository - ค่าเริ่มต้น
            }
                อื่น {
                เขียนโฮสต์ "ตกลง: PSGallery ที่มีอยู่"
                }

        ตั้งค่า PSRepository - ชื่อ PSGallery -InstallationPolicy Trusted
        เขียนโฮสต์ "SET: อัปเดต dbatools"
        Update-Dbatools -Cleanup -Confirm:$false
      # เหมือนกับการติดตั้งยกเว้นคำสั่งติดตั้งในตอนท้าย
      เมื่อ: is_installed.stdout.find('true') != -1 ## ใช้ "find" เนื่องจาก stdout มี /r/n เนื่องจากเป็นรายการ / find ง่ายกว่า จากนั้นทำความสะอาด var

งานนี้ใช้งานได้ แต่ส่งคืนข้อผิดพลาดต่อไปนี้ทุกครั้งที่ต้องล้างข้อมูล dbatools เวอร์ชันเก่า:

ร้ายแรง: [server.domain.local]: ล้มเหลว! => {"changed": false, "module_stderr": "#< CLIXML\r\n", "module_stdout": "", "msg": "MODULE FAILURE\nโปรดดู stdout/stderr สำหรับข้อผิดพลาดที่แน่นอน", "rc ":4294967295}

ฉันใช้ เพิกเฉยต่อข้อผิดพลาด: ใช่ เพื่อไม่ให้ผลลัพธ์ของฉันเสีย แต่ท้ายที่สุด ฉันต้องการแก้ปัญหานี้อย่างน่าเชื่อถือ

หากฉันดำเนินการคำสั่งนี้โดยตรงผ่านการเชื่อมต่อระยะไกลบนโฮสต์ใดๆ คำสั่งนั้นจะทำงานโดยไม่มีข้อผิดพลาด เมื่อออกจาก -ทำความสะอาด ตัวเลือกออกไปมันยังใช้งานได้โดยไม่มีข้อผิดพลาด แต่ dbatools เวอร์ชันเก่าจะไม่ถูกลบและจะเพิ่มขึ้นเมื่อเวลาผ่านไป

มีความคิดอย่างไรที่สามารถจัดการข้อผิดพลาดนี้บน Ansible ได้อย่างถูกต้อง

ข้อความแสดงข้อผิดพลาดที่มีรายละเอียดสูง:

การเปลี่ยนเส้นทาง (ประเภท: โมดูล) ansible.buildin.win_shell ไปยัง ansible.windows.win_shell
การใช้ไฟล์โมดูล /runner/requirements_collections/ansible_collections/ansible/windows/plugins/modules/win_shell.ps1
เปิดใช้งานการวางท่อ
<SQL-Server-IP> สร้างการเชื่อมต่อ WINRM สำหรับผู้ใช้: ansible-service-user บน PORT 5986 ไปยัง SQL-Server-IP
EXEC (ผ่านตัวห่อหุ้มไปป์ไลน์)
ร้ายแรง: [SQL-Server-FQDN]: ล้มเหลว! => {
    "เปลี่ยนแปลง": เท็จ
    "module_stderr": "#< CLIXML\r\n",
    "module_stdout": "",
    "msg": "โมดูลล้มเหลว\nดู stdout/stderr สำหรับข้อผิดพลาดที่แน่นอน",
    "rc": 4294967295
}
Henrik Pingel avatar
in flag
ดำเนินการ ansible-playbook ด้วย `-vvv` เพื่อรับเอาต์พุตอย่างละเอียด ควรมีข้อผิดพลาดที่แน่นอน
Manu avatar
us flag
@HenrikPingel เราใช้ AWX และฉันได้ตั้งค่าการใช้คำฟุ่มเฟือยในการตั้งค่าสูงสุด (4, การดีบักการเชื่อมต่อ) ได้เพิ่มผลลัพธ์ในโพสต์ของฉัน แต่ฉันเดาว่านี่จะไม่ทำให้เราก้าวไปข้างหน้า
Score:0
ธง us

ตอนนี้ฉันได้เปลี่ยนงานจาก win_shell ถึง ansible.windows.win_powershell. โมดูลนี้สามารถจัดการกับคำเตือนที่เกิดจากกระบวนการล้างข้อมูล:

"คำเตือน": [
    "เวอร์ชัน '1.1.97' ของโมดูล 'dbatools' กำลังใช้งานอยู่ ลองดำเนินการอีกครั้งหลังจากปิดแอปพลิเคชัน",
    "ไม่สามารถลบ dbatools เวอร์ชัน [1.1.97] เนื่องจาก: \n\tSystem.Exception: โมดูล 'dbatools' ใช้งานอยู่ หรือคุณไม่มีสิทธิ์ที่จำเป็น"

จากนี้ฉันจะดำเนินการ Update-Dbatools คำสั่งโดยไม่ต้อง -ทำความสะอาด ตัวเลือก. หลังจากนั้นฉันจะเพิ่มงานที่สองสำหรับการล้าง dbatools เวอร์ชันเก่า

เหตุใดสิ่งนี้จึงไม่ปรากฏขึ้นเมื่อทำการอัปเดต/ล้างข้อมูลด้วยตนเองเป็นเรื่องลึกลับสำหรับฉัน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา