Ansible na Debianie 12 (bookworm)
written by woju on 11.03.2025 12:00 CETbookworm
ma już półtora roku, i został wydany z Pythonem 3.11
i Ansible 7. Problem jest taki, że Python 3.12 wyrzucił sporo różnych
starych API, i jednym takim był argument cert_file=
do
http.client.HTTPSConnection
.
Tego argumentu używał Ansible, a konkretnie moduł
ansible.builtin.get_url
. Tak długo, jak zarządzany system to też Debian 12,
nie ma żadnego problemu, ale jak każemy ansiblowi połączyć się z maszyną,
na której jest Python 3.12 (np. noble
vel Ubuntu 24.04 LTS), to rzeczy się
psują:
..., "msg": "An unknown error occurred: HTTPSConnection.__init__() got an unexpected keyword argument 'cert_file'", ...
Bug nie był problemem, został naprawiony
(#83213), a nawet
zbackportowany do ansible-core 2.15
(#81257), ale bookworm
ma
Ansible 7, czyli ansible-core 2.14.
Rozwiązaniem jest aktualizacja Ansible, którą można sobie wziąć z trixie
:
/etc/apt/sources.list.d/trixie.list
:
deb https://deb.debian.org/debian trixie main
/etc/apt/preferences.d/ansible.pref
:
Package: *
Pin: release n=trixie
Pin-Priority: -10
Package: ansible* python3-netaddr
Pin: release n=trixie
Pin-Priority: 990
testing
nie jest objęty polityką bezpieczeństwa Debiana, ale to i tak
lepiej, niż instalować nową wersję z pip
a.
Wątek na Mastodonie (po angielsku): https://social.hackerspace.pl/@woju/114143424041984794