noproxy: sofort wirksam machen, und Ziele fuer Dienste
Zwei Luecken im vorherigen Stand.
Erstens war der Eintrag erst in einer neuen Sitzung wirksam. Ein
Programm kann die Umgebung seiner Elternshell nicht aendern - dafuer
gibt es jetzt "noproxy --export", das nur die beiden Zeilen ausgibt:
eval "$(cmk-manage.sh noproxy --export)"
Danach gilt es sofort; nachgemessen mit curl -v (vorher "Uses proxy env
variable http_proxy", danach "Trying 127.0.0.1"). Der Wert wird dabei
aus denselben Regeln gebildet wie beim Schreiben in eine Datei -
Vorhandenes zuerst, unsere Adressen dahinter, ohne Doppelte.
Zweitens lesen Systemdienste weder profile.d noch .bashrc noch
/etc/environment. Dafuer gibt es zwei weitere Ziele:
noproxy --fix --environment ergaenzt /etc/environment, ohne die
uebrigen Zeilen anzuruehren
noproxy --fix --service schreibt eine Ergaenzung der systemd-Unit
des Stacks; der Proxy selbst kommt mit
hinein, sonst kaeme der Dienst beim Holen
von Images nicht mehr ins Internet
Findet sich keine passende Unit, zeigt der Befehl den Abschnitt zum
Einfuegen von Hand. Die Schreibpfade sind ueber NOPROXY_ENV_FILE und
NOPROXY_UNIT_DIR ueberschreibbar - damit liessen sie sich pruefen, ohne
/etc dieses Rechners anzufassen.
In der Oberflaeche stehen alle vier Ziele zur Auswahl, dazu der
Menuepunkt fuer die laufende Sitzung, der den eval-Befehl zum Kopieren
zeigt.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2569,6 +2569,7 @@ Eine Dateiauswahl mit Verzeichnisnavigation ist eingebaut.
|
||||
| `firewall [check\|open\|close]` | prüfen, öffnen und nicht mehr Benötigtes wieder schließen (firewalld, ufw, nftables, iptables); `close --keep-admin` lässt den Adminport offen |
|
||||
| `shell` | Root-Shell im Checkmk-Container |
|
||||
| `omd …` | beliebiges `omd`-Kommando im Container |
|
||||
| `noproxy [--export\|--fix]` | prüfen, ob lokale Adressen am HTTP-Proxy vorbeigehen; eintragen in profile.d, `.bashrc`, `/etc/environment` oder die systemd-Unit |
|
||||
|
||||
Globale Optionen: `--env-file DATEI`, `-y/--yes` (keine Rückfragen, z. B. für
|
||||
Cronjobs), `-v/--verbose`.
|
||||
@@ -2664,13 +2665,40 @@ Erkannt wird das nicht geraten, sondern an dem, was `curl -v` selbst sagt
|
||||
(`Uses proxy env variable http_proxy == …`) – dafür muss auf der Zieladresse
|
||||
nichts laufen.
|
||||
|
||||
Dauerhaft eintragen:
|
||||
**In der laufenden Sitzung** – ein Programm kann die Umgebung seiner Elternshell
|
||||
nicht ändern, deshalb der Umweg über `eval`:
|
||||
|
||||
```bash
|
||||
sudo ./scripts/cmk-manage.sh noproxy --fix # /etc/profile.d/cmk-noproxy.sh
|
||||
./scripts/cmk-manage.sh noproxy --fix --user # ~/.bashrc
|
||||
eval "$(./scripts/cmk-manage.sh noproxy --export)"
|
||||
```
|
||||
|
||||
**Dauerhaft** – die Ziele schließen einander nicht aus, je nach Rechner braucht
|
||||
es mehrere:
|
||||
|
||||
| Befehl | wirkt für |
|
||||
|---|---|
|
||||
| `sudo … noproxy --fix` | Anmeldeshells (`/etc/profile.d/cmk-noproxy.sh`) |
|
||||
| `… noproxy --fix --user` | nur diesen Benutzer (`~/.bashrc`) |
|
||||
| `sudo … noproxy --fix --environment` | Anmeldungen ohne Shell (`/etc/environment`) |
|
||||
| `sudo … noproxy --fix --service` | **Systemdienste** – Ergänzung der systemd-Unit |
|
||||
|
||||
Der letzte Punkt ist der, den man leicht übersieht: **Systemdienste lesen weder
|
||||
`profile.d` noch `.bashrc` noch `/etc/environment`.** Läuft der Stack über
|
||||
systemd, schreibt `--service` eine Ergänzung nach
|
||||
`/etc/systemd/system/checkmk-stack.service.d/cmk-noproxy.conf`:
|
||||
|
||||
```ini
|
||||
[Service]
|
||||
Environment=no_proxy=localhost,127.0.0.1,::1,checkmk-host,172.0.250.82
|
||||
Environment=NO_PROXY=localhost,127.0.0.1,::1,checkmk-host,172.0.250.82
|
||||
Environment=http_proxy=http://proxy.kunde.local:3128
|
||||
Environment=https_proxy=http://proxy.kunde.local:3128
|
||||
```
|
||||
|
||||
Der Proxy selbst kommt dabei mit hinein – ohne ihn käme der Dienst beim Holen
|
||||
von Images nicht ins Internet. Gibt es keine passende Unit, zeigt der Befehl
|
||||
den Abschnitt zum Einfügen von Hand.
|
||||
|
||||
**Was schon dasteht, bleibt – und zwar vorn.** Der Eintrag sammelt beide
|
||||
Schreibweisen ein (`no_proxy` *und* `NO_PROXY`; manche Systeme setzen nur die
|
||||
große), hängt die lokalen Adressen hinten an und wirft Doppelte heraus:
|
||||
@@ -2698,9 +2726,9 @@ Ein zweiter Aufruf schreibt nichts doppelt. In der Oberfläche liegt das unter
|
||||
> CGI-Umgebungen eine eingehende Kopfzeile `Proxy:` sie setzen könnte. Der
|
||||
> Bericht weist darauf hin, wenn nur diese gesetzt ist.
|
||||
|
||||
> **Dienste lesen keine Profildateien.** Läuft der Stack über systemd und steht
|
||||
> dort ein Proxy, gehört die Ausnahme zusätzlich nach `/etc/environment` oder
|
||||
> in die Unit: `Environment=no_proxy=localhost,127.0.0.1,…`
|
||||
> **Reihenfolge:** Erst `noproxy` zum Nachsehen, dann eintragen, dann mit
|
||||
> `eval "$(… noproxy --export)"` in der laufenden Sitzung wirksam machen –
|
||||
> sonst wundert man sich, warum sich nichts ändert.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user