Điểm:3

Lỗi OpenSSL Ansible với mô-đun apt

lá cờ pt

Điều này khá kỳ lạ, tôi đã nhận thấy nó ngày hôm qua trên một trong những máy mục tiêu của mình và hôm nay nó cũng xảy ra trên những máy còn lại. Tôi cũng đã thử chạy playbook từ một máy khác và điều tương tự cũng xảy ra. Có vẻ như sự cố này xảy ra sau khi nâng cấp apt trên Ubuntu 20.04. Lần đầu tiên quá trình nâng cấp apt diễn ra, tất cả đều ổn, nhưng sau đó mô-đun bắt đầu bị lỗi.

Đầu ra lỗi như sau:

NHIỆM VỤ [phổ biến: Trình quản lý gói cập nhật] ****************************************** *********************************************
Một ngoại lệ xảy ra trong quá trình thực hiện tác vụ. Để xem truy nguyên đầy đủ, hãy sử dụng -vvv. Lỗi là: AttributeError: module 'lib
' không có thuộc tính 'X509_V_FLAG_CB_ISSUER_CHECK'
gây tử vong: [mr-bones]: THẤT BẠI! => đã thay đổi=sai
  mô-đun_stderr: |-
    Traceback (cuộc gọi gần đây nhất cuối cùng):
      Tệp "<stdin>", dòng 107, trong <module>
      Tệp "<stdin>", dòng 99, trong _ansiballz_main
      Tệp "<stdin>", dòng 47, trong invoke_module
      Tệp "/usr/lib/python3.8/runpy.py", dòng 207, trong run_module
        trả về _run_module_code(mã, init_globals, run_name, mod_spec)
      Tệp "/usr/lib/python3.8/runpy.py", dòng 97, trong _run_module_code
        _run_code(mã, mod_globals, init_globals,
      Tệp "/usr/lib/python3.8/runpy.py", dòng 87, trong _run_code
        exec(mã, run_globals)
      Tệp "/tmp/ansible_apt_payload_vpe7xcy0/ansible_apt_payload.zip/ansible/modules/apt.py", dòng 346, trong <module>
      Tệp "<frozen importlib._bootstrap>", dòng 991, trong _find_and_load
      Tệp "<frozen importlib._bootstrap>", dòng 975, trong _find_and_load_unlocked
      Tệp "<frozen importlib._bootstrap>", dòng 655, trong _load_unlocked
      Tệp "<frozen importlib._bootstrap>", dòng 618, trong _load_backward_ compatible
      Tệp "<frozen zipimport>", dòng 259, trong load_module
      Tệp "/tmp/ansible_apt_payload_vpe7xcy0/ansible_apt_payload.zip/ansible/module_utils/urls.py", dòng 115, trong <module>
      Tệp "/usr/local/lib/python3.8/dist-packages/urllib3/contrib/pyopenssl.py", dòng 50, trong <module>
        nhập OpenSSL.SSL
      Tệp "/usr/lib/python3/dist-packages/OpenSSL/__init__.py", dòng 8, trong <module>
        từ OpenSSL nhập tiền điện tử, SSL
      Tệp "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", dòng 1553, trong <module>
        lớp X509StoreFlags(đối tượng):
      Tệp "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", dòng 1573, trong X509StoreFlags
        CB_ISSUER_CHECK = _lib.X509_V_FLAG_CB_ISSUER_CHECK
    AttributionError: mô-đun 'lib' không có thuộc tính 'X509_V_FLAG_CB_ISSUER_CHECK'
  mô-đun_stdout: ''
  thông báo: |-
    LỖI MÔ-ĐUN
    Xem thiết bị xuất chuẩn/thiết bị xuất chuẩn để biết lỗi chính xác
  rc: 1

Tôi nên lưu ý rằng các lệnh như sudo apt-get nâng cấp chỉ hoạt động tốt trên máy mục tiêu mà không cần ansible.

Đã có người khác gặp phải điều này? Tôi có nên báo cáo đây là lỗi cho những người dùng ansible trên github không?

CHỈNH SỬA: Tôi đã đào thêm một số thứ và có vẻ như điều này ảnh hưởng đến các mô-đun ansible khác như get_url, điều này khiến tôi nghĩ rằng đây là lỗi Python/OpenSSL, đúng hơn là có liên quan đến apt

lá cờ pt
Có vẻ như việc chạy `Sudo pip3 install --force-reinstall pyopenssl` trên máy đích đã giải quyết được sự cố. Tuy nhiên, tôi cũng đã chạy nó trên máy chủ trước đó mà không có tác dụng rõ ràng (vì vậy theo giả thuyết có thể bạn phải làm điều đó trên cả hai)
Điểm:3
lá cờ cn

Tôi đã gặp sự cố tương tự ngày hôm nay và các cuộc điều tra đã chỉ ra cùng một hướng.

Chúng tôi đang sử dụng pyOpenSSL và đã bị khóa với phiên bản cũ hơn. Nó đang sử dụng bản mới nhất mật mã phiên bản thư viện với yêu cầu mật mã>=2.8.

Vì vậy, phiên bản thay đổi bất ngờ là mật mã 36.0.2 -> 37.0.0 điều đó đã xảy ra vào ngày 26 tháng 4 (hôm qua). Sử dụng cũ hơn 36.0.2 đã khắc phục sự cố trong trường hợp của tôi vì việc khóa phiên bản đó không phải là vấn đề.

Dựa trên thông báo lỗi, Ansible có thể gặp sự cố tương tự vì dường như đang sử dụng pyOpenSSL và việc nhập OpenSSL đang gây ra lỗi như trong trường hợp của tôi.

Cập nhật:
Như đã đề cập trong các nhận xét, phiên bản pyOpenSSL mới nhất có thể không gặp sự cố này. Vì vậy, nếu bạn chỉ muốn nhanh chóng hoàn nguyên thay đổi đã gây ra sự cố, hãy hoàn nguyên bản cập nhật thư viện mật mã theo một cách nào đó. Giải pháp tốt hơn là nâng cấp pyOpenSSL lên phiên bản mới nhất, nếu bạn có thời gian để kiểm tra đúng cách.

lá cờ pt
Vâng, điều này thường có vẻ giống như giải pháp. Hoặc ít nhất là đủ tốt, trong trường hợp của tôi, việc cài đặt lại pyopenssl dường như cũng đã thực hiện được.
lá cờ ru
Đối với tôi trên python 3.8, việc nâng cấp pyopenssl lên 22.0.0 đã sửa nó.
Điểm:3
lá cờ in

Các nhà bảo trì gói đã triển khai v37.0.1 bao gồm (https://github.com/pyca/cryptography/commit/3fb93cfde75d073a91bc4a73a51f62962092501e):

  • Đã khôi phục một số biểu tượng kế thừa cho cũ hơn pyOpenSSL người dùng. Đây sẽ là loại bỏ một lần nữa trong tương lai, vì vậy pyOpenSSL người dùng vẫn nên nâng cấp lên phiên bản mới nhất của gói đó khi họ nâng cấp mật mã.

Vì vậy, việc nâng cấp lên mật mã v37.0.1 sẽ hoạt động bất kể phiên bản pyOpenSSL của bạn là gì nhưng như đã lưu ý, những thay đổi này sẽ được giới thiệu lại vào một ngày sau đó, vì vậy @Miika đã đề xuất, nâng cấp là cách tốt hơn nếu bạn có thể.

lá cờ pt
A, đáng yêu. Cảm ơn bạn đã xác nhận.
Điểm:1
lá cờ ru

Đối với môi trường của tôi sử dụng python 3.8, việc nâng cấp pyopenssl đến 22.0.0 với mật mã tại 37.0.0 đã khắc phục sự cố.

Điểm:0
lá cờ in

Tôi gặp lỗi này với AWX được định cấu hình với AWX-EE mặc định (Mới nhất) với một mô-đun khác.

AWX-EE mới được phát hành hôm nay (27 tháng 4 năm 2022) tạo ra cùng một vấn đề đối với một số mô-đun (ít nhất một mô-đun ở bên tôi)

Việc thay đổi AWX-EE thành phiên bản 0.6.0 đã giải quyết được sự cố.

lá cờ pt
Tôi không sử dụng AWX, nhưng có vẻ như đã xảy ra sự cố với bản cập nhật gần đây ở đâu đó...
Điểm:0
lá cờ bw

Python3.7 trong virtualenv

mật mã cài đặt pip==37.0.0

Thay đổi cho mỗi vấn đề giải quyết

mật mã cài đặt pip==36.0.0

Đă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.