juju http-proxy和no_proxy设置

我正在建立一个有juju和maas的环境。 maas环境没有直接的互联网连接,必须使用代理。

我使用juju set-env http-proxy=http://my_proxy:8080配置了juju环境的代理,但是,当部署像keystone这样的东西时,有一个试图访问localhost的安装钩子,这个请求是试图通过代理。

我已经尝试了juju set-env no-proxyjuju set-env no_proxy ,但是调试日志只是显示没有任何名称的配置字段。

有没有办法设置无代理列表,默认情况下本地地址是否应绕过代理?

Juju的1.18.0版本增加了对代理的完全支持。

从发行说明:

支持代理

现在可以为environments.yaml文件中的提供程序配置代理,或使用“juju set-env”将其添加到现有环境中。配置选项包括:

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

特定于协议的选项接受URL。 “no-proxy”选项接受以逗号分隔的主机名或地址列表。

代理选项在所有钩子执行上下文中导出,也可以通过“juju ssh”或“juju run”在shell中获得。

apt有三个额外的代理选项。 这些设置与非apt代理值相同,但可以单独覆盖:

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

例如,通过在笔记本电脑上运行squid-deb-proxy,您可以通过指定主机的网络桥来指定apt-http-proxy以将其用于容器:

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

对于Juju的2.0版本,在创建模型之前无法全局设置环境,但您可以创建config.yaml文件,其中包含以下内容:

 default-series: xenial no-proxy: localhost apt-http-proxy: http://: apt-https-proxy: https://: apt-ftp-proxy: ftp://: http-proxy: http://: https-proxy: https://: ftp-proxy: ftp://: 

然后,您可以使用--config选项告诉Juju使用此文件(我将我的存储在~/.juju/ )。 例如, juju bootstrap localhost lxd-test --config=config.yaml

我在openstack的devstack安装上遇到了类似的问题。 似乎变量区分大小写。 要解决这个问题,我做了以下事情:

使用以下内容获取您的ipaddress:

 ifconfig 

并打开你的~/.bashrc文件,将其添加到结尾:

 no_proxy=localhost,127.0.0.1, NO_PROXY=localhost,127.0.0.1, 

然后打开一个新的终端或做source ~/.bashrc