File tree Expand file tree Collapse file tree 4 files changed +89
-12
lines changed
Expand file tree Collapse file tree 4 files changed +89
-12
lines changed Original file line number Diff line number Diff line change 1+ terraform {
2+ required_version = " >= 1.8.0"
3+
4+ required_providers {
5+ routeros = {
6+ source = " terraform-routeros/routeros"
7+ version = " 1.81.1"
8+ }
9+ }
10+ }
11+
12+ locals {
13+ cidr = " ${ var . cidr_prefix } /${ var . cidr_bits } "
14+ }
15+
16+ variable "interface" {
17+ type = string
18+ }
19+
20+ variable "cidr_prefix" {
21+ type = string
22+ }
23+
24+ variable "cidr_bits" {
25+ type = number
26+ default = 24
27+ }
28+
29+ variable "dhcp_start_ip" {
30+ type = number
31+ default = 200
32+ }
33+
34+ variable "dhcp_end_ip" {
35+ type = number
36+ default = 254
37+ }
38+
39+ variable "dhcp_lease_time" {
40+ type = string
41+ default = " 1d"
42+ }
43+
44+ resource "routeros_ip_pool" "self" {
45+ name = var. interface
46+ ranges = [" ${ cidrhost (local. cidr , var. dhcp_start_ip )} -${ cidrhost (local. cidr , var. dhcp_end_ip )} " ]
47+ }
48+
49+ resource "routeros_ip_dhcp_server" "self" {
50+ name = var. interface
51+ interface = var. interface
52+ lease_time = var. dhcp_lease_time
53+ address_pool = routeros_ip_pool. self . name
54+ }
55+
56+ resource "routeros_ip_dhcp_server_network" "self" {
57+ address = local. cidr
58+ }
Original file line number Diff line number Diff line change @@ -2,12 +2,18 @@ variable "bridge_name" {
22 type = string
33}
44
5- variable "oob_mgmt_port " {
5+ variable "oob_mgmt_interface " {
66 type = string
77}
88
9- variable "oob_mgmt_address" {
10- type = string
9+ variable "oob_mgmt_cidr_prefix" {
10+ type = string
11+ default = " 192.168.88.0"
12+ }
13+
14+ variable "oob_mgmt_cidr_bits" {
15+ type = number
16+ default = 24
1117}
1218
1319variable "mgmt_vlan_id" {
Original file line number Diff line number Diff line change 1+ # TODO: set router identity
2+ # TODO: import SSH keys
13# TODO: add dhcp-server on management subnet
24# TODO: add dhcp-client on admin vlan
35# TODO: implement VRF for services
46
7+ locals {
8+ oob_mgmt_cidr = " ${ var . oob_mgmt_cidr_prefix } /${ var . oob_mgmt_cidr_bits } "
9+ }
10+
511resource "routeros_interface_list" "admin" {
612 name = " admin-ifces"
713}
814
9- resource "routeros_interface_list_member" "admin_port " {
15+ resource "routeros_interface_list_member" "admin_interface " {
1016 list = routeros_interface_list. admin . name
11- interface = var. oob_mgmt_port
17+ interface = var. oob_mgmt_interface
1218}
1319
1420resource "routeros_interface_list_member" "admin_vlan" {
@@ -22,7 +28,15 @@ resource "routeros_interface_vlan" "admin" {
2228 vlan_id = var. mgmt_vlan_id
2329}
2430
25- resource "routeros_ip_address" "admin" {
26- interface = var. oob_mgmt_port
27- address = var. oob_mgmt_address
31+ resource "routeros_ip_address" "oob" {
32+ interface = var. oob_mgmt_interface
33+ address = " ${ cidrhost (local. oob_mgmt_cidr , 1 )} /${ var . oob_mgmt_cidr_bits } "
34+ }
35+
36+ module "oob_dhcp" {
37+ source = " ../ros-dhcp"
38+
39+ interface = var. oob_mgmt_interface
40+ cidr_prefix = var. oob_mgmt_cidr_prefix
41+ cidr_bits = var. oob_mgmt_cidr_bits
2842}
Original file line number Diff line number Diff line change @@ -63,10 +63,9 @@ module "crs320_management_config" {
6363
6464 source = " ../../modules/ros-management-config"
6565
66- bridge_name = module. crs320_bridge . bridge_name
67- mgmt_vlan_id = 99
68- oob_mgmt_address = " 192.168.88.1/24"
69- oob_mgmt_port = " ether17"
66+ bridge_name = module. crs320_bridge . bridge_name
67+ mgmt_vlan_id = 99
68+ oob_mgmt_interface = " ether17"
7069}
7170
7271output "debug" {
You can’t perform that action at this time.
0 commit comments