Commit b7766a2d authored by Vladimir Bashkirtsev's avatar Vladimir Bashkirtsev

Initial commit

parents
all: mender.conf mender-service
mkdir -p ../go/go/src/github.com/mendersoftware
tar xf mender-1.5.0.tar.gz -C ../go/go/src/github.com/mendersoftware
mv ../go/go/src/github.com/mendersoftware/mender-1.5.0 ../go/go/src/github.com/mendersoftware/mender
cd ../go/go/src/github.com/mendersoftware/mender && ../../../../bin/go build -ldflags "-X main.Version=1.5.0"
mv ../go/go/src/github.com/mendersoftware/mender/mender /usr/bin/mender
mkdir /etc/mender
@echo "$$MENDER_CONF" > /etc/mender/mender.conf
touch /etc/mender/tenant.conf
cp -r /build/packages/artifactscripts /etc/mender
chmod +x /etc/mender/artifactscripts/*
mv server.crt /etc/mender/server.crt
mkdir -p /usr/share/mender/identity
cp mender-device-identity /usr/share/mender/identity
chmod +x /usr/share/mender/identity/*
mkdir -p /usr/share/mender/inventory
cp mender-inventory-* /usr/share/mender/inventory
chmod +x /usr/share/mender/inventory/*
@echo "artifact_name=$(ARTIFACT_NAME)-$(BUILD_ID)" > /etc/mender/artifact_info
mkdir -p -m 700 /var/lib/mender
@echo "device_type=$(DEVICE_TYPE)" > /var/lib/mender/device_type
@echo "$$MENDER_SERVICE" > /lib/systemd/system/mender.service
ln -s /lib/systemd/system/mender.service /etc/systemd/system/multi-user.target.wants/mender.service
rm -rf ../go/go/src/github.com/mendersoftware
mender.conf:
define MENDER_CONF
{
"ClientProtocol": "http",
"HttpsClient": {
"Certificate": "",
"Key": ""
},
"RootfsPartA": "/dev/$(DISK)2",
"RootfsPartB": "/dev/$(DISK)3",
"UpdatePollIntervalSeconds": 1800,
"InventoryPollIntervalSeconds": 1800,
"RetryPollIntervalSeconds": 300,
"StateScriptTimeoutSeconds": 60,
"ArtifactVerifyKey": "/etc/mender/verify.key",
"ServerCertificate": "/etc/mender/server.crt",
"ServerURL": "https://$(MENDER_HOST)"
}
endef
export MENDER_CONF
mender-service:
define MENDER_SERVICE
[Unit]
Description=Mender OTA update service
After=network-online.target
Wants=network-online.target
[Service]
Type=idle
User=root
Group=root
ExecStartPre=/bin/mkdir -p -m 700 /var/lib/mender
ExecStartPre=/bin/ln -sf /etc/mender/tenant.conf /var/lib/mender/authtentoken
ExecStart=/usr/bin/mender -daemon
Restart=on-abort
[Install]
WantedBy=multi-user.target
endef
export MENDER_SERVICE
#!/bin/sh
# Example script called by Mender agent to collect device identity data. The
# script needs to be located at
# $(datadir)/mender/identity/mender-device-identity path for the agent to find
# it. 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 identity data in <key>=<value> format, one
# entry per line. Example
#
# $ ./mender-device-identity
# mac=de:ad:ca:fe:00:01
# cpuid=1112233
#
# The example script collects the MAC address of a network interface
# with the lowest ifindex, other than the loopback device 'lo'. The
# identity data is output in the following format:
#
# mac=00:01:02:03:04:05
#
set -ue
if [ -f /proc/device-tree/serial-number ]; then
echo "board_serial=$(cat /proc/device-tree/serial-number | tr -d '\0')"
elif [ -f /sys/class/dmi/id/product_uuid ] ; then
echo "product_uuid=$(cat /sys/class/dmi/id/product_uuid | tr -d '\0')"
else
SCN=/sys/class/net
min=65535
ifdev=
# find iface with lowest ifindex, except loopback
for dev in $SCN/*; do
if [ $dev = "$SCN/lo" ]; then
continue
fi
idx=$(cat $dev/ifindex)
if [ $idx -lt $min ]; then
min=$idx
ifdev=$dev
fi
done
if [ -z "$ifdev" ]; then
echo "no suitable interfaces found" >&2
exit 1
else
echo "mac=$(cat $ifdev/address)"
fi
fi
deviceid=`deviceid`
echo "deviceid=$deviceid"
#!/bin/sh
#
# The example script collects information about current host
#
set -ue
LC_ALL=C
export LC_ALL
grep 'model name' /proc/cpuinfo | uniq | awk -F': ' '
// { printf("cpu_model=%s\n", $2);}
'
echo "kernel=$(cat /proc/version)"
cat /proc/meminfo | awk '
/MemTotal/ {printf("mem_total_kB=%d\n", $2)}
'
echo "hostname=$(cat /etc/hostname)"
#!/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
etc
/etc/mender/.*
/var/lib/mender/.*
bin
/lib/systemd/system/.*
/usr/share/mender/.*
/usr/bin/.*
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment