在 Google Cloud 中手动安装控制台代理
步骤 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。
不支持
-
- Google Cloud 机器类型
-
满足上述 CPU 和 RAM 要求的实例类型。我们推荐 n2-standard-8。
Google Cloud 虚拟机实例上的控制台代理支持以下操作系统: "受防护的虚拟机功能"
- /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:设置网络
设置您的网络,以便控制台代理可以管理混合云环境中的资源和流程。例如,您需要确保可以连接到目标网络并且可以进行出站互联网访问。
- 连接到目标网络
-
控制台代理需要与您计划创建和管理系统的位置建立网络连接。例如,您计划在本地环境中创建Cloud Volumes ONTAP系统或存储系统的网络。
- 出站互联网访问
-
部署控制台代理的网络位置必须具有出站互联网连接才能联系特定端点。
- 使用基于 Web 的NetApp控制台时从计算机联系的端点
-
从 Web 浏览器访问控制台的计算机必须能够联系多个端点。您需要使用控制台来设置控制台代理并进行控制台的日常使用。
- 从控制台代理联系的端点
-
控制台代理需要出站互联网访问来联系以下端点,以管理公共云环境中的资源和流程以进行日常操作。
下面列出的端点都是 CNAME 条目。
端点 目的 \ 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://www.googleapis.com/deploymentmanager/v2/projects
管理 Google Cloud 中的资源。
获取许可信息并向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:设置控制台代理的权限
需要一个 Google Cloud 服务帐号来向控制台代理提供控制台管理 Google Cloud 中的资源所需的权限。创建控制台代理时,您需要将此服务帐户与控制台代理 VM 关联。
在后续版本中添加新权限时,您有责任更新自定义角色。如果需要新的权限,它们将在发行说明中列出。
-
在 Google Cloud 中创建自定义角色:
-
创建一个包含以下内容的 YAML 文件"控制台代理的服务帐户权限"。
-
从 Google Cloud 激活云壳。
-
上传包含所需权限的 YAML 文件。
-
使用创建自定义角色 `gcloud iam roles create`命令。
以下示例在项目级别创建一个名为“connector”的角色:
gcloud iam roles create connector --project=myproject --file=connector.yaml
-
-
在 Google Cloud 中创建服务帐号并将角色分配给该服务帐号:
-
从 IAM 和管理服务中,选择 服务帐户 > 创建服务帐户。
-
输入服务帐户详细信息并选择*创建并继续*。
-
选择您刚刚创建的角色。
-
完成剩余步骤以创建角色。
-
-
如果您计划在与控制台代理所在项目不同的项目中部署Cloud Volumes ONTAP系统,则需要为控制台代理的服务帐户提供对这些项目的访问权限。
例如,假设控制台代理位于项目 1 中,而您想要在项目 2 中创建Cloud Volumes ONTAP系统。您需要授予项目 2 中的服务帐户访问权限。
-
从 IAM 和管理服务中,选择您想要创建Cloud Volumes ONTAP系统的 Google Cloud 项目。
-
在 IAM 页面上,选择 授予访问权限 并提供所需的详细信息。
-
输入控制台代理服务帐户的电子邮件。
-
选择控制台代理的自定义角色。
-
选择*保存*。
-
有关详细信息,请参阅 "Google Cloud 文档"
-
步骤 5:设置共享 VPC 权限
如果您使用共享 VPC 将资源部署到服务项目中,则需要准备好您的权限。
此表仅供参考,当 IAM 配置完成时,您的环境应该反映权限表。
查看共享 VPC 权限
身份 | 创造者 | 主办地点 | 服务项目权限 | 宿主项目权限 | 目的 |
---|---|---|---|---|---|
Google 帐户部署代理 |
自定义 |
服务项目 |
计算.网络用户 |
在服务项目中部署代理 |
|
代理服务账户 |
自定义 |
服务项目 |
计算.网络用户部署管理器.编辑器 |
部署和维护服务项目中的Cloud Volumes ONTAP和服务 |
|
Cloud Volumes ONTAP服务帐户 |
自定义 |
服务项目 |
storage.admin 成员: NetApp Console 服务帐户作为 serviceAccount.user |
不适用 |
(可选)适用于NetApp Cloud Tiering 和NetApp Backup and Recovery |
Google API 服务代理 |
Google Cloud |
服务项目 |
(默认)编辑器 |
计算.网络用户 |
代表部署与 Google Cloud API 进行交互。允许控制台使用共享网络。 |
Google Compute Engine 默认服务帐户 |
Google Cloud |
服务项目 |
(默认)编辑器 |
计算.网络用户 |
代表部署部署 Google Cloud 实例和计算基础架构。允许控制台使用共享网络。 |
注:
-
如果您没有将防火墙规则传递给部署并选择让控制台为您创建规则,则仅主机项目才需要 deploymentmanager.editor。如果未指定规则, NetApp控制台将在主机项目中创建一个包含 VPC0 防火墙规则的部署。
-
仅当您未将防火墙规则传递给部署并选择让控制台为您创建它们时,才需要firewall.create 和firewall.delete。这些权限位于控制台帐户 .yaml 文件中。如果您使用共享 VPC 部署 HA 对,这些权限将用于为 VPC1、2 和 3 创建防火墙规则。对于所有其他部署,这些权限也将用于为 VPC0 创建规则。
-
对于 Cloud Tiering,分层服务帐户必须在服务帐户上具有 serviceAccount.user 角色,而不仅仅是在项目级别。目前,如果您在项目级别分配 serviceAccount.user,则使用 getIAMPolicy 查询服务帐户时不会显示权限。
第 6 步:启用 Google Cloud API
在 Google Cloud 中部署Cloud Volumes ONTAP系统之前,必须启用多个 Google Cloud API。
-
在您的项目中启用以下 Google Cloud API:
-
云部署管理器 V2 API
-
云日志 API
-
云资源管理器 API
-
计算引擎 API
-
身份和访问管理 (IAM) API
-
云密钥管理服务 (KMS) API
(仅当您计划将NetApp Backup and Recovery 与客户管理加密密钥 (CMEK) 结合使用时才需要)
-
步骤 7:安装控制台代理
前提条件完成后,您可以在自己的 Linux 主机上手动安装该软件。
您应该具有以下内容:
-
安装控制台代理的 root 权限。
-
如果控制台代理需要代理才能访问互联网,则提供有关代理服务器的详细信息。
您可以选择在安装后配置代理服务器,但这样做需要重新启动控制台代理。
-
如果代理服务器使用 HTTPS 或代理是拦截代理,则需要 CA 签名的证书。
|
手动安装控制台代理时,无法为透明代理服务器设置证书。如果需要为透明代理服务器设置证书,则必须在安装后使用维护控制台。详细了解"代理维护控制台"。 |
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控制台" 。
-
选择*让我们开始吧*。
如果安装失败,您可以查看日志和报告来帮助您排除故障。"了解如何解决安装问题。" -
如果您在创建控制台代理的同一 Google Cloud 帐户中拥有 Google Cloud Storage 存储桶,您将看到 Google Cloud Storage 系统自动出现在 Systems 页面上。 "了解如何通过NetApp控制台管理 Google Cloud Storage"
步骤 8:向控制台代理提供权限
您需要向控制台代理提供您之前设置的 Google Cloud 权限。提供权限可使控制台代理管理 Google Cloud 中的数据和存储基础架构。
-
转到 Google Cloud 门户并将服务帐户分配给控制台代理 VM 实例。
-
如果您想管理其他 Google Cloud 项目中的资源,请通过将具有控制台代理角色的服务帐号添加到该项目来授予访问权限。您需要对每个项目重复此步骤。