Je crée un environnement avec juju et maas. L'environnement maas n'a pas de connexion internet directe, un proxy doit être utilisé.
J'ai configuré le proxy de l'environnement juju à l'aide de juju set-env http-proxy=http://my_proxy:8080
et cela fonctionne. Toutefois, lors du déploiement de clés comme Keystone, il existe un point d'installation qui tente d'accéder à localhost, et cette demande tente également de passer par le proxy.
J'ai essayé juju set-env no-proxy
ou juju set-env no_proxy
, mais le journal de débogage indique simplement qu'il n'y a pas de champ de configuration avec aucun nom.
Existe-t-il un moyen de définir une liste de non-proxy et les adresses locales doivent-elles contourner le proxy par défaut?
Le support complet pour les mandataires a été ajouté avec la version 1.18. de Juju.
À partir des notes de publication:
Support pour les mandataires
Les mandataires peuvent maintenant être configurés pour les fournisseurs dans le fichier environment.yaml ou ajoutés à un environnement existant à l'aide de "juju set-env". Les options de configuration sont les suivantes:
http-proxy
https-proxy
ftp-proxy
no-proxy
Les options spécifiques au protocole acceptent une URL. L'option "no-proxy" accepte une liste de noms d'hôtes ou d'adresses séparés par des virgules.
Les options de proxy sont exportées dans tous les contextes d’exécution des hooks et sont également disponibles dans le shell via "juju ssh" ou "juju run".
Il existe trois options de proxy supplémentaires spécifiques à apt. Celles-ci sont définies pour être les mêmes que les valeurs de proxy non-apt, mais peuvent être remplacées indépendamment:
apt-http-proxy
apt-https-proxy
apt-ftp-proxy
Par exemple, avec un squid-deb-proxy exécuté sur un ordinateur portable, vous pouvez spécifier le proxy apt-http-proxy à utiliser pour les conteneurs en spécifiant le pont réseau de la machine hôte:
apt-http-proxy: http://10.0.3.1:8000
Pour la version 2.0 de Juju, il n'existe aucun moyen de définir l'environnement globalement avant la création d'un modèle, mais vous pouvez créez un fichier config.yaml
contenant les éléments suivants:
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>
Vous pouvez ensuite utiliser l'option --config
pour indiquer à Juju d'utiliser ce fichier (je stocke le mien dans ~/.juju/
). Par exemple, juju bootstrap localhost lxd-test --config=config.yaml
.
Je faisais face à des problèmes similaires sur une installation de devstack de openstack. Il semble que la variable est sensible à la casse. Pour résoudre cela, j'ai fait ce qui suit:
Obtenez votre adresse IP en utilisant les éléments suivants:
ifconfig
et ouvrez votre fichier ~/.bashrc
, ajoutez ceci à la fin:
no_proxy=localhost,127.0.0.1,<your_ip_address>
NO_PROXY=localhost,127.0.0.1,<your_ip_address>
puis ouvrez un nouveau terminal ou faites source ~/.bashrc
.