Add Ansible playbooks for MeshCore monitoring node deployment
Roles: base (apt, tailscale, motd), meshcore_cli (pipx), meshcore_capture (agessaman/meshcore-packet-capture + .env.local template), scripts (voltage, bandwidth). Host vars contain per-device serial ports; group vars hold shared MQTT broker config. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
---
|
||||
- name: restart meshcore-capture
|
||||
systemd:
|
||||
name: meshcore-capture
|
||||
state: restarted
|
||||
become: true
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
- name: Run meshcore-packet-capture install script
|
||||
shell: |
|
||||
bash <(curl -fsSL https://raw.githubusercontent.com/agessaman/meshcore-packet-capture/main/install.sh)
|
||||
args:
|
||||
executable: /bin/bash
|
||||
creates: /etc/systemd/system/meshcore-capture.service
|
||||
become: false
|
||||
|
||||
- name: Write .env.local config
|
||||
template:
|
||||
src: env.local.j2
|
||||
dest: "{{ ansible_env.HOME }}/.meshcore-packet-capture/.env.local"
|
||||
mode: "0640"
|
||||
become: false
|
||||
notify: restart meshcore-capture
|
||||
|
||||
- name: Enable and start meshcore-capture service
|
||||
systemd:
|
||||
name: meshcore-capture
|
||||
enabled: true
|
||||
state: started
|
||||
daemon_reload: true
|
||||
become: true
|
||||
|
||||
- name: Deploy meshcore-capture-update script
|
||||
copy:
|
||||
content: "#!/usr/bin/env bash\nbash <(curl -fsSL https://raw.githubusercontent.com/agessaman/meshcore-packet-capture/main/install.sh)\n"
|
||||
dest: "{{ ansible_env.HOME }}/meshcore-capture-update.sh"
|
||||
mode: "0755"
|
||||
become: false
|
||||
|
||||
- name: Deploy meshcore-capture-logs script
|
||||
copy:
|
||||
content: "#!/usr/bin/env bash\nsudo journalctl -u meshcore-capture -f\n"
|
||||
dest: "{{ ansible_env.HOME }}/meshcore-capture-logs.sh"
|
||||
mode: "0755"
|
||||
become: false
|
||||
@@ -0,0 +1,77 @@
|
||||
# MeshCore Packet Capture Configuration
|
||||
# Managed by Ansible - local changes will be overwritten on next playbook run
|
||||
|
||||
# Update source
|
||||
PACKETCAPTURE_UPDATE_REPO={{ packetcapture_update_repo }}
|
||||
PACKETCAPTURE_UPDATE_BRANCH={{ packetcapture_update_branch }}
|
||||
|
||||
# Connection Configuration
|
||||
PACKETCAPTURE_CONNECTION_TYPE=serial
|
||||
PACKETCAPTURE_SERIAL_PORTS={{ serial_port }}
|
||||
|
||||
# Location Code
|
||||
PACKETCAPTURE_IATA={{ packetcapture_iata }}
|
||||
|
||||
# Advert Settings
|
||||
PACKETCAPTURE_ADVERT_INTERVAL_HOURS={{ packetcapture_advert_interval_hours }}
|
||||
|
||||
# Logging Settings
|
||||
PACKETCAPTURE_LOG_LEVEL={{ packetcapture_log_level }}
|
||||
PACKETCAPTURE_OWNER_PUBLIC_KEY={{ packetcapture_owner_public_key }}
|
||||
PACKETCAPTURE_OWNER_EMAIL={{ packetcapture_owner_email }}
|
||||
|
||||
# MQTT Broker 1 - LetsMesh.net Packet Analyzer (US)
|
||||
PACKETCAPTURE_MQTT1_ENABLED=true
|
||||
PACKETCAPTURE_MQTT1_SERVER=mqtt-us-v1.letsmesh.net
|
||||
PACKETCAPTURE_MQTT1_PORT=443
|
||||
PACKETCAPTURE_MQTT1_TRANSPORT=websockets
|
||||
PACKETCAPTURE_MQTT1_USE_TLS=true
|
||||
PACKETCAPTURE_MQTT1_USE_AUTH_TOKEN=true
|
||||
PACKETCAPTURE_MQTT1_TOKEN_AUDIENCE=mqtt-us-v1.letsmesh.net
|
||||
PACKETCAPTURE_MQTT1_KEEPALIVE=120
|
||||
PACKETCAPTURE_MQTT1_TOPIC_STATUS=meshcore/{IATA}/{PUBLIC_KEY}/status
|
||||
PACKETCAPTURE_MQTT1_TOPIC_PACKETS=meshcore/{IATA}/{PUBLIC_KEY}/packets
|
||||
|
||||
# MQTT Broker 2 - LetsMesh.net Packet Analyzer (EU)
|
||||
PACKETCAPTURE_MQTT2_ENABLED=true
|
||||
PACKETCAPTURE_MQTT2_SERVER=mqtt-eu-v1.letsmesh.net
|
||||
PACKETCAPTURE_MQTT2_PORT=443
|
||||
PACKETCAPTURE_MQTT2_TRANSPORT=websockets
|
||||
PACKETCAPTURE_MQTT2_USE_TLS=true
|
||||
PACKETCAPTURE_MQTT2_USE_AUTH_TOKEN=true
|
||||
PACKETCAPTURE_MQTT2_TOKEN_AUDIENCE=mqtt-eu-v1.letsmesh.net
|
||||
PACKETCAPTURE_MQTT2_KEEPALIVE=120
|
||||
PACKETCAPTURE_MQTT2_TOPIC_STATUS=meshcore/{IATA}/{PUBLIC_KEY}/status
|
||||
PACKETCAPTURE_MQTT2_TOPIC_PACKETS=meshcore/{IATA}/{PUBLIC_KEY}/packets
|
||||
|
||||
# MQTT Broker 3 - MeshRank
|
||||
PACKETCAPTURE_MQTT3_ENABLED=true
|
||||
PACKETCAPTURE_MQTT3_SERVER=meshrank.net
|
||||
PACKETCAPTURE_MQTT3_PORT=8883
|
||||
PACKETCAPTURE_MQTT3_TRANSPORT=tcp
|
||||
PACKETCAPTURE_MQTT3_USE_TLS=true
|
||||
PACKETCAPTURE_MQTT3_TLS_VERIFY=true
|
||||
PACKETCAPTURE_MQTT3_TOPIC_PACKETS=meshrank/uplink/{{ mqtt_meshrank_token }}/{PUBLIC_KEY}/packets
|
||||
PACKETCAPTURE_MQTT3_TOPIC_STATUS=meshrank/uplink/{{ mqtt_meshrank_token }}/{PUBLIC_KEY}/status
|
||||
|
||||
# MQTT Broker 4 - UKMesh
|
||||
PACKETCAPTURE_MQTT4_ENABLED=true
|
||||
PACKETCAPTURE_MQTT4_SERVER=mqtt.ukmesh.com
|
||||
PACKETCAPTURE_MQTT4_PORT=443
|
||||
PACKETCAPTURE_MQTT4_TRANSPORT=websockets
|
||||
PACKETCAPTURE_MQTT4_USE_TLS=true
|
||||
PACKETCAPTURE_MQTT4_USERNAME={{ mqtt_ukmesh_username }}
|
||||
PACKETCAPTURE_MQTT4_PASSWORD={{ mqtt_ukmesh_password }}
|
||||
PACKETCAPTURE_MQTT4_TOPIC_STATUS=meshcore/{IATA}/{PUBLIC_KEY}/status
|
||||
PACKETCAPTURE_MQTT4_TOPIC_PACKETS=meshcore/{IATA}/{PUBLIC_KEY}/packets
|
||||
|
||||
# MQTT Broker 5 - MeshMapper
|
||||
PACKETCAPTURE_MQTT5_ENABLED=true
|
||||
PACKETCAPTURE_MQTT5_SERVER=mqtt.meshmapper.cc
|
||||
PACKETCAPTURE_MQTT5_PORT=443
|
||||
PACKETCAPTURE_MQTT5_TRANSPORT=websockets
|
||||
PACKETCAPTURE_MQTT5_USE_TLS=true
|
||||
PACKETCAPTURE_MQTT5_USE_AUTH_TOKEN=true
|
||||
PACKETCAPTURE_MQTT5_TOKEN_AUDIENCE=mqtt.meshmapper.cc
|
||||
PACKETCAPTURE_MQTT5_TOPIC_STATUS=meshcore/{IATA}/{PUBLIC_KEY}/status
|
||||
PACKETCAPTURE_MQTT5_TOPIC_PACKETS=meshcore/{IATA}/{PUBLIC_KEY}/packets
|
||||
Reference in New Issue
Block a user