尝试使用Pluralith将通过Terraform构建的配置呈现为图形

想做的事情

我在使用Terraform构建基础架构时发现,由于创建单独的配置图很麻烦,所以我想从State文件中自动创建是否有这样的工具。我进行了调查,并找到了一个名为Pluralith的工具,看起来很方便,所以我试着使用了一下。下面是我总结的使用步骤等内容。

多元化

可以从这个页面了解概要。这篇文章也参考了以下内容。

 

前提 tí)

在 Mac 上安装并输出配置图表。机器规格如下:
操作系统:Monterey 12.6.3
处理器:M1 Max
内存:32 GB

引入步骤

安装

由于使用Pluralith需要注册,因此请通过以下页面进行用户注册。

 

用户注册后,将显示一个选择 CI Setup和Local Setup的窗口。在这里,选择Local Setup。然后,应该会显示一个显示设置步骤的窗口,点击Download CLI将开始下载可执行文件。

image.png

首先将可执行文件保存在适当的目录中(假设保存在$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/********/

当执行完成时,浏览器将自动启动,并打开结果中的链接。具体如下所示。

image.png

存储账户的容器显示在资源组之外,感觉有点奇怪,但配置图还挺好的!说明也写在屏幕左下角,这次都是新建的,所以显示为”Created”。当配置更复杂的时候,可以很容易看出哪些是新建的或者更新的,这真的很方便。

image.png

所以

我使用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

就是这样。

广告
将在 10 秒后关闭
bannerAds