Puncte:3

Eroare Ansible OpenSSL cu modulul apt

drapel pt

Acest lucru este destul de ciudat, l-am observat ieri pe una dintre mașinile mele țintă, iar astăzi se întâmplă și la celelalte. De asemenea, am încercat să rulez playbook-ul de pe o altă mașină și s-a întâmplat același lucru. Se pare că această problemă apare după o actualizare apt pe Ubuntu 20.04. Prima dată când trece upgrade-ul apt, totul este bine, dar după aceea modulul începe să eșueze.

Ieșirea eroare este după cum urmează:

SARCINA [comun: Actualizați managerul de pachete] ******************************************** ********************************************
A apărut o excepție în timpul execuției sarcinii. Pentru a vedea traseul complet, utilizați -vvv. Eroare a fost: AttributeError: module 'lib
„ nu are atributul „X509_V_FLAG_CB_ISSUER_CHECK”
fatal: [mr-bones]: FAILED! => schimbat=fals
  module_stderr: |-
    Traceback (cel mai recent apel ultimul):
      Fișierul „<stdin>”, linia 107, în <modul>
      Fișierul „<stdin>”, linia 99, în _ansiballz_main
      Fișierul „<stdin>”, linia 47, în invoke_module
      Fișierul „/usr/lib/python3.8/runpy.py”, linia 207, în run_module
        returnează _run_module_code(cod, init_globals, run_name, mod_spec)
      Fișierul „/usr/lib/python3.8/runpy.py”, linia 97, în _run_module_code
        _run_code(cod, mod_globals, init_globals,
      Fișierul „/usr/lib/python3.8/runpy.py”, linia 87, în _run_code
        exec(cod, run_globals)
      Fișierul „/tmp/ansible_apt_payload_vpe7xcy0/ansible_apt_payload.zip/ansible/modules/apt.py”, linia 346, în <modul>
      Fișier „<frozen importlib._bootstrap>”, linia 991, în _find_and_load
      Fișier „<frozen importlib._bootstrap>”, linia 975, în _find_and_load_unlocked
      Fișier „<frozen importlib._bootstrap>”, linia 655, în _load_unlocked
      Fișier „<frozen importlib._bootstrap>”, linia 618, în _load_backward_compatible
      Fișierul „<frozen zipimport>”, linia 259, în load_module
      Fișierul „/tmp/ansible_apt_payload_vpe7xcy0/ansible_apt_payload.zip/ansible/module_utils/urls.py”, linia 115, în <modul>
      Fișierul „/usr/local/lib/python3.8/dist-packages/urllib3/contrib/pyopenssl.py”, linia 50, în <modul>
        importați OpenSSL.SSL
      Fișierul „/usr/lib/python3/dist-packages/OpenSSL/__init__.py”, linia 8, în <modul>
        din OpenSSL import crypto, SSL
      Fișierul „/usr/lib/python3/dist-packages/OpenSSL/crypto.py”, linia 1553, în <modul>
        clasa X509StoreFlags(obiect):
      Fișierul „/usr/lib/python3/dist-packages/OpenSSL/crypto.py”, linia 1573, în X509StoreFlags
        CB_ISSUER_CHECK = _lib.X509_V_FLAG_CB_ISSUER_CHECK
    AttributeError: modulul „lib” nu are atributul „X509_V_FLAG_CB_ISSUER_CHECK”
  module_stdout: ''
  mesaj: |-
    EROARE DE MODUL
    Consultați stdout/stderr pentru eroarea exactă
  rc: 1

Ar trebui să remarc că comenzi precum sudo apt-get upgrade funcționează bine pe mașina țintă fără ansible.

A mai întâlnit cineva asta? Ar trebui să raportez acest lucru ca o eroare celor ansible de pe github?

EDITAȚI | ×: Am făcut mai multe săpături și se pare că acest lucru afectează alte module ansible precum get_url, ceea ce mă indică ideea că aceasta este o eroare Python/OpenSSL, mai degrabă că ceva de-a face cu apt

drapel pt
Se pare că rularea `sudo pip3 install --force-reinstall pyopenssl` pe mașina țintă a rezolvat problema. Cu toate acestea, l-am rulat și pe mașina gazdă înainte de asta fără niciun efect aparent (deci este posibil ipotetic să o faceți pe ambele)
Puncte:3
drapel cn

Am avut o problemă similară astăzi și investigațiile au indicat aceeași direcție.

Noi folosim pyOpenSSL și s-au blocat la versiunea mai veche. Folosește cele mai recente criptografie versiune de bibliotecă cu cerințe criptografie>=2,8.

Deci, versiunea schimbată în mod neașteptat a fost criptografia 36.0.2 -> 37.0.0 asta s-a întâmplat pe 26 aprilie (ieri). Folosind cele mai vechi 36.0.2 am rezolvat problema în cazul meu, deoarece blocarea la acea versiune nu a fost o problemă.

Pe baza mesajului de eroare, Ansible ar putea avea o problemă similară, deoarece pare să folosească pyOpenSSL, iar importul OpenSSL dă eroarea ca în cazul meu.

Actualizați:
După cum sa menționat în comentarii, cea mai recentă versiune pyOpenSSL probabil că nu are această problemă. Deci, dacă doriți doar să anulați rapid modificarea care a cauzat problema, anulați actualizarea bibliotecii de criptografie într-un fel. O soluție mai bună este să actualizați pyOpenSSL la cea mai recentă versiune, dacă aveți timp să-l testați corect.

drapel pt
Da, aceasta pare, în general, soluția. Sau cel puțin suficient de bun, în cazul meu, reinstalarea pyopenssl pare să fi făcut-o de asemenea.
drapel ru
Pentru mine pe python 3.8, actualizarea pyopenssl la 22.0.0 a remediat.
Puncte:3
drapel in

Administratorii de pachete au implementat v37.0.1 care include (https://github.com/pyca/cryptography/commit/3fb93cfde75d073a91bc4a73a51f62962092501e):

  • Au fost restaurate unele simboluri vechi pentru mai vechi pyOpenSSL utilizatorii. Acestea vor fi eliminat din nou în viitor, deci pyOpenSSL utilizatorii ar trebui să facă în continuare upgrade la cea mai recentă versiune a pachetului respectiv atunci când fac upgrade criptografie.

Așadar, actualizarea la criptografie v37.0.1 ar trebui să funcționeze indiferent de versiunea dvs. pyOpenSSL, dar, după cum s-a menționat, aceste modificări vor fi reintroduse la o dată ulterioară, așa cum a sugerat @Miika, actualizarea este cea mai bună cale de a merge dacă puteți.

drapel pt
Ah, minunat. Îți mulțumesc pentru confirmare.
Puncte:1
drapel ru

Pentru mediul meu care folosește python 3.8, actualizare pyopenssl la 22.0.0 cu criptografie la 37.0.0 a rezolvat problema.

Puncte:0
drapel in

Am primit această eroare cu AWX configurat cu AWX-EE implicit (Latest) cu alt modul.

Noul AWX-EE lansat astăzi (27 aprilie 2022) generează aceeași problemă pentru unele module (cel puțin unul de partea mea)

Schimbarea AWX-EE la versiunea 0.6.0 a rezolvat problema.

drapel pt
Nu folosesc AWX, dar se pare că există o problemă cu o actualizare recentă undeva...
Puncte:0
drapel bw

Python3.7 în virtualenv

pip install cryptography==37.0.0

Schimbare per rezolvare a problemei

pip install cryptography==36.0.0

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.