Ik draai momenteel Salt 3002.6 (Debian 11 stable) en Debian 11 is ook de eerste Debian-versie die exclusief op Python 3 draait vzw. Ik heb een pillar die de beschikbare grains van de minions aanroept om het LAN IP op te vragen, en dat werkte de laatste keer goed (ik draai niet elke week Salt states
). Alleen breekt het nu:
Het werkte dus goed tot een tijdje terug - en alle gegevens zouden er ook gewoon moeten zijn
Pillar code:
Als ik de pillar items als JSON opvraag komen deze wél te voorschijn? Er staan wel vierkante haakjes rond, dus ik weet niet of dat deel van het probleem is?
De grains tonen duidelijk de data:
De 'dict_object has no attribute' fout lijkt zo weidverbreid bij Salt dat ik er niks specifiek over vind. Het 'vreemde' is ook dat het daarvoor gewoon een werkende pillar was, maar ik kan maar niet vinden wat er hier mis is. Layout lijkt het probleem niet te zijn.
Wat zoeken op de foutmelding oplevert hier en daar is dat het misschien aan Python 3 zou liggen, maar een oplossing of workaround vind ik niet. De meeste vergelijkbare foutmeldingen gaan over syntax errors in de pillar, maar die heb ik gedubbelcheckt en die zijn er voor zover ik kan zien niet.
nov 04 22:38:25 salt-master[8329]: File "/usr/lib/python3/dist-packages/salt/template.py", line 101, in compile_template nov 04 22:38:25 salt-master[8329]: ret = render(input_data, saltenv, sls, **render_kwargs) nov 04 22:38:25 salt-master[8329]: File "/usr/lib/python3/dist-packages/salt/renderers/jinja.py", line 66, in render nov 04 22:38:25 salt-master[8329]: tmp_data = salt.utils.templates.JINJA( nov 04 22:38:25 salt-master[8329]: File "/usr/lib/python3/dist-packages/salt/utils/templates.py", line 261, in render_tmpl nov 04 22:38:25 salt-master[8329]: output = render_str(tmplstr, context, tmplpath) nov 04 22:38:25 salt-master[8329]: File "/usr/lib/python3/dist-packages/salt/utils/templates.py", line 508, in render_jinja_tmpl nov 04 22:38:25 salt-master[8329]: raise SaltRenderError("Jinja variable {}{}".format(exc, out), buf=tmplstr) nov 04 22:38:25 salt-master[8329]: salt.exceptions.SaltRenderError: Jinja variable 'dict object' has no attribute 'eth0' nov 04 22:38:25 salt-master[8329]: [CRITICAL] Pillar render error: Rendering SLS 'mysql.kodi' failed. Please see master log for details.
Het werkte dus goed tot een tijdje terug - en alle gegevens zouden er ook gewoon moeten zijn
Pillar code:
code:
1
2
3
4
5
6
7
8
9
10
11
| include: - mysql kodi: server: bind-address: {{ grains['ip4_interfaces']['eth0'] }} mysqld: kodi_user: aaa kodi_pass: bbbb connection_charset: utf8 |
Als ik de pillar items als JSON opvraag komen deze wél te voorschijn? Er staan wel vierkante haakjes rond, dus ik weet niet of dat deel van het probleem is?
$ sudo salt 'amalthea*' pillar.items --out=json [snip] "kodi": { "server": { "bind-address": [ "10.0.0.15" ] }, "mysqld": { "kodi_user": "aaaa", "kodi_pass": "bbbb", "connection_charset": "utf8" } },
De grains tonen duidelijk de data:
$ sudo salt 'amalthea*' grains.items [snip] ip4_interfaces: ---------- eth0: - 10.0.0.15 lo: - 127.0.0.1
De 'dict_object has no attribute' fout lijkt zo weidverbreid bij Salt dat ik er niks specifiek over vind. Het 'vreemde' is ook dat het daarvoor gewoon een werkende pillar was, maar ik kan maar niet vinden wat er hier mis is. Layout lijkt het probleem niet te zijn.
Wat zoeken op de foutmelding oplevert hier en daar is dat het misschien aan Python 3 zou liggen, maar een oplossing of workaround vind ik niet. De meeste vergelijkbare foutmeldingen gaan over syntax errors in de pillar, maar die heb ik gedubbelcheckt en die zijn er voor zover ik kan zien niet.
[ Voor 4% gewijzigd door Borromini op 06-11-2021 22:00 ]
Got Leenucks? | Debian Bookworm x86_64 / ARM | OpenWrt: Empower your router | Blogje