infra issueshttps://git.fsmpi.rwth-aachen.de/groups/infra/-/issues2023-12-13T14:42:00+01:00https://git.fsmpi.rwth-aachen.de/infra/ansible-shared/common/-/issues/15ssh-server: “ensure our and only our keys are authorized for root” task broken2023-12-13T14:42:00+01:00Thomas Schneiderthomas@fsmpi.rwth-aachen.dessh-server: “ensure our and only our keys are authorized for root” task broken?????
```
TASK [common/ssh-server : ensure our and only our keys are authorized for root] ***
task path: /home/qsx/RWTH/FSMPI/ansible/shared-roles/common/ssh-server/tasks/main.yml:158
The full traceback is:
Traceback (most recent call la...?????
```
TASK [common/ssh-server : ensure our and only our keys are authorized for root] ***
task path: /home/qsx/RWTH/FSMPI/ansible/shared-roles/common/ssh-server/tasks/main.yml:158
The full traceback is:
Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/ansible/executor/task_executor.py", line 165, in run
res = self._execute()
^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/ansible/executor/task_executor.py", line 641, in _execute
result = self._handler.run(task_vars=vars_copy)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/ansible/plugins/action/assemble.py", line 144, in run
diff = self._get_diff_data(dest, path, task_vars)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: ActionBase._get_diff_data() missing 1 required positional argument: 'content'
fatal: [rt]: FAILED! => {
"msg": "Unexpected failure during module execution: ActionBase._get_diff_data() missing 1 required positional argument: 'content'",
"stdout": ""
}
```https://git.fsmpi.rwth-aachen.de/infra/ansible-shared/zabbix/-/issues/1zabbix-agent extra packages broken on Debian Bullseye bare-metal hosts2023-07-14T18:09:36+02:00Thomas Schneiderthomas@fsmpi.rwth-aachen.dezabbix-agent extra packages broken on Debian Bullseye bare-metal hostsThe `zabbix-check-disk-performance` and `zabbix-check-smart` extra packages from CHR’s repository seem to be broken on Debian Bullseye (and likely later as well) bare-metal hosts:
```
Jul 14 18:05:07 undulatus.fsmpi.rwth-aachen.de syste...The `zabbix-check-disk-performance` and `zabbix-check-smart` extra packages from CHR’s repository seem to be broken on Debian Bullseye (and likely later as well) bare-metal hosts:
```
Jul 14 18:05:07 undulatus.fsmpi.rwth-aachen.de systemd[1]: Starting Zabbix Agent...
Jul 14 18:05:07 undulatus.fsmpi.rwth-aachen.de zabbix_agentd[3142947]: zabbix_agentd [3142947]: ERROR: cannot add user parameter "smart.raw[*],sudo /usr/sbin/zabbix_check_smart_get.py $1 $2": key "smart.raw" already exists
Jul 14 18:05:07 undulatus.fsmpi.rwth-aachen.de systemd[1]: zabbix-agent.service: Control process exited, code=exited, status=1/FAILURE
Jul 14 18:05:07 undulatus.fsmpi.rwth-aachen.de systemd[1]: zabbix-agent.service: Failed with result 'exit-code'.
Jul 14 18:05:07 undulatus.fsmpi.rwth-aachen.de systemd[1]: Failed to start Zabbix Agent.
Jul 14 18:05:10 undulatus.fsmpi.rwth-aachen.de systemd[1]: Stopped Zabbix Agent.
Jul 14 18:05:10 undulatus.fsmpi.rwth-aachen.de systemd[1]: Starting Zabbix Agent...
Jul 14 18:05:10 undulatus.fsmpi.rwth-aachen.de zabbix_agentd[3143691]: zabbix_agentd [3143691]: ERROR: cannot add user parameter "vfs.discover,/usr/lib/zabbix-check/bin/zabbix-check-disk-performance-discover.py": key "vfs.discover" already exists
Jul 14 18:05:10 undulatus.fsmpi.rwth-aachen.de systemd[1]: zabbix-agent.service: Control process exited, code=exited, status=1/FAILURE
Jul 14 18:05:10 undulatus.fsmpi.rwth-aachen.de systemd[1]: zabbix-agent.service: Failed with result 'exit-code'.
Jul 14 18:05:10 undulatus.fsmpi.rwth-aachen.de systemd[1]: Failed to start Zabbix Agent.
Jul 14 18:05:21 undulatus.fsmpi.rwth-aachen.de systemd[1]: zabbix-agent.service: Scheduled restart job, restart counter is at 8.
Jul 14 18:05:21 undulatus.fsmpi.rwth-aachen.de systemd[1]: Stopped Zabbix Agent.
```https://git.fsmpi.rwth-aachen.de/infra/ansible-shared/common/-/issues/14shell: Task “ensure that pcspeaker remains silent” is broken2023-06-16T14:55:07+02:00Thomas Schneiderthomas@fsmpi.rwth-aachen.deshell: Task “ensure that pcspeaker remains silent” is broken```
TASK [common/shell : ensure that pcspeaker remains silent] ***
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: Exception: Error while setting attributes: /usr/bin/chattr: Operation not...```
TASK [common/shell : ensure that pcspeaker remains silent] ***
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: Exception: Error while setting attributes: /usr/bin/chattr: Operation not supported while reading flags on /tmp/tmprklj38gx
task path: /home/qsx/RWTH/FSMPI/ansible/shared-roles/common/shell/tasks/shell.yml:161
fatal: [cl-deb]: FAILED! => {"changed": false, "details": "Error while setting attributes: /usr/bin/chattr: Operation not supported while reading flags on /tmp/tmprklj38gx\n", "gid": 0, "group": "root", "mode": "0644", "msg": "chattr failed", "owner": "root", "path": "/tmp/tmprklj38gx", "size": 0, "state": "file", "uid": 0}
```
The [community.general.kernel_blacklist module](https://docs.ansible.com/ansible/latest/collections/community/general/kernel_blacklist_module.html) tries to set some attribute on a temporary file (not directly from a quick inspection, but through some library calls), but the `tmpfs` on `/tmp` does not support that.https://git.fsmpi.rwth-aachen.de/infra/ansible-shared/common/-/issues/13shell: ansible-lint schema[moves]2023-06-13T14:13:44+02:00Thomas Schneiderthomas@fsmpi.rwth-aachen.deshell: ansible-lint schema[moves]```
% ansible-lint -t schema shell
WARNING Listing 2 violation(s) marked as ignored, likely already known
schema[moves]: with_filetree was moved to with_community.general.flattened in 2.10 # ignored
shell/tasks/shell.yml:145 Returned e...```
% ansible-lint -t schema shell
WARNING Listing 2 violation(s) marked as ignored, likely already known
schema[moves]: with_filetree was moved to with_community.general.flattened in 2.10 # ignored
shell/tasks/shell.yml:145 Returned errors will not include exact line numbers, but they will mention
the schema name being used as a tag, like ``schema[playbook]``,
``schema[tasks]``.
This rule is not skippable and stops further processing of the file.
If incorrect schema was picked, you might want to either:
* move the file to standard location, so its file is detected correctly.
* use ``kinds:`` option in linter config to help it pick correct file type.
schema[moves]: with_filetree was moved to with_community.general.flattened in 2.10 # ignored
shell/tasks/shell.yml:162 Returned errors will not include exact line numbers, but they will mention
the schema name being used as a tag, like ``schema[playbook]``,
``schema[tasks]``.
This rule is not skippable and stops further processing of the file.
If incorrect schema was picked, you might want to either:
* move the file to standard location, so its file is detected correctly.
* use ``kinds:`` option in linter config to help it pick correct file type.
Passed with production profile: 0 failure(s), 2 warning(s) on 12 files.
```
Joa, müsste man mal.https://git.fsmpi.rwth-aachen.de/infra/ansible-shared/common/-/issues/12hostkey-provider: ansible-lint ignore_errors2023-06-23T00:05:55+02:00Thomas Schneiderthomas@fsmpi.rwth-aachen.dehostkey-provider: ansible-lint ignore_errors```
% ansible-lint -t ignore-errors hostkey-provider
WARNING Listing 1 violation(s) marked as ignored, likely already known
ignore-errors: Use failed_when and specify error conditions instead of using ignore_errors. # ignored
hostkey-pr...```
% ansible-lint -t ignore-errors hostkey-provider
WARNING Listing 1 violation(s) marked as ignored, likely already known
ignore-errors: Use failed_when and specify error conditions instead of using ignore_errors. # ignored
hostkey-provider/tasks/main.yml:3 Task/Handler: ensure host keys are centrally collected
Passed with production profile: 0 failure(s), 1 warning(s) on 4 files.
```
Warum werden hier die Fehler ignoriert, lässt sich das dokumentieren oder weglassen?
Kommt (ursprünglich) aus a0fdcb2, ping @larsb.https://git.fsmpi.rwth-aachen.de/infra/ansible-shared/common/-/issues/11ssh-server: ansible-lint no-changed-when2023-06-13T14:07:02+02:00Thomas Schneiderthomas@fsmpi.rwth-aachen.dessh-server: ansible-lint no-changed-when```
% ansible-lint -t no-changed-when ssh-server
WARNING Listing 2 violation(s) marked as ignored, likely already known
no-changed-when: Commands should not change things if nothing needs doing. # ignored
ssh-server/tasks/main.yml:112 T...```
% ansible-lint -t no-changed-when ssh-server
WARNING Listing 2 violation(s) marked as ignored, likely already known
no-changed-when: Commands should not change things if nothing needs doing. # ignored
ssh-server/tasks/main.yml:112 Task/Handler: ensure pam creates a home directory
no-changed-when: Commands should not change things if nothing needs doing. # ignored
ssh-server/tasks/main.yml:121 Task/Handler: ensure pam doesn't create a home directory
Passed with production profile: 0 failure(s), 2 warning(s) on 18 files.
```
Ist das mit vertretbarem Aufwand fixbar?
Das kam in 19f0da56 rein, ping @robin.https://git.fsmpi.rwth-aachen.de/infra/ansible-shared/webservices/-/issues/18uwsgi-python: Git vs Repository-Owner2023-04-28T10:29:26+02:00Thomas Schneiderthomas@fsmpi.rwth-aachen.deuwsgi-python: Git vs Repository-OwnerSeit [Git 2.36](https://git.kernel.org/pub/scm/git/git.git/tree/Documentation/RelNotes/2.36.0.txt?id=f85cd430b12b0d3e4f1a30ef3239a1b73d5f6331#n16) redet das nicht mehr mit Repos, die anderen Usern gehören:
```
task path: /Users/thomas/R...Seit [Git 2.36](https://git.kernel.org/pub/scm/git/git.git/tree/Documentation/RelNotes/2.36.0.txt?id=f85cd430b12b0d3e4f1a30ef3239a1b73d5f6331#n16) redet das nicht mehr mit Repos, die anderen Usern gehören:
```
task path: /Users/thomas/RWTH/FSMPI/ansible/shared-roles/webservices/uwsgi-python/tasks/app.yml:165
fatal: [printsrv]: FAILED! =>
{
"changed": false,
"msg": "Could not determine branch data - received ",
"stderr": "fatal: detected dubious ownership in repository at '/var/www/printercount/program'\nTo add an exception for this directory, call:\n\n\tgit config --global --add safe.directory /var/www/printercount/program\n",
"stderr_lines": [
"fatal: detected dubious ownership in repository at '/var/www/printercount/program'",
"To add an exception for this directory, call:",
"",
"\tgit config --global --add safe.directory /var/www/printercount/program"
],
"stdout": "",
"stdout_lines": []
}
```https://git.fsmpi.rwth-aachen.de/infra/ansible-shared/webservices/-/issues/17webserver: Failt im Check Mode bei neuer Server-Instanz2023-04-28T10:07:39+02:00Thomas Schneiderthomas@fsmpi.rwth-aachen.dewebserver: Failt im Check Mode bei neuer Server-InstanzWenn man einen neuen Eintrag in `webservers` hat und die Rolle im Check Mode ausführt, schlägt der Task `enable our active proxied sites` fehl, da die Quelle für den Symlink in `proxy-sites-enabled/` – eben wegen Check Mode – nicht exist...Wenn man einen neuen Eintrag in `webservers` hat und die Rolle im Check Mode ausführt, schlägt der Task `enable our active proxied sites` fehl, da die Quelle für den Symlink in `proxy-sites-enabled/` – eben wegen Check Mode – nicht existiert. Und prinzipiell äquivalent für `sites-enabled/`, das kommt aber erst später und da ist es halt schon gefailt.
Vielleicht gibt es so ein “ignore failure when in check mode” Mechanismus?https://git.fsmpi.rwth-aachen.de/infra/rezelist/-/issues/16Push statt Cron2022-04-03T01:38:55+02:00Lars BeckersPush statt CronDas ist mehr eine theoretische Überlegung, die wir immer wieder hatten. Natürlich könnte ein Service ein inotify auf lokale Dateien machen, aber bei der Datenbank wird es dann schon schwieriger. Falsch ist das bisherige Vorgehen ja prinz...Das ist mehr eine theoretische Überlegung, die wir immer wieder hatten. Natürlich könnte ein Service ein inotify auf lokale Dateien machen, aber bei der Datenbank wird es dann schon schwieriger. Falsch ist das bisherige Vorgehen ja prinzipiell nicht.https://git.fsmpi.rwth-aachen.de/infra/rezelist/-/issues/15Fehler bei >20% Änderung2022-04-03T01:36:34+02:00Lars BeckersFehler bei >20% ÄnderungDas ITC weißt Updates mit >20% Änderung ab. Das Skript könnte selbst einen Diff machen und eine Fehlermeldung ausgeben, wenn zu viel geändert wurde. Deutlich komplizierter wäre eine adaptive Anpassung der Änderungen. Wir hatten den Fall ...Das ITC weißt Updates mit >20% Änderung ab. Das Skript könnte selbst einen Diff machen und eine Fehlermeldung ausgeben, wenn zu viel geändert wurde. Deutlich komplizierter wäre eine adaptive Anpassung der Änderungen. Wir hatten den Fall bisher noch nicht, insofern reicht ein Reporting. Ich rechne nicht damit, dass das vom ITC kommen würde.https://git.fsmpi.rwth-aachen.de/infra/rezelist/-/issues/14Python in Debian2022-04-03T01:24:20+02:00Lars BeckersPython in DebianEs muss zu Beginn des Skripts `#!/usr/bin/env python3` heißen. Sonst versucht Debian eines in Version 2 zu finden.Es muss zu Beginn des Skripts `#!/usr/bin/env python3` heißen. Sonst versucht Debian eines in Version 2 zu finden.https://git.fsmpi.rwth-aachen.de/infra/rezelist/-/issues/13Exception-Handling2022-04-03T01:26:36+02:00Lars BeckersException-HandlingHabe ich in #1 bzgl. dem Konfigurationsdictionary schon angerissen. Prinzipiell macht das Projekt liberalen Gebrauch von Exceptions und lässt sie (fast) alle propagieren. Wenn wir die alle als Programmier-/Konfigurationsfehler betrachten...Habe ich in #1 bzgl. dem Konfigurationsdictionary schon angerissen. Prinzipiell macht das Projekt liberalen Gebrauch von Exceptions und lässt sie (fast) alle propagieren. Wenn wir die alle als Programmier-/Konfigurationsfehler betrachten und sie uns per Cron schicken wollen, geht das. Vielleicht geht es auch schöner, insb. bei nicht existierenden Pfaden? Vor allem, ist das im Verhalten "Crash -> alte Ausgabe" bleibt bestehen, das was wir haben wollen?https://git.fsmpi.rwth-aachen.de/infra/rezelist/-/issues/12Mailman-Integration2022-04-03T01:16:22+02:00Lars BeckersMailman-IntegrationMomentan haben wir das in einem zweiten Skript separiert, `rzMailinglists.sh`. Inhaltlich würde es natürlich in dieses Projekt hier passen. Die Implementation ist denkbar einfach: `list_lists -b`, pro Liste einmal die Basisversion und di...Momentan haben wir das in einem zweiten Skript separiert, `rzMailinglists.sh`. Inhaltlich würde es natürlich in dieses Projekt hier passen. Die Implementation ist denkbar einfach: `list_lists -b`, pro Liste einmal die Basisversion und die diversen Anhängselvarianten. Dann könnten wir dort auch ggf. lokale Aliase angeben.
Die Ablösung von `aliasesOldMailinglists` und den diversen Einträgen in der Datenbank wäre natürlich schön, aber umfangreicher.https://git.fsmpi.rwth-aachen.de/infra/rezelist/-/issues/11Iteratoren der Backends2022-04-03T01:12:42+02:00Lars BeckersIteratoren der BackendsDie definieren momentan alle eine `iter_all()`-Methode und machen darin ihre Abfrage/ihr Parsing.
- Es wäre schöner, wenn das Parsing/die Abfrage getrennt von der Iteration wäre. Macht momentan keinen praktischen Unterschied, da nur einm...Die definieren momentan alle eine `iter_all()`-Methode und machen darin ihre Abfrage/ihr Parsing.
- Es wäre schöner, wenn das Parsing/die Abfrage getrennt von der Iteration wäre. Macht momentan keinen praktischen Unterschied, da nur einmal iteriert wird und sich dabei die Daten _vermutlich_ nicht ändern.
- Semantisch macht die Methode das, was ich per `__iter__()` erwarten würde.https://git.fsmpi.rwth-aachen.de/infra/rezelist/-/issues/10Typen in der Address-Dataclass2022-04-03T01:09:31+02:00Lars BeckersTypen in der Address-DataclassDie Typen bei den Attributen werden natürlich für die Dataclass gebraucht. Die Typen in den Methoden sind aber nicht zwingend nötig. Wie andere Typ-Annotationen auch, werden sie von CPython ignoriert. Natürlich könnte man die Annotatione...Die Typen bei den Attributen werden natürlich für die Dataclass gebraucht. Die Typen in den Methoden sind aber nicht zwingend nötig. Wie andere Typ-Annotationen auch, werden sie von CPython ignoriert. Natürlich könnte man die Annotationen auch durchziehen und eine der Type-Checker-Implementationen in die CI werfen. Der Bekannteste ist mypy, es gäbe weitere, es ist zu beachten, dass die alle ihre eigene Semantik mitbringen.https://git.fsmpi.rwth-aachen.de/infra/rezelist/-/issues/9Passwd-Datenbank: Max UID2022-04-03T01:06:28+02:00Lars BeckersPasswd-Datenbank: Max UIDWar zwar bisher kein Feature, also wohl auch kein dringender Bedarf. Aber die analoge Option zur Min UID, also Max UID, viel mir auf.War zwar bisher kein Feature, also wohl auch kein dringender Bedarf. Aber die analoge Option zur Min UID, also Max UID, viel mir auf.https://git.fsmpi.rwth-aachen.de/infra/rezelist/-/issues/8Aliases-Dateien2022-04-03T01:04:58+02:00Lars BeckersAliases-DateienZwei Features der Aliases-Dateien sind mir aufgefallen, die hier nicht explizit behandelt werden:
- Es wird auf lower case gefolded. Das passt auch zu den (dokumentierten) erlaubten Zeichen des ITC.
- Man kann dieses und jenes mit Quotin...Zwei Features der Aliases-Dateien sind mir aufgefallen, die hier nicht explizit behandelt werden:
- Es wird auf lower case gefolded. Das passt auch zu den (dokumentierten) erlaubten Zeichen des ITC.
- Man kann dieses und jenes mit Quoting machen. Für uns wahrscheinlich nicht relevant. Ggf. not implemented Error?https://git.fsmpi.rwth-aachen.de/infra/rezelist/-/issues/7Erlaubte Zeichen2022-04-03T01:02:02+02:00Lars BeckersErlaubte ZeichenDas ITC schränkt die erlaubten Zeichen für Adressen auf eine Untermenge von tatsächlichen Adressen ein:
> "a-z" "0-9" "." "-" "_" "&" "/"
Auch wenn das bisher kein Problem war, könnte ich mir vorstellen, dass das für eine langwierig...Das ITC schränkt die erlaubten Zeichen für Adressen auf eine Untermenge von tatsächlichen Adressen ein:
> "a-z" "0-9" "." "-" "_" "&" "/"
Auch wenn das bisher kein Problem war, könnte ich mir vorstellen, dass das für eine langwierige Debugging-Session sorgen könnte.https://git.fsmpi.rwth-aachen.de/infra/rezelist/-/issues/6Atomische Updates2022-04-03T00:59:33+02:00Lars BeckersAtomische UpdatesStatt sich allein auf das Output-Buffering von Python und die n%-Schranke des ITC zu verlassen, wäre es eine gute Idee die Adressen erst in eine temporäre Datei zu schreiben und dann per `rename(2)` auf den tatsächlichen Pfad zu verschie...Statt sich allein auf das Output-Buffering von Python und die n%-Schranke des ITC zu verlassen, wäre es eine gute Idee die Adressen erst in eine temporäre Datei zu schreiben und dann per `rename(2)` auf den tatsächlichen Pfad zu verschieben.https://git.fsmpi.rwth-aachen.de/infra/rezelist/-/issues/5Header/Trailer2022-04-03T00:57:33+02:00Lars BeckersHeader/TrailerZur Sicherstellung, dass die Datei richtig und vollständig gelesen wird, dokumentierte das ITC ursprünglich, dass es die Möglichkeit gibt einen Header und Trailer in die Datei zu schreiben. Leider steht das nicht mehr in der aktuellen An...Zur Sicherstellung, dass die Datei richtig und vollständig gelesen wird, dokumentierte das ITC ursprünglich, dass es die Möglichkeit gibt einen Header und Trailer in die Datei zu schreiben. Leider steht das nicht mehr in der aktuellen Anleitung, aber es steht dort auch nichts von einer Änderung. Wenn es diese Funktion weiterhin gibt, wäre es vermutlich eine gute Idee sie zu nutzen.