尝试使用Pluralith将通过Terraform构建的配置呈现为图形
想做的事情
我在使用Terraform构建基础架构时发现,由于创建单独的配置图很麻烦,所以我想从State文件中自动创建是否有这样的工具。我进行了调查,并找到了一个名为Pluralith的工具,看起来很方便,所以我试着使用了一下。下面是我总结的使用步骤等内容。
多元化
可以从这个页面了解概要。这篇文章也参考了以下内容。
前提 tí)
在 Mac 上安装并输出配置图表。机器规格如下:
操作系统:Monterey 12.6.3
处理器:M1 Max
内存:32 GB
引入步骤
安装
由于使用Pluralith需要注册,因此请通过以下页面进行用户注册。
用户注册后,将显示一个选择 CI Setup和Local Setup的窗口。在这里,选择Local Setup。然后,应该会显示一个显示设置步骤的窗口,点击Download CLI将开始下载可执行文件。
首先将可执行文件保存在适当的目录中(假设保存在$HOME目录中)。
然后将文件名更改为pluralith。
$ mv pluralith_cli_amd64_v0.2.2.exe pluralith
然后,将其复制到 /usr/local/bin。
$ sudo cp pluralith /usr/local/bin
授予执行权限。
$ chmod +x /usr/local/bin/pluralith
进行到这一步后,就可以执行命令,试试运行 version 命令。首次运行时,会执行 Graph Module 的安装。
$ pluralith version
会显示如下输出。
_
|_)| _ _ |._|_|_
| ||_|| (_||| | | |
→ CLI Version: 0.2.2
→ Graph Module Version: 0.2.1
以上,安装完成!
请参阅
- https://docs.pluralith.com/docs/get-started/run-locally/
安装配置
逐步进行本地执行设置。
首先,登录到Pluralith。API密钥可以在下载执行文件的页面中央找到,使用该值。
$ pluralith login --api-key {YOUR_PLURALITH_API_KEY}
成功登录后,将显示以下输出。
_
|_)| _ _ |._|_|_
| ||_|| (_||| | | |
Welcome to Pluralith!
✔ API key is valid, you are authenticated!
执行
写一段合适的 Terraform 代码。本次我们将创建一个 Azure 资源组,并在其中创建存储账户和容器。
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 3.50.0"
}
}
}
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "sample" {
name = "rg-pluralith-trial"
location = "Japan East"
}
resource "azurerm_storage_account" "sample" {
name = "stpluralithtrial"
resource_group_name = azurerm_resource_group.sample.name
location = azurerm_resource_group.sample.location
account_tier = "Standard"
account_replication_type = "LRS"
}
resource "azurerm_storage_container" "sample" {
name = "pluralith"
storage_account_name = azurerm_storage_account.sample.name
container_access_type = "container"
}
当你写完代码后,运行以下命令以完成准备工作。
$ terraform init
尝试使用Pluralith创建构成图。
$ pluralith graph
⠿ Initiating Graph ⇢ Posting Diagram To Pluralith Dashboard
→ Authentication
✔ API key is valid, you are authenticated!
→ Plan
✔ Local Execution Plan Generated
✔ Local Plan Cache Created
✔ Secrets Stripped
- Cost Calculation Skipped
→ Graph
✔ Local Diagram Generated
✔ Diagram Posted To Pluralith Dashboard
→ Diagram Pushed To: https://app.pluralith.com/#/orgs/********/projects/pluralith-local-project/runs/********/
当执行完成时,浏览器将自动启动,并打开结果中的链接。具体如下所示。
存储账户的容器显示在资源组之外,感觉有点奇怪,但配置图还挺好的!说明也写在屏幕左下角,这次都是新建的,所以显示为”Created”。当配置更复杂的时候,可以很容易看出哪些是新建的或者更新的,这真的很方便。
所以
我使用Pluralith从Terraform的代码中创建了一个配置图。
起初,我尝试在Windows 11 + WSL2(Ubuntu 22.04)上运行,但是在Pluralith上使用Terraform命令时出现了无法执行的错误,并且我不知道解决方法,所以我只好在Mac上尝试了一下。
以下是错误的具体内容。如果你遇到过类似的错误并成功解决,欢迎留下评论。PATH 看起来没问题…
⠿ Initiating Graph ⇢ Posting Diagram To Pluralith Dashboard
→ Authentication
✔ API key is valid, you are authenticated!
→ Plan
✘ Couldn't Generate Local Execution Plan
running terraform plan failed -> GenerateGraph: RunPlan: exec: "terraform": executable file not found in %PATH%
$ which terraform
/usr/bin/terraform
$ which pluralith
/usr/local/bin/pluralith
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Program Files (x86)/Microsoft SDKs/Azure/CLI2/wbin
就是这样。