对于无法直接访问 Internet 的隔离网络上的 VMware Aria Automation 安装,可以使用 Internet 代理服务器,以便允许通过代理访问 Internet 功能。Internet 代理服务器支持 HTTP 和 HTTPS。

要配置和使用 Amazon Web Services (AWS)、Microsoft AzureGoogle Cloud Platform (GCP) 等公有云提供程序以及 IPAM、Ansible 和 Puppet 等外部集成点,对于 VMware Aria Automation,您必须配置 Internet 代理服务器。

VMware Aria Automation 包含一个可与 Internet 代理服务器通信的内部代理服务器。如果使用 vracli proxy set ... 命令对代理服务器进行了相应配置,则该服务器可与代理服务器通信。如果您尚未为组织配置 Internet 代理服务器,则 VMware Aria Automation 内部代理服务器会尝试直接连接到 Internet。

可以使用提供的 vracli 命令行实用程序将 VMware Aria Automation 设置为使用 Internet 代理服务器。有关如何使用 vracli API 的信息,可通过在 vracli 命令行中使用 --help 参数获得,例如 vracli proxy –-help

注:

不支持通过 Internet 代理访问 Workspace ONE Access。您无法使用 vracli set vidm 命令通过 Internet 代理服务器访问 Workspace ONE Access

内部代理服务器要求将 IPv4 作为其默认 IP 格式。不要求对 TLS (HTTPS) 证书流量执行 Internet 协议限制、身份验证或中间人操作。

所有外部网络流量都通过 Internet 代理服务器。内部网络流量绕过代理。

前提条件

  • 确认您已有 HTTP 或 HTTPS 服务器,且可在能够将出站流量传递到外部站点的 VMware Aria Automation 网络中将其用作 Internet 代理服务器。必须针对 IPv4 配置连接。
  • 确认目标 Internet 代理服务器已配置为支持 IPv4 作为其默认 IP 格式。
  • 如果 Internet 代理服务器使用 TLS,并且需要与其客户端建立 HTTPS 连接,则必须先使用以下命令之一导入服务器证书,然后再设置代理配置。
    • vracli certificate proxy --set path_to_proxy_certificate.pem
    • vracli certificate proxy --set stdin

      使用 stdin 参数执行交互式输入。

