juju http-proxy und no_proxy einstellungen

8

Ich baue eine Umgebung mit Juju und Maas auf. Die maas-Umgebung hat keine direkte Internetverbindung, es muss ein Proxy verwendet werden.

Ich habe den Proxy der Juju-Umgebung mithilfe von konfiguriert juju set-env http-proxy=http://my_proxy:8080und das funktioniert. Wenn Sie jedoch etwas wie Keystone bereitstellen, gibt es einen Installations-Hook, der versucht, auf localhost zuzugreifen, und diese Anforderung versucht, auch den Proxy zu durchlaufen.

Ich habe es versucht juju set-env no-proxyoder juju set-env no_proxy, aber das Debug-Protokoll zeigt nur, dass es kein Konfigurationsfeld mit einem der beiden Namen gibt.

Gibt es eine Möglichkeit, eine Liste ohne Proxy festzulegen, und sollten lokale Adressen den Proxy standardmäßig umgehen?

user4827
quelle

Antworten:

9

Die vollständige Unterstützung für Proxys wurde mit der Version 1.18.0 von Juju hinzugefügt .

Aus den Versionshinweisen:

Unterstützung für Proxys

Proxies können jetzt für die Anbieter in der Datei environment.yaml konfiguriert oder mithilfe von "juju set-env" zu einer vorhandenen Umgebung hinzugefügt werden. Die Konfigurationsoptionen sind:

http-proxy
https-proxy
ftp-proxy
no-proxy

Die protokollspezifischen Optionen akzeptieren eine URL. Die Option "kein Proxy" akzeptiert eine durch Kommas getrennte Liste von Hostnamen oder -adressen.

Die Proxy-Optionen werden in alle Hook-Ausführungskontexte exportiert und sind auch in der Shell über "juju ssh" oder "juju run" verfügbar.

Es gibt drei zusätzliche Proxy-Optionen, die für apt spezifisch sind. Diese Werte entsprechen den nicht passenden Proxy-Werten, können jedoch unabhängig voneinander überschrieben werden:

apt-http-proxy
apt-https-proxy
apt-ftp-proxy

Wenn beispielsweise ein Squid-Deb-Proxy auf einem Laptop ausgeführt wird, können Sie den apt-http-Proxy angeben, der für die Container verwendet werden soll, indem Sie die Netzwerkbrücke des Hostcomputers angeben:

apt-http-proxy: http://10.0.3.1:8000

Für die Version 2.0 von Juju gibt es keine Möglichkeit, die Umgebung global festzulegen, bevor ein Modell erstellt wird. Sie können jedoch eine config.yamlDatei erstellen , die Folgendes enthält:

default-series: xenial
no-proxy: localhost
apt-http-proxy: http://<ip address>:<port>
apt-https-proxy: https://<ip address>:<port>
apt-ftp-proxy: ftp://<ip address>:<port>
http-proxy: http://<ip address>:<port>
https-proxy: https://<ip address>:<port>
ftp-proxy: ftp://<ip address>:<port>

Sie können dann die --configOption verwenden, um Juju anzuweisen, diese Datei zu verwenden (ich speichere meine in ~/.juju/). Zum Beispiel juju bootstrap localhost lxd-test --config=config.yaml.

Klopfer
quelle
3

Bei einer Devstack-Installation von Openstack hatte ich ähnliche Probleme. Es scheint, dass die Variable zwischen Groß- und Kleinschreibung unterscheidet. Um dies zu lösen, habe ich Folgendes getan:

Holen Sie sich Ihre IP-Adresse wie folgt:

ifconfig

und öffnen Sie Ihre ~/.bashrcDatei, fügen Sie diese am Ende hinzu:

no_proxy=localhost,127.0.0.1,<your_ip_address>
NO_PROXY=localhost,127.0.0.1,<your_ip_address>

und dann ein neues Terminal öffnen oder tun source ~/.bashrc.

Job in
quelle