因此,我有 Ubuntu 12.04 LTS,从初始启动时安装了 MaaS,然后添加了 JUJU。我使用代理,因此将代理添加到 /etc/apt/apt.conf 以及 /etc/wgetrc。这样做之后我就可以使用 maas-import-pxe-files 了。
设置我的环境,一切似乎都很好,但是当我启动节点时,它们无法解析 archive.ubuntu.com。我是否必须在某处设置我的代理信息,以便将其传递到连接到 MaaS 服务器的节点上?我在任何 squid 日志中都看不到任何操作,并且不确定我应该将我的代理放在哪里才能将其传递到外部世界。
非常感谢您的帮助!
答案1
恐怕这目前不是 MAAS 支持的配置(但我很乐意在这一点上犯错)。
我还必须在代理后面使用 MAAS,下面是我处理它的方法:
导入 pxe 图像:
sudo http_proxy=http://my.proxy:3128/ maas-import-pxe-files
编辑/usr/share/maas/preseeds/enlist_userdata
set apt_proxy
#we cannot use maas as a proxy as maas itself is behind a proxy
#if we try, when we bootstrap zookeeper, it is not able to download archive.ubuntu.com/ubuntu/dists/precsie/Release
apt_proxy: http://my.proxy:3128/
更改 /usr/share/maas/preseeds/preseed_master 以便 {{self.proxy}} 为
d-i mirror/country string manual
d-i mirror/http/hostname string archive.ubuntu.com
d-i mirror/http/directory string /ubuntu
d-i mirror/http/proxy string http://my.proxy:3128/
一定要消除{{self.proxy}} 宏,否则如果您将其注释掉,它无论如何都会被扩展。
改变/usr/share/maas/preseeds/generic
以便
d-i preseed/late_command string true && \
in-target sh -c 'f=$1; shift; echo $0 > $f && chmod 0440 $f $*' 'ubuntu ALL=(ALL) NOPASSWD: ALL' /etc/sudoers.d/maas && \
in-target wget --no-proxy "{{node_disable_pxe_url|escape.shell}}" --post-data "{{node_disable_pxe_data|escape.shell}}" -O /dev/null && \
true
is
d-i preseed/late_command string true && \
in-target sh -c 'f=$1; shift; echo $0 > $f && chmod 0440 $f $*' 'ubuntu ALL=(ALL) NOPASSWD: ALL' /etc/sudoers.d/maas && \
in-target wget --no-proxy "{{node_disable_pxe_url|escape.shell}}" --post-data "{{node_disable_pxe_data|escape.shell}}" -O /dev/null && \
in-target apt-key adv --keyserver-options http-proxy=http://my.proxy:3128/ --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "0x376a290ec8068b11" && \
in-target sh -c 'http_proxy=http://my.proxy:3128/ https_proxy=http://my.proxy:3128/ apt-add-repository -m ppa:juju/pkgs --yes' && \
in-target sh -c 'http_proxy=http://my.proxy:3128/ https_proxy=http://my.proxy:3128/ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5EDB1B62EC4926EA' && \
true
可能有更好的方法可以做到这一点,它可能并不适用于所有地方,但对我来说它有效。
请注意,当它们尝试从互联网上获取内容或添加一些 ppa 时,一些超级按钮也必须更改为使用代理。
答案2
在设置页面(右上角附近的齿轮)中查找网络配置部分。有一个用于设置 HTTP 和 HTTPS 代理的框。
这也可以通过 maas-cli 进行设置:
maas-cli $profile maas set-config name=http_proxy value=http://example.com/
(如果你以前没有使用过 maas-cli,请参阅maas-cli 文档开始。)
答案3
- Gavin:网络配置代理设置旁边有一条注释:“”集群和区域控制器使用它来下载 PXE 启动映像和其他与配置相关的资源。它不会传递到已配置的节点。“”
这个说明有误吗,或者代理设置是否也出现在部署的节点中?
- 罗斯:在我的设置中,部署的节点可能(也可能无法)能够解析他们想要通过 http 下载内容的主机名,但即使没有可用的名称解析,只要他们使用的代理具有可以解析它的解析器,这也不是问题。