申请试用

生成计划


创建工作空间后,需要生成计划以验证所有配置属性。


1、使用 UI 生成计划

(1)在 IBM Cloud® 控制台中,创建工作空间后,可以使用 设置 选项卡来查看与该工作空间相关联的属性和变量。 您可以查看所有值,进行更改 (如果适用) ,然后单击 生成计划


(2)单击 生成计划 时,将生成可通过单击 作业在 "作业" 选项卡中查看的新日志。


(3)查看日志文件以查找任何错误,修正属性,然后通过再次单击 生成计划 来重新生成计划。

  

2、使用 CLI 生成计划

运行以下命令以生成工作空间的计划。

ibmcloud schematics plan --id <WORKSPACE_ID>


您可以查看日志文件以查找错误或确认操作已成功完成。 您可能需要多次运行此命令以跟踪该命令的结果,直到其完成为止。

ibmcloud schematics logs --id <WORKSPACE_ID>


3、使用 API 生成计划

(1)要使用 IBM Cloud Schematics Python API 生成计划,请创建 Python 文件并提供您选择的名称,例如 schematics_generate_plan.py。


(2)将 使用 Schematics Python API 示例请求复制并粘贴到 Python 文件中。


(3)在请求中更改以下参数:

  ·将 IBM Cloud API 密钥替换为 authenticator = IAMAuthenticator('') 变量。

  ·根据您希望 Schematics 工作空间驻留的位置 (例如 schematics_service.set_service_url('https://us.schematics.cloud.ibm.com')) ,将 API 端点更改为 API 端点 中提到的端点。

  1)在 schematics_service.plan_workspace_command 函数中,提供以下参数:

  ·提供您在 创建工作空间 任务中或从 IBM Cloud 控制台为 Schematics创建的工作空间标识,例如 us-south.workspace.Terraform-Schematics-Python-Workspace.b3bbc9f5。

  ·使用以下命令导出 IBM Cloud API 密钥:

  • export IBMCLOUD_API_KEY =”<ibm-cloud-api-key>”


    ·运行以下 curl 命令以创建刷新令牌:


  • curl -X POST "https://iam.cloud.ibm.com/identity/token" -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey=$IBMCLOUD_API_KEY" -u bx:bx

(1)确保更新以下必需参数: api_key, ibm_customer_number, remote_allowed_ips, ssh_key_name和 zone。


(2)通过使用 python3在 IBM Cloud中生成计划,运行 Python 脚本。


(3)如果作为请求的一部分传递的参数有效,那么您将在响应中获取活动标识。 您应该能够在 IBM Cloud 控制台中创建的 Schematics 工作空间中查看计划生成。 如果未获得成功响应,那么错误响应包含需要解决的错误。 解决这些错误并运行脚本,直到您能够获取有效响应并生成计划为止。


(4)如果要检查操作的日志,请参阅 使用 Schematics API 检索操作日志 以检索日志。 响应包含操作的状态,并且以 COMPLETED 或 FAILED 状态显示。


示例 Python 请求


# Generate a plan using Schematics Python API
import json, logging
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
from ibm_schematics.schematics_v1 import SchematicsV1

logging.basicConfig()
logging.root.setLevel(logging.NOTSET)
logging.basicConfig(level=logging.NOTSET)

authenticator = IAMAuthenticator('<ibmcloud-api-key>')

schematics_service = SchematicsV1(authenticator = authenticator)

schematics_service.set_service_url('https://us.schematics.cloud.ibm.com')

logging.info("Started Generating Schematic Plan")

workspace_activity_plan_result = schematics_service.plan_workspace_command(
w_id='<workspace id>',
refresh_token='<refresh-token>'
).get_result()
print(json.dumps(workspace_activity_plan_result, indent=2))

logging.info("Completed Generating Schematic Plan")


示例 Python 响应

INFO:root:Started Generating Schematic Plan
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): iam.cloud.ibm.com:443DEBUG:urllib3.connectionpool:https://iam.cloud.ibm.com:443 "POST /identity/token HTTP/1.1" 200 985DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): us.schematics.cloud.ibm.com:443DEBUG:urllib3.connectionpool:https://us.schematics.cloud.ibm.com:443 "POST /v1/workspaces/us-south.workspace.Schematic-Sunil-Test-Workspace.5a4cbf11/plan HTTP/1.1" 202 49
{
  "activityid": "8c2ce5f031d23a60d26690d3cb398bb1"
  }
INFO:root:Completed Generating Schematic Plan


后续步骤

成功生成计划后,您可以开始 应用计划 以部署 IBM Cloud 资源来构建 Spectrum LSF 集群实例。