过程

  1. 为 Kubernetes 使用的 pod 或容器创建代理配置。在此示例中,使用 HTTP 方案访问代理服务器。

    vracli proxy set --host http://proxy.vmware.com:3128

  2. 显示代理配置。

    vracli proxy show

    结果应类似于以下内容:
    {
        "config_timestamp": "1709214693",
        "enabled": true,
        "generation": "1709214693",
        "host": "proxy-service.prelude.svc.cluster.local",
        "java-proxy-exclude": "*.local|*.localdomain|localhost|127.0.0.1|127.*|kubernetes|*.cluster.local|*.svc.cluster.local|*.prelude.svc.cluster.local|sc2-10-43-195-99.nimbus.eng.vmware.com|10.43.195.99|*.nimbus.eng.vmware.com|10.244.0.*|10.244.1.*|10.244.2.*|10.244.3.*|10.244.4.*|10.244.5.*|10.244.6.*|10.244.7.*",
        "java-user": null,
        "password": null,
        "port": 3128,
        "proxy_connection_read_timeout": 15,
        "proxy_dns_query_timeout": 60,
        "scheme": "http",
        "system-proxy-exclude": ".local,.localdomain,localhost,127.0.0.1,127.,kubernetes,.cluster.local,.svc.cluster.local,.prelude.svc.cluster.local,sc2-10-43-195-99.nimbus.eng.vmware.com,10.43.195.99,.nimbus.eng.vmware.com,10.244.0.,10.244.1.,10.244.2.,10.244.3.,10.244.4.,10.244.5.,10.244.6.,10.244.7.",
        "upstream_proxy_host": "proxy.vmware.com",
        "upstream_proxy_password_encoded": "",
        "upstream_proxy_port": 3128,
        "upstream_proxy_user_encoded": "",
        "user": null,
        "user-proxy-exclude": "",
        "internal.proxy.config": "# Begin autogen configuration\ndns_v4_first on \nhttp_port 0.0.0.0:3128\nlogformat squid %ts.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt\ncache deny all \nappend_domain .prelude.svc.cluster.local\naccess_log stdio:/tmp/logger\ncoredump_dir /\ndns_timeout 60 seconds\nacl mylan src all\nacl proxy-exclude-domain dstdomain localhost\nacl proxy-exclude-domain dstdomain .nimbus.eng.vmware.com\nacl proxy-exclude-domain dstdomain .local\nacl proxy-exclude-domain dstdomain .localdomain\nacl proxy-exclude-domain dstdomain kubernetes\nacl proxy-exclude-ip dst 10.43.195.99/32\nacl proxy-exclude-ip dst 10.244.0.0/21\nacl proxy-exclude-ip dst 127.0.0.0/8\nalways_direct allow proxy-exclude-ip\nalways_direct allow proxy-exclude-domain\n# Anonymize the proxy server.\nvia off\nforwarded_for delete\nhttp_access allow mylan\nhttp_access deny all\nread_timeout 15 minutes\nmax_filedescriptors 16384\n# End autogen configuration\n# http configuration of remote peer follows\ncache_peer proxy.vmware.com parent 3128 0 no-query default \nnever_direct allow all\n",
        "internal.proxy.config.type": "non-default"
    }
    
    注: 如果您已为组织配置 Internet 代理服务器,则上例中将显示 "internal.proxy.config.type": "non-default",而不是 'default'。为安全起见,不会显示密码。
  3. (可选) 排除 DNS 域、FQDN 和 IP 地址,使其无法通过 Internet 代理服务器进行访问。

    运行 vracli proxy set 命令时,可以通过指定 --proxy-exclude 参数来指定无法通过 Internet 代理服务器访问的地址。例如,如果要将 .acme.com 添加为无法使用 Internet 代理服务器访问的域,请运行以下命令:

    vracli proxy set .... --proxy-exclude .acme.com
    注: 此命令将重置以前的代理排除设置,并将 .acme.com 添加到必须直接访问而不是通过 Internet 代理服务器访问的域列表中。如果要保留以前的任何设置,则必须将先前存在的代理排除列表(扩展名为 .acme.com)作为 --proxy-exclude 参数的值进行传递。通过运行 vracli proxy show 命令并检查 user-proxy-exclude 属性的值可以检查当前设置的代理排除列表。例如,如果之前已将 exclude.vmware.com 添加到代理排除列表,则 vracli proxy show 命令将具有类似以下内容的输出:
    {
    ...
        "user-proxy-exclude": "exclude.vmware.com",
    ...
    }
    
    要将 .acme.com 添加到排除项列表中,同时仍将 exclude.vmware.com 作为排除项,必须运行以下命令:
    vracli proxy set .... --proxy-exclude exclude.vmware.com,.acme.com
  4. 使用 vracli proxy set ... 命令设置 Internet 代理服务器后,可以使用 vracli proxy apply 命令更新 Internet 代理服务器配置,并使最新的代理设置处于活动状态。
  5. (可选) 如果需要,请配置代理服务器以支持端口 22 上的外部访问。

    要支持 Puppet 和 Ansible 等集成,代理服务器必须允许使用端口 22 访问相关主机。

示例: Squid 配置示例

相对于步骤 1,如果设置的是 Squid 代理,可以在 /etc/squid/squid.conf 中调整配置,根据以下示例进行调整:

acl localnet src 192.168.11.0/24

acl SSL_ports port 443

acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT

http_access allow !Safe_ports
http_access allow CONNECT !SSL_ports
http_access allow localnet

http_port 0.0.0.0:3128

maximum_object_size 5 GB
cache_dir ufs /var/spool/squid 20000 16 256
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320

client_persistent_connections on
server_persistent_connections on