准备在私有模式下部署
在私有模式下部署 NetApp Console 之前,请准备好您的环境。您需要查看主机要求、准备网络、设置权限等。
|
|
要在 "AWS Secret Cloud"或 "AWS Top Secret Cloud"中使用 NetApp Console,请按照这些环境的特定说明进行操作。 "了解如何在 AWS Secret Cloud 或 Top Secret Cloud 中开始使用 Cloud Volumes ONTAP" |
步骤 1:了解隐私模式的工作原理
在专用模式下,您可以在本地或云中安装 Console 代理,然后使用 NetApp Console 管理您的存储系统(本地 ONTAP 和 Cloud Volumes ONTAP)。没有与 NetApp Console API 端点或 NetApp Console SaaS 应用程序的连接,因此您可以从 Console 代理提供的本地 UI 访问 Console。
第 2 步:查看安装选项
在专用模式下,您可以在自己的 Linux 主机上手动安装 Console 代理,从而在内部或云端安装该代理。
您安装 Console 代理的位置决定了在使用专用模式时可用的 NetApp Console 服务和功能。如果要部署和管理 Cloud Volumes ONTAP,则必须在云中安装 Console 代理。
第 3 步:查看主机要求
主机必须满足特定的操作系统要求、RAM 要求、端口要求等才能运行 Console 代理。
- 专用主机
-
控制台代理需要专用主机。只要满足以下尺寸要求,任何架构都受支持:
-
CPU:8 核或 8 个 vCPU
-
内存:32 GB
-
磁盘空间:建议主机预留165GB空间,分区要求如下:
-
/opt:必须有 120 GiB 可用空间代理使用 `/opt`安装 `/opt/application/netapp`目录及其内容。
-
/var:必须有 40 GiB 可用空间控制台代理需要此空间 `/var`因为 Podman 或 Docker 的设计初衷就是在这个目录下创建容器。具体来说,他们将在以下位置创建容器: `/var/lib/containers/storage`目录和 `/var/lib/docker`用于 Docker。外部安装或符号链接不适用于此空间。
-
-
- 操作系统和容器要求
-
在私人模式下使用控制台时,以下操作系统支持控制台代理。安装代理之前需要一个容器编排工具。
操作系统 支持的操作系统版本 支持的代理版本 所需的容器工具 SELinux Red Hat Enterprise Linux
9.1 至 9.4
8.6 至 8.10
3.9.42 或更高版本,控制台处于私人模式
Podman 版本 4.6.1 或 4.9.4
在强制模式或宽容模式下受支持
Ubuntu
22.04 LTS
3.9.29 或更高版本
Docker Engine 23.0.6 至 26.0.0
26.0.0 支持 new agent 3.9.44 或更高版本的安装
不支持
注:
-
这些操作系统的英语版本支持控制台代理。
-
对于 RHEL,主机必须在 Red Hat 订阅管理中注册。如果未注册,主机将无法在代理安装期间访问存储库来更新所需的第三方软件。
-
- 虚拟机管理程序
-
需要经过认证可运行受支持的操作系统的裸机或托管虚拟机管理程序。
- CPU
-
8 个核心或 8 个 vCPU
- RAM
-
32 GB
- AWS EC2 实例类型
-
满足 CPU 和 RAM 要求的实例类型。 NetApp推荐使用 t3.2xlarge。
- Azure VM 大小
-
满足 CPU 和 RAM 要求的实例类型。 NetApp推荐 Standard_D8s_v3。
- Google Cloud 机器类型
-
满足 CPU 和 RAM 要求的实例类型。NetApp推荐 n2-standard-8。
Google Cloud 虚拟机实例上的控制台代理支持以下操作系统: "受防护的虚拟机功能"
- /opt 中的磁盘空间
-
必须有 100 GiB 可用空间
代理使用 `/opt`安装 `/opt/application/netapp`目录及其内容。
- /var 中的磁盘空间
-
必须有 20 GiB 可用空间
控制台代理需要此空间 `/var`因为 Docker 或 Podman 的设计目的是在此目录中创建容器。具体来说,他们将在 `/var/lib/containers/storage`目录。外部安装或符号链接不适用于此空间。
步骤 4:安装 Podman 或 Docker Engine
您需要通过安装 Podman 或 Docker Engine 为 Console 代理准备主机。
根据您的操作系统,安装代理之前需要 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,请验证您的 Podman 版本使用的是 Netavark 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.6:
sudo dnf install podman-5:<version>其中 <version> 是您正在安装的 Podman 支持的版本。查看支持的 Podman 版本 。
-
适用于 Red Hat Enterprise Linux 9.1 至 9.4:
sudo dnf install podman-4:<version>其中 <version> 是您正在安装的 Podman 支持的版本。查看支持的 Podman 版本 。
-
对于 Red Hat Enterprise Linux 8:
sudo dnf install podman-4:<version>其中 <version> 是您正在安装的 Podman 支持的版本。查看支持的 Podman 版本 。
-
-
启用并启动 podman.socket 服务。
sudo systemctl enable --now podman.socket -
安装 python3。
sudo dnf install python3 -
如果您的系统上还没有 EPEL 存储库包,请安装它。
此步骤是必需的,因为 podman-compose 可从 Extra Packages for Enterprise Linux (EPEL) 存储库中获得。
-
如果使用 Red Hat Enterprise 9:
-
安装EPEL存储库软件包。
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm+
-
安装 podman-compose 包 1.5.0。
sudo dnf install podman-compose-1.5.0
-
-
如果使用的是 Red Hat Enterprise Linux 8:
-
安装EPEL存储库软件包。
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
第 5 步:准备网络
为 Console 代理设置网络,以管理公有云中的资源。除了拥有 Console 代理的虚拟网络和子网之外,请确保满足以下要求。
- 连接到目标网络
-
Console 代理必须与您计划管理存储的位置建立网络连接。例如,您计划部署 Cloud Volumes ONTAP 的 VPC 或 VNet,或您的本地 ONTAP 集群所在的数据中心。
- 日常运营的端点
-
如果计划创建 Cloud Volumes ONTAP 系统,则 Console 代理需要连接到云提供商公共可用资源中的端点。
端点 目的 AWS 服务(amazonaws.com):
-
云形成
-
弹性计算云(EC2)
-
身份和访问管理 (IAM)
-
密钥管理服务(KMS)
-
安全令牌服务 (STS)
-
简单存储服务(S3)
管理 AWS 资源。端点取决于您的 AWS 区域。 "有关详细信息,请参阅 AWS 文档"
Amazon FsX for NetApp ONTAP:
-
api.workloads.netapp.com
基于 Web 的控制台通过与 Workload Factory API 交互来管理和操作基于ONTAP 的FSx 工作负载。
管理 Azure 公共区域中的资源。
https://management.azure.microsoft.scloud https://login.microsoftonline.microsoft.scloud https://blob.core.microsoft.scloud https://core.microsoft.scloud
管理 Azure IL6 区域中的资源。
管理 Azure 中国区域的资源。
\ https://www.googleapis.com/compute/v1/ \ https://compute.googleapis.com/compute/v1 \ https://cloudresourcemanager.googleapis.com/v1/projects \ https://www.googleapis.com/compute/beta \ https://storage.googleapis.com/storage/v1 \ https://www.googleapis.com/storage/v1 \ https://iam.googleapis.com/v1 \ https://cloudkms.googleapis.com/v1 \ https://config.googleapis.com/v1/projects
管理 Google Cloud 中的资源。
-
- Azure 中的公共 IP 地址
-
如果要在 Azure 中将公共 IP 地址与控制台代理 VM 一起使用,则该 IP 地址必须使用基本 SKU 以确保控制台使用此公共 IP 地址。

