MakerFLOSS_Mikrotik/host_vars/crs310-maker.yml
sjat 4dc335321d feat(users): add lars as a switch operator
RSA key lars@hrossen.dk, taken from his VPS authorized_keys and confirmed
identical to the key on his forgejo.makerfloss.eu account, so this is the
same identity he already uses across MakerFLOSS. Group full, vaulted
password like the other operators.

NOT yet applied to the device: mamba's wired link currently lands on
10.0.0.118/24 (gateway 10.0.0.1), not the CRS310 mgmt VLAN, so 192.168.88.1
is unreachable. Lint, syntax-check and the operator list are verified; the
run-twice check is owed once the cable is back in ether8.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EyYJWABgSEHzbjsZGrkxVE
2026-09-01 21:35:41 +02:00

84 lines
3.7 KiB
YAML

---
# Device facts (recorded on-site 2026-06-08):
# model: CRS310-8G+2S+IN
# serial: HM40B8TDNDD
# base MAC (ether1): D0:EA:11:24:F4:AA
# RouterOS: 7.19.6 stable (bootloader already current) -> pinned target below
#
# Topology (decided 2026-06-09, see docs/superpowers/specs/
# 2026-06-09-crs310-flat-mgmtvlan-design.md): the switch is a FLAT L2 switch on the
# makerspace 10.2.30.0/24 network with its management isolated on a dedicated VLAN.
# - ether1 is the copper UPLINK (SFP+ deferred until connectors arrive).
# - DATA VLAN 30: flat 10.2.30.0/24 bridged through; the switch does NO routing/DHCP
# and the CPU is not a member (no switch presence on the user network).
# - MGMT VLAN 99: isolated; switch mgmt IP 192.168.88.1/24 on vlan-mgmt, reachable
# only from the dedicated mgmt port ether8. No gateway, no NTP/DNS (no internet).
# Day-2 connection: key auth as the named admin user (overrides the bootstrap
# default ansible_user=admin in group_vars/mikrotik.yml).
ansible_user: sjat
switch_identity_name: "crs310-maker"
# ----- Management (isolated VLAN 99) -----
switch_mgmt_vlan_id: 99
switch_mgmt_address: "192.168.88.1/24"
switch_mgmt_gateway: "" # isolated mgmt -> no default route
switch_dns_servers: "" # no DNS on an isolated mgmt plane
switch_ntp_enabled: false # no internet on mgmt -> NTP would only error
# Makerspace experiment: make the mgmt port low-friction. Serve DHCP on the mgmt VLAN
# and enable the web UI so anyone plugging into ether8 can reach the admin (still a
# login; default `admin` stays disabled). mamba keeps its static .2 (outside the pool).
switch_web_enabled: true
switch_disabled_services: # same as the role default but WITHOUT www (web UI on)
- telnet
- ftp
- www-ssl
- api
- api-ssl
switch_mgmt_dhcp_enabled: true
switch_mgmt_dhcp_pool: "192.168.88.10-192.168.88.254"
switch_mgmt_dhcp_network: "192.168.88.0/24"
switch_admin_user: "sjat"
# ----- Operators (day-2 source of truth) -----
# One entry per person; `pubkey_files` are the seats allowed to log in as that user.
# Adding a person = add an entry + their .pub + a vault_operator_passwords entry,
# then `ansible-playbook play_switch.yml --tags users` (twice).
switch_operators:
- name: "sjat" # operator; seats: mamba + ubongo/claude
group: "full"
pubkey_files:
- "files/operators/sjat-mamba.pub"
- "files/operators/claude-ubongo.pub"
- name: "claus" # added 2026-09-01
group: "full"
pubkey_files:
- "files/operators/claus-stjerno.pub"
- name: "lars" # added 2026-09-01
group: "full"
pubkey_files:
- "files/operators/lars-hrossen.pub"
# ----- VLANs + per-port map (all untagged access; no trunks) -----
# DATA = flat 10.2.30.0/24 (uplink + device ports); MGMT = isolated admin VLAN.
switch_vlans:
- {id: 30, name: "data"}
- {id: 99, name: "mgmt"}
switch_bridge_ports:
- {interface: "ether1", pvid: 30, mode: access} # copper uplink
- {interface: "ether2", pvid: 30, mode: access}
- {interface: "ether3", pvid: 30, mode: access}
- {interface: "ether4", pvid: 30, mode: access}
- {interface: "ether5", pvid: 30, mode: access}
- {interface: "ether6", pvid: 30, mode: access}
- {interface: "ether7", pvid: 30, mode: access}
- {interface: "sfp-sfpplus1", pvid: 30, mode: access}
- {interface: "sfp-sfpplus2", pvid: 30, mode: access}
- {interface: "ether8", pvid: 99, mode: access} # dedicated mgmt port
# Firmware: pinned at the version already installed (no upgrade planned now).
switch_firmware_target: "7.19.6"
# switch_firmware_enabled: true # opt-in only when you actually want to upgrade