在 Azure 中手动安装控制台代理
步骤 1:查看主机要求
控制台代理软件必须在满足特定操作系统要求、RAM 要求、端口要求等的主机上运行。
|
控制台代理保留 19000 到 19200 的 UID 和 GID 范围。这个范围是固定的,不能修改。如果主机上的任何第三方软件使用此范围内的 UID 或 GID,则代理安装将失败。 NetApp建议使用没有第三方软件的主机以避免冲突。 |
- 专用主机
-
与其他应用程序共享的主机不支持控制台代理。该主机必须是专用主机。主机可以是满足以下大小要求的任何架构:
-
CPU:8 核或 8 个 vCPU
-
内存:32 GB
-
磁盘空间:建议主机预留165GB空间,分区要求如下:
-
/opt
:必须有 120 GiB 可用空间代理使用 `/opt`安装 `/opt/application/netapp`目录及其内容。
-
/var
:必须有 40 GiB 可用空间控制台代理需要此空间 `/var`因为 Docker 或 Podman 的设计目的是在此目录中创建容器。具体来说,他们将在 `/var/lib/containers/storage`目录。外部安装或符号链接不适用于此空间。
-
-
- 虚拟机管理程序
-
需要经过认证可运行受支持的操作系统的裸机或托管虚拟机管理程序。
- 操作系统和容器要求
-
在标准模式或受限模式下使用控制台时,控制台代理支持以下操作系统。安装代理之前需要一个容器编排工具。
操作系统 支持的操作系统版本 支持的代理版本 所需的容器工具 SELinux Red Hat Enterprise Linux
9.1 至 9.4
8.6 至 8.10
-
仅限英语版本。
-
主机必须在 Red Hat 订阅管理中注册。如果未注册,主机将无法在代理安装期间访问存储库来更新所需的第三方软件。
3.9.50 或更高版本,控制台处于标准模式或受限模式
Podman 版本 4.6.1 或 4.9.4
在强制模式或宽容模式下受支持
-
操作系统上启用了 SELinux 的代理不支持对Cloud Volumes ONTAP系统的管理。
Ubuntu
24.04 LTS
3.9.45 或更高版本, NetApp控制台处于标准模式或受限模式
Docker Engine 23.06 至 28.0.0。
不支持
-
- Azure VM 大小
-
满足上述 CPU 和 RAM 要求的实例类型。我们推荐 Standard_D8s_v3。
- /opt 中的磁盘空间
-
必须有 100 GiB 可用空间
代理使用 `/opt`安装 `/opt/application/netapp`目录及其内容。
- /var 中的磁盘空间
-
必须有 20 GiB 可用空间
控制台代理需要此空间 `/var`因为 Docker 或 Podman 的设计目的是在此目录中创建容器。具体来说,他们将在 `/var/lib/containers/storage`目录。外部安装或符号链接不适用于此空间。
步骤 2:安装 Podman 或 Docker Engine
根据您的操作系统,安装代理之前需要 Podman 或 Docker Engine。
-
Red Hat Enterprise Linux 8 和 9 需要 Podman。
-
Ubuntu 需要 Docker 引擎。
按照以下步骤安装和配置 Podman:
-
启用并启动 podman.socket 服务
-
安装python3
-
安装 podman-compose 软件包版本 1.0.6
-
将 podman-compose 添加到 PATH 环境变量
-
如果使用 Red Hat Enterprise Linux 8,请验证您的 Podman 版本使用的是 Aardvark DNS 而不是 CNI
|
安装代理后调整 aardvark-dns 端口(默认值:53),以避免 DNS 端口冲突。按照说明配置端口。 |
-
如果主机上安装了 podman-docker 包,请将其删除。
dnf remove podman-docker rm /var/run/docker.sock
-
安装 Podman。
您可以从官方 Red Hat Enterprise Linux 存储库获取 Podman。
对于 Red Hat Enterprise Linux 9:
sudo dnf install podman-2:<version>
其中 <version> 是您正在安装的 Podman 支持的版本。查看支持的 Podman 版本 。
对于 Red Hat Enterprise Linux 8:
sudo dnf install podman-3:<version>
其中 <version> 是您正在安装的 Podman 支持的版本。查看支持的 Podman 版本 。
-
启用并启动 podman.socket 服务。
sudo systemctl enable --now podman.socket
-
安装 python3。
sudo dnf install python3
-
如果您的系统上还没有 EPEL 存储库包,请安装它。
-
如果使用 Red Hat Enterprise:
此步骤是必需的,因为 podman-compose 可从 Extra Packages for Enterprise Linux (EPEL) 存储库中获得。
对于 Red Hat Enterprise Linux 9:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
对于 Red Hat Enterprise Linux 8:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
-
安装 podman-compose 包 1.0.6。
sudo dnf install podman-compose-1.0.6
使用 `dnf install`命令满足将 podman-compose 添加到 PATH 环境变量的要求。安装命令将 podman-compose 添加到 /usr/bin,它已经包含在 `secure_path`主机上的选项。 -
如果使用 Red Hat Enterprise Linux 8,请验证您的 Podman 版本是否使用带有 Aardvark DNS 的 NetAvark 而不是 CNI。
-
通过运行以下命令检查您的 networkBackend 是否设置为 CNI:
podman info | grep networkBackend
-
如果 networkBackend 设置为
CNI
,你需要将其更改为netavark
。 -
安装 `netavark`和 `aardvark-dns`使用以下命令:
dnf install aardvark-dns netavark
-
打开 `/etc/containers/containers.conf`文件并修改 network_backend 选项以使用“netavark”而不是“cni”。
如果
/etc/containers/containers.conf`不存在,请将配置更改为 `/usr/share/containers/containers.conf
。 -
-
重新启动 podman。
systemctl restart podman
-
使用以下命令确认 networkBackend 现在已更改为“netavark”:
podman info | grep networkBackend
按照 Docker 的文档安装 Docker Engine。
-
按照步骤安装受支持的 Docker Engine 版本。请勿安装最新版本,因为控制台不支持它。
-
验证 Docker 是否已启用并正在运行。
sudo systemctl enable docker && sudo systemctl start docker
步骤 3:设置网络
确保您计划安装控制台代理的网络位置支持以下要求。满足这些要求使控制台代理能够管理混合云环境中的资源和流程。
- Azure 区域
-
如果您使用Cloud Volumes ONTAP,则控制台代理应部署在与其管理的Cloud Volumes ONTAP系统相同的 Azure 区域中,或者部署在 "Azure 区域对"适用于Cloud Volumes ONTAP系统。此要求确保在Cloud Volumes ONTAP及其关联的存储帐户之间使用 Azure Private Link 连接。
- 连接到目标网络
-
控制台代理需要与您计划创建和管理系统的位置建立网络连接。例如,您计划在本地环境中创建Cloud Volumes ONTAP系统或存储系统的网络。
- 出站互联网访问
-
部署控制台代理的网络位置必须具有出站互联网连接才能联系特定端点。
- 使用基于 Web 的NetApp控制台时从计算机联系的端点
-
从 Web 浏览器访问控制台的计算机必须能够联系多个端点。您需要使用控制台来设置控制台代理并进行控制台的日常使用。
- 从控制台代理联系的端点
-
控制台代理需要出站互联网访问来联系以下端点,以管理公共云环境中的资源和流程以进行日常操作。
下面列出的端点都是 CNAME 条目。
端点 目的 管理 Azure 公共区域中的资源。
管理 Azure 中国区域的资源。
获取许可信息并向NetApp支持发送AutoSupport消息。
获取许可信息并向NetApp支持发送AutoSupport消息。
更新NetApp支持站点 (NSS) 凭据或将新的 NSS 凭据添加到NetApp控制台。
在NetApp控制台中提供功能和服务。
获取控制台代理升级的图像。
-
当您部署新代理时,验证检查会测试与当前端点的连接。如果你使用"先前的端点",验证检查失败。为了避免此失败,请跳过验证检查。
尽管以前的端点仍然受支持,但NetApp建议尽快将防火墙规则更新到当前端点。"了解如何更新终端节点列表" 。
-
当您更新到防火墙中的当前端点时,您现有的代理将继续工作。
-
- 代理服务器
-
NetApp支持显式和透明代理配置。如果您使用透明代理,则只需要提供代理服务器的证书。如果您使用显式代理,您还需要 IP 地址和凭据。
-
IP 地址
-
凭据
-
HTTPS 证书
-
- 端口
-
除非您启动它或将其用作代理将AutoSupport消息从Cloud Volumes ONTAP发送到NetApp支持,否则控制台代理不会有传入流量。
-
HTTP(80)和 HTTPS(443)提供对本地 UI 的访问,您会在极少数情况下使用它们。
-
仅当需要连接到主机进行故障排除时才需要 SSH(22)。
-
如果您在没有出站互联网连接的子网中部署Cloud Volumes ONTAP系统,则需要通过端口 3128 建立入站连接。
如果Cloud Volumes ONTAP系统没有出站互联网连接来发送AutoSupport消息,控制台会自动配置这些系统以使用控制台代理附带的代理服务器。唯一的要求是确保控制台代理的安全组允许通过端口 3128 进行入站连接。部署控制台代理后,您需要打开此端口。
-
- 启用 NTP
-
如果您计划使用NetApp数据分类来扫描公司数据源,则应在控制台代理和NetApp数据分类系统上启用网络时间协议 (NTP) 服务,以便系统之间的时间同步。 "了解有关NetApp数据分类的更多信息"
步骤 4:设置控制台代理部署权限
您需要使用以下选项之一向控制台代理提供 Azure 权限:
-
选项 1:使用系统分配的托管标识为 Azure VM 分配自定义角色。
-
选项 2:向控制台代理提供具有所需权限的 Azure 服务主体的凭据。
按照步骤为控制台代理准备权限。
请注意,您可以使用 Azure 门户、Azure PowerShell、Azure CLI 或 REST API 创建 Azure 自定义角色。以下步骤展示如何使用 Azure CLI 创建角色。如果您希望使用其他方法,请参阅 "Azure 文档"
-
如果您计划在自己的主机上手动安装该软件,请在 VM 上启用系统分配的托管标识,以便您可以通过自定义角色提供所需的 Azure 权限。
-
复制"连接器的自定义角色权限"并将它们保存在 JSON 文件中。
-
通过将 Azure 订阅 ID 添加到可分配范围来修改 JSON 文件。
您应该为想要与NetApp控制台一起使用的每个 Azure 订阅添加 ID。
例子
"AssignableScopes": [ "/subscriptions/d333af45-0d07-4154-943d-c25fbzzzzzzz", "/subscriptions/54b91999-b3e6-4599-908e-416e0zzzzzzz", "/subscriptions/398e471c-3b42-4ae7-9b59-ce5bbzzzzzzz"
-
使用 JSON 文件在 Azure 中创建自定义角色。
以下步骤介绍如何使用 Azure Cloud Shell 中的 Bash 创建角色。
-
开始 "Azure 云外壳"并选择 Bash 环境。
-
上传 JSON 文件。
-
使用 Azure CLI 创建自定义角色:
az role definition create --role-definition Connector_Policy.json
-
在 Microsoft Entra ID 中创建并设置服务主体,并获取控制台代理所需的 Azure 凭据。
-
确保您在 Azure 中拥有创建 Active Directory 应用程序并将该应用程序分配给角色的权限。
有关详细信息,请参阅 "Microsoft Azure 文档:所需权限"
-
从 Azure 门户打开 Microsoft Entra ID 服务。
-
在菜单中,选择*应用程序注册*。
-
选择*新注册*。
-
指定有关应用程序的详细信息:
-
名称:输入应用程序的名称。
-
帐户类型:选择帐户类型(任何类型都可以与NetApp控制台一起使用)。
-
重定向 URI:您可以将此字段留空。
-
-
选择*注册*。
您已创建 AD 应用程序和服务主体。
-
创建自定义角色:
请注意,您可以使用 Azure 门户、Azure PowerShell、Azure CLI 或 REST API 创建 Azure 自定义角色。以下步骤展示如何使用 Azure CLI 创建角色。如果您希望使用其他方法,请参阅 "Azure 文档"
-
复制"控制台代理的自定义角色权限"并将它们保存在 JSON 文件中。
-
通过将 Azure 订阅 ID 添加到可分配范围来修改 JSON 文件。
您应该为用户将从中创建Cloud Volumes ONTAP系统的每个 Azure 订阅添加 ID。
例子
"AssignableScopes": [ "/subscriptions/d333af45-0d07-4154-943d-c25fbzzzzzzz", "/subscriptions/54b91999-b3e6-4599-908e-416e0zzzzzzz", "/subscriptions/398e471c-3b42-4ae7-9b59-ce5bbzzzzzzz"
-
使用 JSON 文件在 Azure 中创建自定义角色。
以下步骤介绍如何使用 Azure Cloud Shell 中的 Bash 创建角色。
-
开始 "Azure 云外壳"并选择 Bash 环境。
-
上传 JSON 文件。
-
使用 Azure CLI 创建自定义角色:
az role definition create --role-definition Connector_Policy.json
现在您应该有一个名为“控制台操作员”的自定义角色,可以将其分配给控制台代理虚拟机。
-
-
-
将应用程序分配给角色:
-
从 Azure 门户打开 Subscriptions 服务。
-
选择订阅。
-
选择“访问控制 (IAM)”>“添加”>“添加角色分配”。
-
在*角色*选项卡中,选择*控制台操作员*角色并选择*下一步*。
-
在“成员”选项卡中,完成以下步骤:
-
保持选中“用户、组或服务主体”。
-
选择*选择成员*。
-
搜索应用程序的名称。
以下是一个例子:
-
选择应用程序并选择*选择*。
-
选择“下一步”。
-
-
选择*审阅+分配*。
服务主体现在具有部署控制台代理所需的 Azure 权限。
如果您想从多个 Azure 订阅部署Cloud Volumes ONTAP ,则必须将服务主体绑定到每个订阅。在NetApp控制台中,您可以选择部署Cloud Volumes ONTAP时要使用的订阅。
-
-
在*Microsoft Entra ID*服务中,选择*App Registrations*并选择应用程序。
-
选择*API 权限 > 添加权限*。
-
在“Microsoft API”下,选择“Azure 服务管理”。
-
选择*以组织用户身份访问 Azure 服务管理*,然后选择*添加权限*。
-
在*Microsoft Entra ID*服务中,选择*App Registrations*并选择应用程序。
-
复制*应用程序(客户端)ID*和*目录(租户)ID*。
将 Azure 帐户添加到控制台时,您需要提供应用程序(客户端)ID 和应用程序的目录(租户)ID。控制台使用 ID 以编程方式登录。
-
开启*Microsoft Entra ID*服务。
-
选择*应用程序注册*并选择您的应用程序。
-
选择*证书和机密>新客户端机密*。
-
提供秘密的描述和持续时间。
-
选择“添加”。
-
复制客户端机密的值。
您的服务主体现已设置,您应该已经复制了应用程序(客户端)ID、目录(租户)ID 和客户端机密的值。添加 Azure 帐户时,您需要在控制台中输入此信息。
步骤 5:安装控制台代理
前提条件完成后,您可以在自己的 Linux 主机上手动安装该软件。
您应该具有以下内容:
-
安装控制台代理的 root 权限。
-
如果控制台代理需要代理才能访问互联网,则提供有关代理服务器的详细信息。
您可以选择在安装后配置代理服务器,但这样做需要重新启动控制台代理。
-
如果代理服务器使用 HTTPS 或代理是拦截代理,则需要 CA 签名的证书。
|
手动安装控制台代理时,无法为透明代理服务器设置证书。如果需要为透明代理服务器设置证书,则必须在安装后使用维护控制台。详细了解"代理维护控制台"。 |
-
在 Azure 中的 VM 上启用托管标识,以便您可以通过自定义角色提供所需的 Azure 权限。
NetApp支持站点上提供的安装程序可能是早期版本。安装后,如果有新版本可用,控制台代理会自动更新。
-
如果主机上设置了 http_proxy 或 https_proxy 系统变量,请将其删除:
unset http_proxy unset https_proxy
如果不删除这些系统变量,安装将失败。
-
从下载控制台代理软件 "NetApp 支持站点",然后将其复制到Linux主机上。
您应该下载适用于您的网络或云中的“在线”代理安装程序。
-
分配运行脚本的权限。
chmod +x NetApp_Console_Agent_Cloud_<version>
其中 <version> 是您下载的控制台代理的版本。
-
如果在政府云环境中安装,请禁用配置检查。"了解如何禁用手动安装的配置检查。"
-
运行安装脚本。
./NetApp_Console_Agent_Cloud_<version> --proxy <HTTP or HTTPS proxy server> --cacert <path and file name of a CA-signed certificate>
如果您的网络需要代理来访问互联网,则需要添加代理信息。您可以添加透明或显式代理。 --proxy 和 --cacert 参数是可选的,系统不会提示您添加它们。如果您有代理服务器,则需要输入所示的参数。
以下是使用 CA 签名证书配置显式代理服务器的示例:
./NetApp_Console_Agent_Cloud_v4.0.0--proxy https://user:password@10.0.0.30:8080/ --cacert /tmp/cacert/certificate.cer
`--proxy`使用以下格式之一将控制台代理配置为使用 HTTP 或 HTTPS 代理服务器:
-
http://地址:端口
-
http://用户名:密码@地址:端口
-
http://域名%92用户名:密码@地址:端口
-
https://地址:端口
-
https://用户名:密码@地址:端口
-
https://域名%92用户名:密码@地址:端口
请注意以下事项:
-
用户可以是本地用户或域用户。
-
对于域用户,您必须使用 \ 的 ASCII 代码,如上所示。
-
控制台代理不支持包含 @ 字符的用户名或密码。
-
如果密码包含以下任何特殊字符,则必须在该特殊字符前面加上反斜杠来转义该特殊字符:& 或 !
例如:
-
http://bxpproxyuser:netapp1\!@地址:3128
-
`--cacert`指定用于控制台代理和代理服务器之间的 HTTPS 访问的 CA 签名证书。 HTTPS代理服务器、拦截代理服务器、透明代理服务器都需要此参数。
+ 下面是配置透明代理服务器的示例。配置透明代理时,不需要定义代理服务器。您只需将 CA 签名的证书添加到控制台代理主机:
+
./NetApp_Console_Agent_Cloud_v4.0.0 --cacert /tmp/cacert/certificate.cer
-
如果您使用 Podman,则需要调整 aardvark-dns 端口。
-
通过 SSH 连接到控制台代理虚拟机。
-
打开 podman /usr/share/containers/containers.conf 文件并修改 Aardvark DNS 服务的选定端口。例如,将其更改为54。
vi /usr/share/containers/containers.conf ... # Port to use for dns forwarding daemon with netavark in rootful bridge # mode and dns enabled. # Using an alternate port might be useful if other DNS services should # run on the machine. # dns_bind_port = 54 ... Esc:wq
-
重新启动控制台代理虚拟机。
-
-
等待安装完成。
安装结束时,如果您指定了代理服务器,控制台代理服务 (occm) 将重新启动两次。
|
如果安装失败,您可以查看安装报告和日志来帮助您解决问题。"了解如何解决安装问题。" |
-
从连接到控制台代理虚拟机的主机打开 Web 浏览器并输入以下 URL:
-
登录后,设置控制台代理:
-
指定与控制台代理关联的组织。
-
输入系统的名称。
-
在*您是否在安全环境中运行?*下保持限制模式处于禁用状态。
您应该保持限制模式处于禁用状态,因为这些步骤描述了如何在标准模式下使用控制台。仅当您拥有安全的环境并希望断开此帐户与后端服务的连接时,才应启用受限模式。如果真是这样的话,"按照步骤在受限模式下开始使用NetApp控制台" 。
-
选择*让我们开始吧*。
-
如果您在创建控制台代理的同一 Azure 订阅中拥有 Azure Blob 存储,您将看到 Azure Blob 存储系统自动出现在“系统”页面上。 "了解如何通过NetApp控制台管理 Azure Blob 存储"
步骤 6:提供对NetApp控制台的权限
现在您已经安装了控制台代理,您需要为控制台代理提供您之前设置的 Azure 权限。提供权限使控制台能够管理 Azure 中的数据和存储基础结构。
转到 Azure 门户并将 Azure 自定义角色分配给一个或多个订阅的控制台代理虚拟机。
-
从 Azure 门户打开“订阅”服务并选择您的订阅。
从*订阅*服务分配角色很重要,因为这指定了订阅级别的角色分配范围。 _范围_定义了访问适用的资源集。如果您在不同级别(例如,虚拟机级别)指定范围,则您在NetApp控制台内完成操作的能力将受到影响。
-
选择*访问控制 (IAM)* > 添加 > 添加角色分配。
-
在*角色*选项卡中,选择*控制台操作员*角色并选择*下一步*。
控制台操作员是策略中提供的默认名称。如果您为角色选择了不同的名称,则选择该名称。 -
在“成员”选项卡中,完成以下步骤:
-
分配对*托管身份*的访问权限。
-
选择“选择成员”,选择创建控制台代理虚拟机的订阅,在“托管标识”下,选择“虚拟机”,然后选择控制台代理虚拟机。
-
选择*选择*。
-
选择“下一步”。
-
选择*审阅+分配*。
-
如果要管理其他 Azure 订阅中的资源,请切换到该订阅,然后重复这些步骤。
-
前往 "NetApp控制台"开始使用控制台代理。
-
选择“管理 > 凭证”。
-
选择“添加凭据”并按照向导中的步骤操作。
-
凭证位置:选择*Microsoft Azure > 代理*。
-
定义凭据:输入有关授予所需权限的 Microsoft Entra 服务主体的信息:
-
应用程序(客户端)ID
-
目录(租户)ID
-
客户端机密
-
-
市场订阅:通过立即订阅或选择现有订阅将市场订阅与这些凭证关联。
-
审核:确认有关新凭证的详细信息并选择*添加*。
-
控制台代理现在具有代表您在 Azure 中执行操作所需的权限。