我正在使用 juju 和 maas 设置环境。maas 环境没有直接互联网连接,必须使用代理。
我已经使用 juju 环境的代理配置了juju set-env http-proxy=http://my_proxy:8080
它,并且可以工作,但是,在部署诸如 keystone 之类的东西时,有一个安装钩子试图访问本地主机,并且这个请求也试图通过代理。
我已经尝试过juju set-env no-proxy
或juju set-env no_proxy
,但调试日志仅显示没有具有任一名称的配置字段。
有没有办法设置无代理列表,并且本地地址是否应该默认绕过代理?
答案1
添加了对代理的全面支持1.18.0释放 Juju。
摘自发行说明:
支持代理
现在可以在 environment.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
为了2.0Juju 版本中,无法在创建模型之前全局设置环境,但你可以创建一个config.yaml
文件,其中包含以下内容:
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>
然后,您可以使用--config
选项告诉 Juju 使用此文件(我将我的文件存储在 中~/.juju/
)。例如,juju bootstrap localhost lxd-test --config=config.yaml
。
答案2
我在 openstack 的 devstack 安装中遇到了类似的问题。似乎变量区分大小写。为了解决这个问题,我做了以下事情:
使用以下命令获取你的 IP 地址:
ifconfig
然后打开~/.bashrc
文件,将其添加到末尾:
no_proxy=localhost,127.0.0.1,<your_ip_address>
NO_PROXY=localhost,127.0.0.1,<your_ip_address>
然后打开一个新终端或执行source ~/.bashrc
。