commit | e566fd422f0e05e026036240189b89dd5266968e | [log] [tgz] |
---|---|---|
author | Tomáš Pecka <tomas.pecka@cesnet.cz> | Tue Jan 02 17:00:10 2024 +0100 |
committer | Tomáš Pecka <tomas.pecka@cesnet.cz> | Wed Jan 10 16:15:01 2024 +0100 |
tree | 6eb3d7af9feb61415d750cb743614ef9702c09fe | |
parent | 5a23d7d3d70a9cbb3e1a661fd95e4c52e89fa364 [diff] |
system: allow to configure remote journal upload We add a new capability that allows user to configure systemd-journal-upload service. When the /czechlight-system:journal-upload is present then its child leafs form a url that is used as a destination for journal upload. Velia writes into two environment files containing the DESTINATION=<url> variable where <url> is the value for --url option of systemd-journal-upload [1]. One file for both running and startup datastores. The systemd-journal-upload unit file should read both of these environment files (first the startup, second the running) and also it should not start unless at least one of these files exists. We need both of these files. systemd-journal-upload can start quite early during the system startup phase, definitely before velia or any sysrepo startup->running copying. In case velia fails to start for some reason we want these logs to be uploaded as well to know what prevented velia from start. Therefore we can't wait for velia to setup the env file and start the systemd-journal-upload service. [1] https://www.freedesktop.org/software/systemd/man/252/systemd-journal-upload.service.html Depends-on: https://gerrit.cesnet.cz/c/CzechLight/dependencies/+/6766 Change-Id: I0f77fc39af337fb4b350758e5c59117e3ea78a85
Together with sysrepo, this software provides "general system management" of embedded devices. The target platform is anything that runs Linux with systemd. This runs in production on CzechLight SDN DWDM devices.
This component tracks the overal health state of the system, including various sensors, or the state of systemd
units. As an operator-friendly LED at the front panel of the appliance shows the aggregated health state.
Firmware can be updated via RAUC, and various aspects of the system's configuration can be adjusted. This includes a firewall, basic network settings, and authentication management.
For a full list, consult the yang/
directory in this repository.
ietf-access-control-list
, RFC 8519 (with deviations)ietf-hardware
, RFC 8348ietf-system
, RFC 7317 (partial support)ietf-interfaces
, RFC 8343 (generating config for systemd-networkd
, with extensions)ietf-routing
, RFC 8349 (see above)czechlight-system
For building, one needs:
1.78
)pkg-config
libnl-route
for talking to the Linux kernellibsystemd
and systemd
at runtimelibyang-cpp
- C++ bindings for libyangsysrepo-cpp
- C++ bindings for sysrepospdlog
- a logging librarysdbus-c++
- C++ library for D-Busfmt
- C++ string formatting librarynlohmann_json
- C++ JSON librarydocopt
for CLI option parsingnft
- the netfilter tooliproute2
- the ip
tool for testingThe build process uses CMake. A quick-and-dirty build with no fancy options can be as simple as mkdir build && cd build && cmake .. && make && make install
.