ebogdum/terraform-provider-routeros

GitHub: ebogdum/terraform-provider-routeros

一个覆盖全面的 MikroTik RouterOS 7.x Terraform Provider,通过 REST API 将数百个设备菜单映射为代码可管理的基础设施资源。

Stars: 2 | Forks: 0

# MikroTik RouterOS 7 的 Terraform Provider [![Terraform Registry](https://img.shields.io/badge/terraform-registry-7B42BC?logo=terraform&logoColor=white)](https://registry.terraform.io/providers/ebogdum/routeros/latest) [![License: MIT](https://img.shields.io/badge/license-MIT-blue)](LICENSE) [![Go Reference](https://pkg.go.dev/badge/github.com/ebogdum/terraform-provider-routeros.svg)](https://pkg.go.dev/github.com/ebogdum/terraform-provider-routeros) 使用 Terraform 以代码方式管理 MikroTik **RouterOS 7.x** 设备。完全覆盖每个设备菜单 —— **420 个菜单,182 个资源,276 个数据源,75 个操作,3289 个属性** —— 这些 schema 是针对真实路由器逐个属性进行验证而生成的。 只需单一的 Terraform 配置,即可管理一台 MikroTik 路由器或整个机群。以确定性的顺序应用防火墙规则,导入现有的设备状态,检测并纠正带外漂移,并通过插件框架的敏感值处理功能安全地传递 secrets。 ## 目录 - [为什么选择此 Provider](#why-this-provider) - [快速入门](#quick-start) - [多路由器机群管理](#multi-router-fleet-management) - [覆盖范围](#coverage) - [安全防护](#safety-guards) - [漂移检测与协调](#drift-detection-and-reconciliation) - [资源、数据源和操作](#resources-data-sources-and-actions) - [身份验证与 TLS](#authentication-and-tls) - [开发](#development) - [发布流程](#release-process) - [发布历史](#release-history) - [许可证](#license) ## 为什么选择此 Provider | 功能 | 此 Provider | |---|---| | RouterOS API | REST (HTTPS) | | 菜单覆盖 | 420 个菜单(通过 REST 暴露的每个菜单) | | 资源 / 数据源 / 操作 | 182 / 276 / 75 | | 从单个 provider 块管理多路由器 | 是(具名 map,无需 provider 别名) | | 确定性防火墙排序 | 是(`position` 整数;在销毁/重建期间保持稳定) | | 锁定安全防护 | 防火墙、用户、user-group、mac-server | | 敏感字段脱敏 | 28 个属性标记为敏感 | | 带外漂移检测 | 是(经过端到端验证) | | Terraform 导入 | 是(`/<.id>` 格式) | | Schema 来源 | 真实设备 + WebFig skin 文件 + Confluence 文档 + 逐个属性的设备验证 | | 插件框架 | terraform-plugin-framework (v1.19.0) | | 最低 Terraform 版本 | 1.4 | | 最低 RouterOS 版本 | 7.1(需要 REST API) | ## 快速入门 ``` terraform { required_providers { routeros = { source = "ebogdum/routeros" version = "~> 1.0" } } } provider "routeros" { host = "https://192.0.2.1" username = "admin" password = var.routeros_password insecure = true # set to false in production with a real cert } resource "routeros_ip_address" "lan" { address = "192.168.88.1/24" interface = "bridge1" comment = "Managed by Terraform" } resource "routeros_ip_firewall_filter" "allow_established" { chain = "input" action = "accept" connection_state = "established,related" position = 100 comment = "Managed by Terraform" lockout_ack = true } ``` 执行 `terraform init && terraform apply` 即可完成。 ### 为本地开发安装 ``` # 1. 构建 provider 二进制文件 make build # 2. 告诉 Terraform 使用本地二进制文件而不是 registry cat > ~/.terraformrc <
标签:Docker 部署, ECS, EVTX分析, Go, MikroTik, RouterOS, Ruby工具, Terraform, 日志审计, 网络运维