MAAS 2.0 是否需要重新配置 Squid 以代理所有部署节点的 HTTP/HTTPS?

MAAS 2.0 是否需要重新配置 Squid 以代理所有部署节点的 HTTP/HTTPS?

MAAS 2.0 文档澄清以下内容:

笔记:尽管 Web 界面标记了外部代理字段“APT 和 HTTP/HTTPS 的代理”,但该代理仅适用于 APT,而不适用于 HTTP/HTTPS。

因此,如果我想让我的 MAAS 区域控制器节点充当所有云节点的 HTTP/HTTPS 代理,如何更改 Squid 配置以承担 HTTP/HTTPS 代理角色(以及 APT 流量 - 我认为 Squid 是 APT 代理)。

在我的配置中,我的区域控制器的第一个 NIC 连接到办公室 WAN 调制解调器/路由器,下一个 NIC 连接到所有其他节点都连接到的托管交换机。区域控制器是唯一一台与互联网直接连接的机器。所有 MAAS 节点都可以更新、升级和安装 APT 包,但 Juju 无法启动 LXD 容器,因为它们无法解析来自 linuxcontainers.org 的映像。

附加背景信息:我正在测试教程中的设置http://blog.naydenov.net/2015/11/deploying-openstack-on-maas-1-9-with-juju-network-setup/它描述了安装前设置的所有 VLAN 和子网的配置。不幸的是,我很难让 Squid 放出子网maas-management

答案1

需要做两件事:

Squid 默认阻止所有非 HTTPS 的内容,甚至包括safe_ports

为了允许Safe_ports,我在声明之后添加了以下几行(如果删除注释行,则acl在行之后):acl CONNECT method CONNECT

http_access deny !Safe_ports

http_access allow CONNECT Safe_ports
http_access deny CONNECT !SSL_ports

我还添加了一些行来允许一些 VLAN http_access

acl maas_external       src     192.168.0.0/24
http_access allow maas_external

MAAS 需要curtin(系统安装程序)设置http_proxy环境变量。

我修改了以下late_commands部分:/etc/maas/preseeds/curtin_userdata

late_commands:
  maas: [wget, '--no-proxy', '{{node_disable_pxe_url|escape.shell}}', '--post-data', '{{node_disable_pxe_data|escape.shell}}', '-O', '/dev/null']
  setup_http_proxy_01: ["curtin", "in-target", "--", "sh", "-c", "echo \"export http_proxy='{{http_proxy}}'\" | sudo tee --append  /etc/profile"]
  setup_http_proxy_02: ["curtin", "in-target", "--", "sh", "-c", "echo \"export HTTP_PROXY='{{http_proxy}}'\" | sudo tee --append  /etc/profile"]
  setup_http_proxy_03: ["curtin", "in-target", "--", "sh", "-c", "echo \"export https_proxy='{{http_proxy}}'\" | sudo tee --append  /etc/profile"]
  setup_http_proxy_04: ["curtin", "in-target", "--", "sh", "-c", "echo \"export HTTPS_PROXY='{{http_proxy}}'\" | sudo tee --append  /etc/profile"]
  setup_http_proxy_05: ["curtin", "in-target", "--", "sh", "-c", "echo \"export ftp_proxy='{{http_proxy}}'\" | sudo tee --append  /etc/profile"]
  setup_http_proxy_06: ["curtin", "in-target", "--", "sh", "-c", "echo \"export FTP_PROXY='{{http_proxy}}'\" | sudo tee --append  /etc/profile"]

基本上,这设置了几个需要curtin遵循的步骤。安装程序运行的环境是短暂的,因此我们需要指示curtin将其应用于目标环境本身,并确保环境设置正确,使用新的环境(curtin in-target -- sh -c)。最后一个子句将导出命令附加到末尾,/etc/profile以确保它始终存在于环境中。


我希望这不会太过分。至少,当部署一个节点时,即使它只连接到 MAAS 区域控制器,它也可以访问互联网。

相关内容