如果您使用标准 SKU IP 地址,则控制台将使用控制台代理的_私有_ IP 地址,而不是公共 IP。如果您用于访问控制台的机器无法访问该私有 IP 地址,则控制台中的操作将会失败。
- 代理服务器
-
NetApp支持显式和透明代理配置。如果您使用透明代理,则只需要提供代理服务器的证书。如果您使用显式代理,您还需要 IP 地址和凭据。
-
IP 地址
-
凭据
-
HTTPS 证书
在私有模式下,NetApp Console 向您的云提供商发送出站流量的唯一时间是为了创建 Cloud Volumes ONTAP 系统。
-
- 端口
-
除非您发起,否则不会有传入 Console 代理的流量。
HTTP (80) 和 HTTPS (443) 提供对 NetApp Console 的访问。如果您需要连接到主机进行故障排除,则需要 SSH (22)。
- 启用 NTP
-
如果您计划使用NetApp Data Classification来扫描公司数据源,则应在控制台代理和NetApp Data Classification系统上启用网络时间协议 (NTP) 服务,以便系统之间的时间同步。 "了解有关NetApp数据分类的更多信息"
步骤 6:准备云权限
如果 Console 代理安装在云中,并且您计划创建 Cloud Volumes ONTAP 系统,则 NetApp Console 需要云提供商权限。您需要在云提供商中设置权限,然后在安装后将这些权限与 Console 代理实例相关联。
要查看所需步骤,请选择要用于云提供商的身份验证选项。
使用 IAM 角色为 Console 代理提供权限。需要手动将角色附加到 Console 代理的 EC2 实例。
-
登录 AWS 控制台并导航到 IAM 服务。
-
创建策略:
-
选择“策略”>“创建策略”。
-
选择 JSON 并复制并粘贴内容"控制台代理的 IAM 策略"。
-
完成剩余步骤以创建策略。
-
-
创建 IAM 角色:
-
选择*角色 > 创建角色*。
-
选择 AWS 服务 > EC2。
-
通过附加刚刚创建的策略来添加权限。
-
完成剩余步骤以创建角色。
-
您现在拥有控制台代理 EC2 实例的 IAM 角色。
为 IAM 用户设置权限和访问密钥。在安装 Console 代理并设置 NetApp Console 后,为 NetApp Console 提供 AWS 访问密钥。
-
登录 AWS 控制台并导航到 IAM 服务。
-
创建策略:
-
选择“策略”>“创建策略”。
-
选择 JSON 并复制并粘贴内容"控制台代理的 IAM 策略"。
-
完成剩余步骤以创建策略。
根据您计划使用的 NetApp Console 服务,您可能需要创建第二个策略。
对于标准区域,权限分布在两个策略中。由于 AWS 中托管策略的最大字符大小限制,因此需要两个策略。"了解有关控制台代理的 IAM 策略的更多信息" 。
-
-
将策略附加到 IAM 用户。
-
确保用户拥有访问密钥,您可以在安装控制台代理后将其添加到NetApp Console。
该帐户现在具有所需的权限。
创建具有所需权限的 Azure 自定义角色。将此角色分配给 Console 代理 VM。
请注意,您可以使用 Azure 门户、Azure PowerShell、Azure CLI 或 REST API 创建 Azure 自定义角色。以下步骤展示如何使用 Azure CLI 创建角色。如果您希望使用其他方法,请参阅 "Azure 文档"
-
在计划安装 Console 代理的虚拟机上启用系统分配的托管标识,以便可以通过自定义角色提供所需的 Azure 权限。
-
复制"控制台代理的自定义角色权限"并将它们保存在 JSON 文件中。
-
通过将 Azure 订阅 ID 添加到可分配范围来修改 JSON 文件。
您应该为想要与NetApp Console一起使用的每个 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 agent_Policy.json
-
在 Microsoft Entra ID 中创建和设置服务主体,并获取 NetApp Console 所需的 Azure 凭据。安装 Console 代理并设置 NetApp Console 后,需要向 NetApp Console 提供这些凭据。
-
确保您在 Azure 中拥有创建 Active Directory 应用程序并将该应用程序分配给角色的权限。
有关详细信息,请参阅 "Microsoft Azure 文档:所需权限"
-
从 Azure 门户打开 Microsoft Entra ID 服务。

