
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Terraboard 是一个用于可视化和查询 Terraform 状态的 Web 仪表板。它主要功能包括:
目前支持多种远程状态后端提供程序:
概览页面按最近修改日期显示 S3 存储桶中的所有状态文件。
搜索视图允许通过各种条件查找资源。
状态视图显示特定版本的 Terraform 状态详情。
从状态视图中,可以将当前状态版本与其他版本进行比较。
无论状态文件的位置如何,Terraboard 都需要存储其内部数据集,因此需要 PostgreSQL 数据库。不过数据弹性并非至关重要,因为该数据集可随时从状态文件重建。
AWS S3(状态)+ DynamoDB(锁)
.tfstate 为后缀的 Terraform 状态文件s3:GetObjects3:ListBuckets3:ListBucketVersionss3:GetObjectVersiondynamodb:Scan 访问权限Terraform Cloud
Terraboard 目前支持三种配置方式:
配置优先级按上述顺序排列。
应用选项
-V, --version:显示版本-c, --config-file <默认:$CONFIG_FILE>:配置文件路径
通用提供程序选项
--no-versioning <默认:$TERRABOARD_NO_VERSIONING>:禁用 Terraboard 的版本控制支持(适用于 MinIO 等 S3 兼容提供程序)
--no-locks <默认:$TERRABOARD_NO_LOCKS>:禁用 Terraboard 的锁支持(适用于 MinIO 等 S3 兼容提供程序)
日志选项
-l, --log-level <默认:"info">:设置日志级别('debug'、'info'、'warn'、'error'、'fatal'、'panic')
--log-format <默认:"plain">:设置日志格式('plain'、'json')
数据库选项
--db-host <默认:"db">:数据库主机
--db-port <默认:"5432">:数据库端口
--db-user <默认:"gorm">:数据库用户
--db-password <默认:$DB_PASSWORD>:数据库密码
--db-name <默认:"gorm">:数据库名称
--db-sslmode <默认:"require">:数据库 SSL 模式
--no-sync:不同步数据库
--sync-interval <默认:"1">:数据库同步间隔(分钟)
AWS(及 S3 兼容提供程序)选项
--dynamodb-table <默认:$AWS_DYNAMODB_TABLE>:用于锁的 AWS DynamoDB 表
--aws-endpoint <默认:$AWS_ENDPOINT>:AWS 端点
--aws-region <默认:$AWS_REGION>:AWS 区域
--aws-role-arn <默认:$APP_ROLE_ARN>:要承担的角色 ARN
--aws-external-id <默认:$AWS_EXTERNAL_ID>:承担角色时使用的外部 ID
S3 选项
--s3-bucket <默认:$AWS_BUCKET>:AWS S3 存储桶
--key-prefix <默认:$AWS_KEY_PREFIX>:AWS 键前缀
--file-extension <默认:".tfstate">:状态文件的文件扩展名
--force-path-style <默认:$AWS_FORCE_PATH_STYLE>:强制路径样式 S3 存储桶调用
Terraform Enterprise 选项
--tfe-address <默认:$TFE_ADDRESS>:用于状态访问的 Terraform Enterprise 地址
--tfe-token <默认:$TFE_TOKEN>:用于状态访问的 Terraform Enterprise 令牌
--tfe-organization <默认:$TFE_ORGANIZATION>:用于状态访问的 Terraform Enterprise 组织
Google Cloud Platform 选项
--gcs-bucket:要搜索的 Google Cloud 存储桶
--gcp-sa-key-path <默认:$GCP_SA_KEY_PATH>:用于连接 Google Cloud Platform 的服务账户路径
GitLab 选项
--gitlab-address <默认:"[**]"*>:GitLab 地址(根地址)
--gitlab-token <默认:$GITLAB_TOKEN>:用于 GitLab 认证的令牌
Web 选项
-p, --port <默认:"8080">:监听端口
--base-url <默认:"/">:基础 URL
--logout-url <默认:$TERRABOARD_LOGOUT_URL>:登出 URL
帮助选项
-h, --help:显示帮助信息可通过 卷 或 配置 向容器提供配置文件。
shell# 将 AWS 凭证设置为环境变量: export AWS_ACCESS_KEY_ID=<access_key> export AWS_SECRET_ACCESS_KEY=<access_secret> # 将 AWS 配置设置为环境变量: export AWS_DEFAULT_REGION=<AWS 默认区域> export AWS_BUCKET=<S3 存储桶名称> export AWS_DYNAMODB_TABLE=<AWS DynamoDB 表> docker-compose up
然后在浏览器中访问 http://localhost:8080。
shell# 将 AWS 凭证设置为环境变量: export AWS_ACCESS_KEY_ID=<access_key> export AWS_SECRET_ACCESS_KEY=<access_secret> # 将 AWS 配置设置为环境变量: export AWS_DEFAULT_REGION=<AWS 默认区域> export AWS_BUCKET=<S3 存储桶名称> export AWS_DYNAMODB_TABLE=<AWS_DYNAMODB_TABLE> # 创建网络并启动两个容器: docker network create terraboard docker run --name db \ -e POSTGRES_USER=gorm \ -e POSTGRES_DB=gorm \ -e POSTGRES_PASSWORD="<mypassword>" \ -e GODEBUG="netdns=go" \ --net terraboard \ --detach \ --restart=always \ postgres:9.5 docker run -p 8080:8080 \ -e AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY_ID}" \ -e AWS_SECRET_ACCESS_KEY="${AWS_SECRET_ACCESS_KEY}" \ -e AWS_REGION="${AWS_DEFAULT_REGION}" \ -e AWS_BUCKET="${AWS_BUCKET}" \ -e WS_DYNAMODB_TABLE="${AWS_DYNAMODB_TABLE}" \ -e DB_PASSWORD="<mypassword>" \ -e DB_SSLMODE="disable" \ --net terraboard \ camptocamp/terraboard:latest
然后在浏览器中访问 http://localhost:8080。
https://github.com/camptocamp/camptocamp-rancher-catalog 包含 Terraboard 模板,可在 Cattle 中自动安装。
Terraboard 不实现认证。建议使用如 https://github.com/bitly/oauth2_proxy 之类的认证代理。
如果需要为 Terraboard 设置路由路径,可以通过 BASE_URL 环境变量设置基础 URL。
使用认证代理时,Terraboard 将从代理传递的标头中检索登录用户和电子邮件。还可以传递 TERRABOARD_LOGOUT_URL 参数,允许用户退出代理。
shell$ go get github.com/camptocamp/terraboard
| Terraboard 版本 | 最大 Terraform 版本 |
|---|---|
| 0.15.0 | 0.12.7 |
| 0.16.0 | 0.12.7 |
| 0.17.0 | 0.12.18 |
| 0.18.0 | 0.12.18 |
| 0.19.0 | 0.12.20 |
| 0.20.0 | 0.12.26 |
| 0.21.0 | 0.12.28 |
| 0.22.0 | 0.13.0 |
| 1.0.0 | 0.14.5 |
| 1.1.0 | 0.14.10 |
Terraboard 由两个组件组成:
服务器进程
服务器用 Go 编写,运行一个 Web 服务器,提供:
服务器还有一个定期(每 1 分钟)从 S3 存储桶更新 PostgreSQL 数据库的例程。
Web UI
UI 是一个 AngularJS 应用,从 index.html 提供。所有 UI 代码可在 static/ 目录中找到。
shell$ docker-compose build && docker-compose up -d # 在浏览器中访问 http://localhost
参见 CONTRIBUTING.md
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务