准备使用这些工作流
在实时ONTAP部署中使用工作流之前、您应熟悉这些工作流的结构和格式。
您应确保您的ONTAP版本支持您计划使用的工作流中的所有API调用。请参见 "API 参考" 有关详细信息 … |
简介
_Workflow _ 是完成特定管理任务或目标所需的一个或多个步骤的序列。ONTAP工作流包括完成每项任务所需的核心步骤和参数。它们为自定义ONTAP自动化环境提供了一个起点。
ONTAP工作流中的每个步骤都属于以下类型之一:
-
REST API 调用(包含 curl 和 JSON 示例等详细信息)
-
执行或调用其他ONTAP工作流
-
其他相关任务(例如制定配置决策)
大多数工作流步骤都是REST API调用。这些步骤使用通用格式、其中包括卷曲示例和其他信息。请参见 "API 参考" 有关REST API调用的更多详细信息、请参见。
一个工作流只能包含一个步骤。这些"单步工作流"的格式与包含多个步骤的工作流略有不同。例如、删除显式步骤名称。操作或操作应根据工作流标题明确。
输入变量
这些工作流的设计尽可能通用、因此可以在任何ONTAP环境中使用。考虑到这一点、REST API调用会在cURL示例和其他输入中使用变量。然后、可以轻松地根据不同的ONTAP环境调整REST API调用。
基本URL格式
您可以直接通过CURL或编程语言访问ONTAP REST API。在这种情况下、基本URL与访问ONTAP联机文档或System Manager时使用的URL不同。
直接访问API时,需要将*API*附加到域或IP地址。例如:
请参见 "如何访问ONTAP REST API" 有关详细信息 …
通用输入参数
大多数REST API调用通常使用多个输入参数。这些参数通常不会在各个工作流中进行介绍。您应熟悉这些参数。请参见 "控制 API 请求的输入变量" 有关详细信息 …
如果特定REST API调用需要其他参数、请参见每个工作流的* cURL示例的其他输入参数*一节。
可变格式
工作流示例中使用的ID值和其他变量是不透明的、并且可能因每个ONTAP集群而异。为了提高示例的可读性、不使用实际值。而是使用变量。此方法基于一致的格式和一组保留名称、具有以下几个优势:
-
CURL和JSON示例更易读、更易于理解。
-
由于所有关键字都使用相同的格式、因此您可以快速识别它们。
-
不存在安全风险、因为这些值无法复制和重复使用。
这些变量的格式设置为在Bash shell环境中使用。每个变量都以美元符号开头、并根据需要用双引号括起来。这使得他们可以被巴什所识别。名称始终使用大写。
下面是一些常见的变量关键字。此列表并非详尽无遗、需要时可使用其他变量。根据具体情况,其含义应该是显而易见的。
关键字 | Type | Description |
---|---|---|
$FQDN_IP |
URL |
ONTAP管理LIF的完全限定域名或IP地址。 |
$cluster ID |
路径 |
UUIDv4值、用于标识运行API操作的ONTAP集群。 |
$BASIC AUT1. |
标题 |
用于HTTP基本身份验证的凭据字符串。 |
JSON输入示例
某些REST API调用(例如使用POST或PATCH)的调用需要在请求正文中输入JSON。为了清楚起见、JSON输入示例与CURL示例分开显示。您可以将JSON输入示例与下面所述的一种技术结合使用。
您可以将JSON输入示例复制到文件并将其保存在本地。CURL命令引用使用的文件 --data
带有值的参数、用于指示带有的文件名 @
前缀。
首先、您需要将CURL示例复制并粘贴到终端Shell中。然后编辑此示例以完全删除 --data
参数、并将其替换为 --data-raw
参数。最后、复制并粘贴JSON示例、使其遵循带有更新参数的URL命令。您应使用单引号将JSON输入示例包装起来。
身份验证选项
REST API可用的主要身份验证技术是HTTP基本身份验证。从ONTAP 9.14开始、您还可以选择使用开放式授权(OAuth2.0)框架以及基于令牌的身份验证和授权。
HTTP基本身份验证
使用基本身份验证时、每个HTTP请求都必须包含用户凭据。有两种发送凭据的方法。
您可以手动构建授权标头并将其包含在HTTP请求中。如果在CLI中使用cURL命令或对自动化代码使用编程语言、则可以执行此操作。高级别步骤包括:
-
将用户和密码值与冒号串联:
admin:david123
-
将整个字符串转换为base64:
YWRtaW46ZGF2aWQxMjM=
-
构建请求标头:
Authorization: Basic YWRtaW46ZGF2aWQxMjM=
工作流卷曲示例包含此标题以及变量*$BASIC _AUT*、使用前需要更新此标题。
使用Curl时的另一个选项是删除Authorization(授权)标头,而改用Curl *user*参数。例如:
--user username:password
您需要使用适用于您的环境的凭据进行替换。这些凭据不会在base64中进行编码。使用此参数执行URL命令时、系统会对字符串进行编码、并为您生成Authorization.标题。
OAuth2.0
使用OAuth2.0时、您需要从外部授权服务器请求访问令牌、并将其包含在每个HTTP请求中。下面将介绍基本的高级步骤。另请参见 "ONTAP OAuth2.0实施概述" 有关OAuth2.0以及如何将其与ONTAP结合使用的详细信息。
在使用REST API访问ONTAP之前、您需要准备和配置ONTAP环境。概括地说、这些步骤包括:
-
确定受ONTAP保护的资源和客户端
-
查看现有ONTAP REST角色和用户定义
-
安装和配置授权服务器
-
设计和配置客户端授权定义
-
配置ONTAP并启用OAuth2.0
在ONTAP以及授权服务器已定义且处于活动状态的情况下、您可以使用OAuth2.0令牌进行REST API调用。第一步是从授权服务器请求访问令牌。这是在ONTAP之外使用基于服务器的几种不同技术之一完成的。ONTAP不会通过问题描述访问令牌或执行重定向。
获取访问令牌后、您可以构建授权标头并将其包含在HTTP请求中。无论使用CURL还是编程语言访问REST API、都必须在每个客户端请求中包含标头。您可以按如下所示构建报头:
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSld …
将示例与Bash结合使用
如果您直接使用工作流卷曲示例、则必须使用适合您环境的值更新其包含的变量。您可以手动编辑这些示例、也可以按如下所述使用bash shell进行替换。
使用"Bash"的一个优点是、您可以在shell会话中设置一次变量值、而不是在每个CURL命令中设置一次。 |
-
打开随Linux或类似操作系统提供的bash shell。
-
设置要运行的CURL示例中包含的变量值。例如:
CLUSTER_ID=ce559b75-4145-11ee-b51a-005056aee9fb
-
从工作流页面复制卷曲示例并将其粘贴到shell终端中。
-
按*enter*,将执行以下操作:
-
替换您设置的变量值
-
执行Curl命令
-