生成计划
创建工作空间后,需要生成计划以验证所有配置属性。
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
(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")
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 集群实例。