|
@@ -0,0 +1,47 @@
|
|
|
|
+#!/bin/sh
|
|
|
|
+#
|
|
|
|
+# Example script called by Mender agent to collect inventory data for a
|
|
|
|
+# particular devce. The script needs to be located in $(datadir)/mender and its
|
|
|
|
+# name shall start with `mender-inventory-` prefix. The script shall exit with
|
|
|
|
+# non-0 status on errors. In this case the agent will discard any output the
|
|
|
|
+# script may have produced.
|
|
|
|
+#
|
|
|
|
+# The script shall output inventory data in <key>=<value> format, one entry per
|
|
|
|
+# line. Entries appearing multiple times will be joined in a list under the same
|
|
|
|
+# key.
|
|
|
|
+#
|
|
|
|
+# $ ./mender-inventory-network
|
|
|
|
+# mac_br-fbfdad18c33c=02:42:7e:74:96:85
|
|
|
|
+# network_interfaces=br-fbfdad18c33c
|
|
|
|
+# ipv4_br-fbfdad18c33c=172.21.0.1/16
|
|
|
|
+# mac_enp0s25=de:ad:be:ef:bb:05
|
|
|
|
+# network_interfaces=enp0s25
|
|
|
|
+# ipv4_enp0s25=123.22.0.197/16
|
|
|
|
+# ipv4_enp0s25=10.20.20.105/16
|
|
|
|
+# ipv6_enp0s25=fe80::2aad:beff:feef:bb05/64
|
|
|
|
+#
|
|
|
|
+#
|
|
|
|
+# The example script collects the list of network interfaces, as well as
|
|
|
|
+# ethernet and IP addresses of each of the interfaces.
|
|
|
|
+#
|
|
|
|
+
|
|
|
|
+set -ue
|
|
|
|
+
|
|
|
|
+SCN=/sys/class/net
|
|
|
|
+min=65535
|
|
|
|
+ifdev=
|
|
|
|
+
|
|
|
|
+# find iface with lowest ifindex, except loopback
|
|
|
|
+for devpath in $SCN/*; do
|
|
|
|
+ dev=$(basename $devpath)
|
|
|
|
+ if [ $dev = "lo" ]; then
|
|
|
|
+ continue
|
|
|
|
+ fi
|
|
|
|
+ echo "mac_$dev=$(cat $devpath/address)"
|
|
|
|
+ echo "network_interfaces=$dev"
|
|
|
|
+
|
|
|
|
+ ip addr show dev $dev | awk -v dev=$dev '
|
|
|
|
+ /inet / { printf("ipv4_%s=%s\n", dev, $2) }
|
|
|
|
+ /inet6 / {printf("ipv6_%s=%s\n", dev, $2) }
|
|
|
|
+ '
|
|
|
|
+done
|