94 lines
2.3 KiB
YAML
94 lines
2.3 KiB
YAML
---
|
|
- name: Install the rns package
|
|
ansible.builtin.pip:
|
|
name: rns
|
|
state: present
|
|
break_system_packages: yes
|
|
|
|
- name: Install the lxmf package
|
|
ansible.builtin.pip:
|
|
name: lxmf
|
|
state: present
|
|
break_system_packages: yes
|
|
|
|
- name: Install the nomadnet package
|
|
ansible.builtin.pip:
|
|
name: nomadnet
|
|
state: present
|
|
break_system_packages: yes
|
|
|
|
- name: Create systemd service for rns
|
|
copy:
|
|
dest: /etc/systemd/system/rns.service
|
|
content: |
|
|
[Unit]
|
|
Description=Reticulum Network Stack Daemon
|
|
After=multi-user.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
Restart=always
|
|
RestartSec=3
|
|
User=root
|
|
ExecStart=rnsd --service
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
|
|
- name: Reload systemd
|
|
systemd:
|
|
daemon_reload: yes
|
|
|
|
- name: Ensure rns service is configured
|
|
systemd:
|
|
name: rns.service
|
|
enabled: yes
|
|
state: stopped
|
|
|
|
- name: Ensure Reticulum config directory exists
|
|
file:
|
|
path: /root/.reticulum
|
|
state: directory
|
|
mode: "0755"
|
|
|
|
- name: Deploy rns configuration file (using block for friendly file updates)
|
|
copy:
|
|
dest: /root/.reticulum/config
|
|
content: |
|
|
[reticulum]
|
|
enable_transport = Yes
|
|
share_instance = Yes
|
|
instance_name = {{ansible_hostname}}
|
|
discover_interfaces = Yes
|
|
panic_on_interface_error = No
|
|
respond_to_probes = Yes
|
|
|
|
[logging]
|
|
loglevel = 6
|
|
|
|
[interfaces]
|
|
|
|
[[Default Interface]]
|
|
type = AutoInterface
|
|
enabled = Yes
|
|
{% for key, radio in radios.items() %}
|
|
|
|
[[RNode LoRa {{radio.name}}]]
|
|
type = RNodeInterface
|
|
enabled = {{ radio.enabled | default('yes') }}
|
|
port = {{ radio.serialpath | default('/dev/ttyACM0') }}
|
|
frequency = {{ radio.frequency | default(915000000) }}
|
|
bandwidth = {{ radio.bandwidth | default(125000) }}
|
|
txpower = {{ radio.txpower | default(7) }}
|
|
spreadingfactor = {{ radio.spreadingfactor | default(8) }}
|
|
codingrate = {{ radio.codingrate | default(5) }}
|
|
id_callsign = {{ radio.name | default(key) }}
|
|
id_interval = {{ radio.id_interval | default(600) }}
|
|
{% endfor %}
|
|
|
|
- name: Start rns service after config update
|
|
systemd:
|
|
name: rns.service
|
|
enabled: yes
|
|
state: started
|