-
在菜单中,选择*应用程序注册*。
-
选择*新注册*。
-
指定有关应用程序的详细信息:
-
名称:输入应用程序的名称。
-
帐户类型:选择帐户类型(任何类型都可以与NetApp Console一起使用)。
-
重定向 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 agent_Policy.json现在您应该有一个名为“控制台操作员”的自定义角色,可以将其分配给控制台代理虚拟机。
-
-
-
将应用程序分配给角色:
-
从 Azure 门户打开 Subscriptions 服务。
-
选择订阅。
-
选择“访问控制 (IAM)”>“添加”>“添加角色分配”。
-
在*角色*选项卡中,选择*控制台操作员*角色并选择*下一步*。
-
在“成员”选项卡中,完成以下步骤:
-
保持选中“用户、组或服务主体”。
-
选择*选择成员*。

-
搜索应用程序的名称。
以下是一个例子:

-
选择应用程序并选择*选择*。
-
选择“下一步”。
-
-
选择*审阅+分配*。
服务主体现在具有部署控制台代理所需的 Azure 权限。
如果您想从多个 Azure 订阅部署Cloud Volumes ONTAP ,则必须将服务主体绑定到每个订阅。在NetApp Console中,您可以选择部署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 凭据时,请在 NetApp Console 中输入此信息。
创建一个角色并将其应用于您将用于控制台代理 VM 实例的服务帐户。
-
在 Google Cloud 中创建自定义角色:
-
创建一个 YAML 文件,其中包含在"Google Cloud 的控制台代理政策"。
-
从 Google Cloud 激活云壳。
-
上传包含控制台代理所需权限的 YAML 文件。
-
使用创建自定义角色 `gcloud iam roles create`命令。
以下示例在项目级别创建一个名为“agent”的角色:
gcloud iam roles create agent --project=myproject --file=agent.yaml -
-
在 Google Cloud 中创建服务帐号:
-
从 IAM 和管理服务中,选择 服务帐户 > 创建服务帐户。
-
输入服务帐户详细信息并选择*创建并继续*。
-
选择您刚刚创建的角色。
-
完成剩余步骤以创建角色。
-
步骤 7:启用 Google Cloud API
您需要启用多个 API 才能在 Google Cloud 中部署 Cloud Volumes ONTAP。
-
-
Cloud Build API (使用 Infrastructure Manager 进行私有模式 Cloud Volumes ONTAP 部署时需要)
-
云部署管理器 V2 API
-
云基础设施管理器 API
-
云日志 API
-
云资源管理器 API
-
计算引擎 API
-
身份和访问管理 (IAM) API
-
云密钥管理服务 (KMS) API(仅当您计划将 NetApp Backup and Recovery 与客户管理的加密密钥 (CMEK) 一起使用时才需要)
-
Cloud Quotas API(使用 Infrastructure Manager 部署 Cloud Volumes ONTAP 时需要)
-