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

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

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

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

访问 Internet 代理服务器需要使用 vRealize Automation 中内置的基于操作的可扩展性 (ABX) 内部部署嵌入式控制。

注:

不支持通过 Internet 代理访问 Workspace ONE Access(以前称为 VMware Identity Manager)。您无法使用 vracli set vidm 命令通过 Internet 代理服务器访问 Workspace ONE Access。

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

前提条件

  • 确认您已有 HTTP 或 HTTPS 服务器,且可在能够将出站流量传递到外部站点的 vRealize Automation 网络中将其用作 Internet 代理服务器。必须针对 IPv4 配置连接。
  • 确认目标 Internet 代理服务器已配置为支持 IPv4 作为其默认 IP 格式,而非 IPv6。
  • 如果 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

    结果将类似于以下内容:
    {
        "enabled": true,
        "host": "10.244.4.51",
        "java-proxy-exclude": "*.local|*.localdomain|localhost|10.244.*|192.168.*|172.16.*|kubernetes|sc2-rdops-vm06-dhcp-198-120.eng.vmware.com|10.192.204.9|*.eng.vmware.com|sc2-rdops-vm06-dhcp-204-9.eng.vmware.com|10.192.213.146|sc2-rdops-vm06-dhcp-213-146.eng.vmware.com|10.192.213.151|sc2-rdops-vm06-dhcp-213-151.eng.vmware.com",
        "java-user": null,
        "password": null,
        "port": 3128,
        "proxy-exclude": ".local,.localdomain,localhost,10.244.,192.168.,172.16.,kubernetes,sc2-rdops-vm06-dhcp-198-120.eng.vmware.com,10.192.204.9,.eng.vmware.com,sc2-rdops-vm06-dhcp-204-9.eng.vmware.com,10.192.213.146,sc2-rdops-vm06-dhcp-213-146.eng.vmware.com,10.192.213.151,sc2-rdops-vm06-dhcp-213-151.eng.vmware.com",
        "scheme": "http",
        "upstream_proxy_host": null,
        "upstream_proxy_password_encoded": "",
        "upstream_proxy_port": null,
        "upstream_proxy_user_encoded": "",
        "user": null,
        "internal.proxy.config": "dns_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\naccess_log stdio:/tmp/logger squid\ncoredump_dir /\ncache deny all \nappend_domain .prelude.svc.cluster.local\nacl mylan src 10.0.0.0/8\nacl mylan src 127.0.0.0/8\nacl mylan src 192.168.3.0/24\nacl proxy-exclude dstdomain .local\nacl proxy-exclude dstdomain .localdomain\nacl proxy-exclude dstdomain localhost\nacl proxy-exclude dstdomain 10.244.\nacl proxy-exclude dstdomain 192.168.\nacl proxy-exclude dstdomain 172.16.\nacl proxy-exclude dstdomain kubernetes\nacl proxy-exclude dstdomain 10.192.204.9\nacl proxy-exclude dstdomain .eng.vmware.com\nacl proxy-exclude dstdomain 10.192.213.146\nacl proxy-exclude dstdomain 10.192.213.151\nalways_direct allow proxy-exclude\nhttp_access allow mylan\nhttp_access deny all\n# End autogen configuration\n",
        "internal.proxy.config.type": "default"
    }
    
    注: 如果您已为组织配置 Internet 代理服务器,则上例中将显示 "internal.proxy.config.type": "non-default",而不是 'default'。为安全起见,不会显示密码。
    注: 如果使用 -proxy-exclude 参数,则必须编辑默认值。例如,如果要将 acme.com 添加为无法使用 Internet 代理服务器访问的域,请执行以下步骤:
    1. 输入 vracli proxy default-no-proxy 以获取默认的 proxy-exclude 设置。这是自动生成的域和网络列表。
    2. 编辑值以添加 .acme.com
    3. 输入 vracli proxy set .... --proxy-exclude ... 以更新配置设置。
    4. 运行 /opt/scripts/deploy.sh 命令以重新部署环境。
  3. (可选) 排除 DNS 域、FQDN 和 IP 地址,使其无法通过 Internet 代理服务器进行访问。

    始终使用 parameter --proxy-exclude 修改 proxy-exclude 变量的默认值。要添加域 exclude.vmware.com,请先使用 vrali proxy show 命令,然后复制 proxy-exclude 变量,并使用 vracli proxy set ... 命令添加域值,如下所示:

    vracli proxy set --host http://proxy.vmware.com:3128 --proxy-exclude "exclude.vmware.com,docker-registry.prelude.svc.cluster.local,localhost,.local,.cluster.local,10.244.,192.,172.16.,sc-rdops-vm11-dhcp-75-38.eng.vmware.com,10.161.75.38,.eng.vmware.com"
    注: 将元素添加到 proxy-exclude,而不是替换值。如果删除 proxy-exclude 默认值, vRealize Automation 将无法正常运行。如果发生这种情况,请删除代理配置,然后重新开始。
  4. 使用 vracli proxy set ... 命令设置 Internet 代理服务器后,可以使用 vracli proxy apply 命令更新 Internet 代理服务器配置,并使最新的代理设置处于活动状态。
  5. 如果尚未执行此操作,请运行以下命令以激活脚本更改:

    /opt/scripts/deploy.sh

  6. (可选) 如果需要,请配置代理服务器以支持端口 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