Node.js 触发Terraform命令的Web UI
在我们公司,我们的培训师在本地执行Terraforms命令(Node.js 触发Terraform命令的Web UI,node.js,azure-functions,terraform,cloud,Node.js,Azure Functions,Terraform,Cloud,在我们公司,我们的培训师在本地执行Terraforms命令(Init,Validate,Plan,Apply),为在线课程分配资源,持续两到三天。目前Terraform命令部署到Oracle云基础设施(OCI),但将来可能是Azure、AWS或任何其他类似平台 虽然培训师仍将负责更新和创建Terraform配置文件,目标是创建一个简单的web UI,允许管理者启动/停止在线课程,因为他们不具备编程技能,也无法通过终端执行命令复杂性或触发地形命令将在幕后处理 对于如何以编程方式调用Terrafor
Init
,Validate
,Plan
,Apply
),为在线课程分配资源,持续两到三天。目前Terraform命令部署到Oracle云基础设施(OCI),但将来可能是Azure、AWS或任何其他类似平台
虽然培训师仍将负责更新和创建Terraform配置文件,目标是创建一个简单的web UI,允许管理者启动/停止在线课程,因为他们不具备编程技能,也无法通过终端执行命令复杂性或触发地形命令将在幕后处理 对于如何以编程方式调用Terraform命令以及如何轻松处理配置文件,您有什么建议吗
我的架构计划如下,我希望得到一些反馈:
1-Web UI:给定可用课程的列表,它接受用户启动/停止课程的命令 2-UI调用RESTAPI(例如Azure函数)来启动所需的操作。这里给出一些从UI传递的ID元数据,我将从存储系统或DB收集特定于目标球场的地形配置 3-在Azure函数上下文中,使用Node.js(但如果带来更多好处,也可以使用其他语言),我将安装Terraform库,并执行特定命令来分配资源并相应地创建环境
由于之前没有使用Terraform的经验,我不知道这是否是一个好方法,或者可能有更好的模式来实现上述目标。我试图用粗体标出所涉及的主要模块。这些需求最容易通过管道解决。谢谢@MattSchuchard,你是指Gitlab、AWS或Azure管道还是TF管道?您能否进一步阐述您的评论或提供相关文档的链接?他指的是CI/CD管道,如GitLab、Circle CI、Concourse CI、GitHub Actions、Jenkins、Azure管道等。Cheers@MarkB。我已经看到我可以运行powershell函数来触发管道并运行TF步骤。即使我使用Azure管道,我仍然可以使用Terraform针对任何平台(Oracle、AWS),对吗?我必须为每个TF任务创建一个管道,或者可以将多个管道分组到一个管道中吗?