Điểm:1

Tác vụ ansible để cập nhật/dọn dẹp dbatools không thành công

lá cờ us

Tôi giữ Cài đặt của dbatools.io Mô-đun PowerShell được cập nhật trên Máy chủ MSSQL của tôi bằng một playbook Ansible đơn giản bao gồm tác vụ sau:

#################### CẬP NHẬT DBATOOLS ####################
    - tên: cập nhật dbatools
      win_shell: |
        if ([Net.ServicePointManager]::SecurityProtocol -match "Tls12") {
            ghi máy chủ "OK: tls 12 đang hoạt động"
            }
                khác{
                [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
                write-host "SET: tls 12 đã được kích hoạt"
                }

        if ((Get-PSRepository).name -notLike "PSGallery") {
            ghi máy chủ "SET: PSGallery đăng ký"
            Đăng ký-PSRepository-Default
            }
                khác {
                ghi máy chủ "OK: PSGallery hiện có"
                }

        Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
        write-host "SET: cập nhật dbatools"
        Cập nhật-Dbatools -Dọn dẹp -Xác nhận:$false
      # Tương tự như khi cài đặt ngoại trừ lệnh cài đặt ở cuối
      khi nào: is_install.stdout.find('true') != -1 ## đã sử dụng "tìm", vì thiết bị xuất chuẩn chứa /r/n vì nó là một danh sách / tìm dễ dàng hơn thì làm sạch var

Tác vụ này hoạt động nhưng nó trả về lỗi sau, mỗi khi nó phải dọn sạch phiên bản cũ của dbatools:

gây tử vong: [server.domain.local]: KHÔNG THÀNH CÔNG! => {"đã thay đổi": sai, "module_stderr": "#< CLIXML\r\n", "module_stdout": "", "msg": "LỖI MÔ-ĐUN\nXem thiết bị xuất chuẩn/thiết bị xuất chuẩn để biết lỗi chính xác", "rc ":4294967295}

tôi sử dụng bỏ qua_errors: có trên đó để nó không làm hỏng kết quả của tôi, nhưng cuối cùng thì tôi muốn giải quyết vấn đề này một cách đáng tin cậy.

Nếu tôi thực thi lệnh này trực tiếp thông qua kết nối từ xa trên bất kỳ máy chủ nào, nó sẽ hoạt động mà không có lỗi. Khi rời khỏi -Dọn dẹp tùy chọn này cũng hoạt động mà không có lỗi nhưng các phiên bản cũ của dbatools sẽ không bị xóa và nó sẽ bổ sung theo thời gian.

Bất kỳ ý tưởng làm thế nào lỗi này có thể được xử lý một cách chính xác trên Ansible?

Thông báo lỗi có độ chi tiết cao:

chuyển hướng (loại: mô-đun) ansible.buildin.win_shell sang ansible.windows.win_shell
Sử dụng tệp mô-đun /runner/requirements_collections/ansible_collections/ansible/windows/plugins/modules/win_shell.ps1
Đường ống được kích hoạt.
<SQL-Server-IP> THIẾT LẬP KẾT NỐI WINRM CHO NGƯỜI DÙNG: ansible-service-user trên CỔNG 5986 ĐẾN SQL-Server-IP
EXEC (thông qua trình bao bọc đường ống)
gây tử vong: [SQL-Server-FQDN]: KHÔNG THÀNH CÔNG! => {
    "đã thay đổi": sai,
    "module_stderr": "#< CLIXML\r\n",
    "module_stdout": "",
    "msg": "LỖI MÔ-ĐUN\nXem thiết bị xuất chuẩn/thiết bị xuất chuẩn để biết lỗi chính xác",
    "rc": 4294967295
}
Henrik Pingel avatar
lá cờ in
Thực thi ansible-playbook với `-vvv` để nhận đầu ra dài dòng. Nó phải chứa lỗi chính xác.
Manu avatar
lá cờ us
@HenrikPingel chúng tôi sử dụng AWX và tôi đã đặt mức độ chi tiết ở cài đặt cao nhất (4, Gỡ lỗi kết nối). Đã thêm đầu ra vào bài đăng của tôi, nhưng tôi đoán điều này sẽ không đưa chúng tôi tiến lên phía trước.
Điểm:0
lá cờ us

Bây giờ tôi đã thay đổi các nhiệm vụ từ win_shell đến ansible.windows.win_powershell. Mô-đun này có thể xử lý cảnh báo do quá trình dọn dẹp tạo ra:

"cảnh báo": [
    "Phiên bản '1.1.97' của mô-đun 'dbatools' hiện đang được sử dụng. Thử lại thao tác sau khi đóng ứng dụng.",
    "Không thể xóa phiên bản dbatools [1.1.97] do: \n\tSystem.Exception: Mô-đun 'dbatools' hiện đang được sử dụng hoặc bạn không có các quyền cần thiết."

Trên cơ sở này tôi sẽ thực hiện Cập nhật-Dbatools lệnh mà không có -dọn dẹp Tùy chọn. Sau đó, tôi sẽ thêm nhiệm vụ thứ hai để dọn dẹp các phiên bản dbatools cũ.

Tại sao điều này không xuất hiện khi thực hiện cập nhật/dọn dẹp thủ công là một bí ẩn đối với tôi.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.