From 88baa3f2459a5d32150048745003f4987b964be2 Mon Sep 17 00:00:00 2001 From: Corentin LABBE Date: Wed, 25 Oct 2017 12:15:18 +0200 Subject: import lava-slave --- lava-slave/Dockerfile | 58 +++++++++++++++++++++++++++++++++++++++++++ lava-slave/configs/lava-slave | 15 +++++++++++ lava-slave/configs/tftpd-hpa | 6 +++++ lava-slave/scripts/start.sh | 14 +++++++++++ lava-slave/scripts/stop.sh | 3 +++ 5 files changed, 96 insertions(+) create mode 100644 lava-slave/Dockerfile create mode 100644 lava-slave/configs/lava-slave create mode 100644 lava-slave/configs/tftpd-hpa create mode 100755 lava-slave/scripts/start.sh create mode 100755 lava-slave/scripts/stop.sh (limited to 'lava-slave') diff --git a/lava-slave/Dockerfile b/lava-slave/Dockerfile new file mode 100644 index 0000000..6aece71 --- /dev/null +++ b/lava-slave/Dockerfile @@ -0,0 +1,58 @@ +FROM bitnami/minideb:stretch + +RUN apt-get update + +# Add services helper utilities to start and stop LAVA +COPY scripts/stop.sh . +COPY scripts/start.sh . + +RUN \ + echo 'lava-server lava-server/instance-name string lava-slave-instance' | debconf-set-selections && \ + echo 'locales locales/locales_to_be_generated multiselect C.UTF-8 UTF-8, en_US.UTF-8 UTF-8 ' | debconf-set-selections && \ + echo 'locales locales/default_environment_locale select en_US.UTF-8' | debconf-set-selections && \ + DEBIAN_FRONTEND=noninteractive apt-get -y install \ + locales \ + lava-dispatcher \ + lava-dev \ + git \ + vim \ + sudo \ + python-setproctitle \ + tftpd-hpa \ + u-boot-tools \ + device-tree-compiler \ + qemu-system \ + qemu-system-arm \ + qemu-system-i386 \ + qemu-kvm \ + xnbd-server \ + e2fsprogs + +RUN wget http://images.validation.linaro.org/production-repo/production-repo.key.asc \ + && apt-key add production-repo.key.asc \ + && echo 'deb http://images.validation.linaro.org/production-repo/ stretch-backports main' > /etc/apt/sources.list.d/lava.list \ + && apt-get clean && apt-get update + +RUN DEBIAN_FRONTEND=noninteractive apt-get -y install lava-dispatcher + +#RUN \ +# git clone https://github.com/kernelci/lava-server.git -b release /root/lava-server && \ +# git clone https://github.com/kernelci/lava-dispatcher.git -b master /root/lava-dispatcher && \ +# cd /root/lava-dispatcher && \ +# git checkout release && \ +# git config --global user.name "Docker Build" && \ +# git config --global user.email "info@kernelci.org" && \ +# echo "cd \${DIR} && dpkg -i *.deb" >> /root/lava-server/share/debian-dev-build.sh && \ +# sleep 2 && \ +# /root/lava-server/share/debian-dev-build.sh -p lava-dispatcher + +COPY configs/lava-slave /etc/lava-dispatcher/lava-slave + +COPY configs/tftpd-hpa /etc/default/tftpd-hpa + +#TODO made this customizable, 1000 ports by default is too much +RUN sed -i 's,XNBD_PORT_RANGE_MIN.*,XNBD_PORT_RANGE_MIN=55950,' /usr/lib/python2.7/dist-packages/lava_dispatcher/pipeline/utils/constants.py + +EXPOSE 69/udp 80 + +CMD /start.sh diff --git a/lava-slave/configs/lava-slave b/lava-slave/configs/lava-slave new file mode 100644 index 0000000..6b991ad --- /dev/null +++ b/lava-slave/configs/lava-slave @@ -0,0 +1,15 @@ +# Configuration for lava-slave daemon + +# URL to the master and the logger +MASTER_URL="tcp://{LAVA_MASTER}:5556" +LOGGER_URL="tcp://{LAVA_MASTER}:5555" + +# Logging level should be uppercase (DEBUG, INFO, WARNING, ERROR) +# LOGLEVEL="DEBUG" + +# Encryption +# If set, will activate encryption using the master public and the slave +# private keys +# ENCRYPT="--encrypt" +# MASTER_CERT="--master-cert /etc/lava-dispatcher/certificates.d/" +# SLAVE_CERT="--slave-cert /etc/lava-dispatcher/certificates.d/" diff --git a/lava-slave/configs/tftpd-hpa b/lava-slave/configs/tftpd-hpa new file mode 100644 index 0000000..bb6f079 --- /dev/null +++ b/lava-slave/configs/tftpd-hpa @@ -0,0 +1,6 @@ +# /etc/default/tftpd-hpa + +TFTP_USERNAME="tftp" +TFTP_DIRECTORY="/var/lib/lava/dispatcher/tmp/" +TFTP_ADDRESS="0.0.0.0:69" +TFTP_OPTIONS="--secure" diff --git a/lava-slave/scripts/start.sh b/lava-slave/scripts/start.sh new file mode 100755 index 0000000..f442e8d --- /dev/null +++ b/lava-slave/scripts/start.sh @@ -0,0 +1,14 @@ +#!/bin/bash +# Set LAVA Master IP +if [[ -n "$LAVA_MASTER" ]]; then + sed -i -e "s/{LAVA_MASTER}/$LAVA_MASTER/g" /etc/lava-dispatcher/lava-slave +fi + +service tftpd-hpa start || exit 4 + +# FIXME lava-slave does not run if old pid is present +rm -f /var/run/lava-slave.pid +service lava-slave start || exit 5 + +# start an http file server for boot/transfer_overlay support +(cd /var/lib/lava/dispatcher; python -m SimpleHTTPServer 80) diff --git a/lava-slave/scripts/stop.sh b/lava-slave/scripts/stop.sh new file mode 100755 index 0000000..0f18456 --- /dev/null +++ b/lava-slave/scripts/stop.sh @@ -0,0 +1,3 @@ +#!/bin/bash +service tftpd-hpa stop +service lava-slave stop -- cgit 1.2.3-korg From 905a723528e499e9eae193b4d72388076d561f6c Mon Sep 17 00:00:00 2001 From: Corentin LABBE Date: Wed, 25 Oct 2017 13:45:56 +0200 Subject: Add support for conmux --- lava-slave/Dockerfile | 5 +++++ lava-slave/scripts/cu-loop | 11 +++++++++++ lava-slave/scripts/start.sh | 9 +++++++++ 3 files changed, 25 insertions(+) create mode 100755 lava-slave/scripts/cu-loop (limited to 'lava-slave') diff --git a/lava-slave/Dockerfile b/lava-slave/Dockerfile index 6aece71..e87ac63 100644 --- a/lava-slave/Dockerfile +++ b/lava-slave/Dockerfile @@ -17,6 +17,8 @@ RUN \ git \ vim \ sudo \ + cu \ + conmux \ python-setproctitle \ tftpd-hpa \ u-boot-tools \ @@ -50,6 +52,9 @@ COPY configs/lava-slave /etc/lava-dispatcher/lava-slave COPY configs/tftpd-hpa /etc/default/tftpd-hpa +COPY scripts/cu-loop /usr/local/bin/ +COPY conmux/* /etc/conmux/ + #TODO made this customizable, 1000 ports by default is too much RUN sed -i 's,XNBD_PORT_RANGE_MIN.*,XNBD_PORT_RANGE_MIN=55950,' /usr/lib/python2.7/dist-packages/lava_dispatcher/pipeline/utils/constants.py diff --git a/lava-slave/scripts/cu-loop b/lava-slave/scripts/cu-loop new file mode 100755 index 0000000..fbe5777 --- /dev/null +++ b/lava-slave/scripts/cu-loop @@ -0,0 +1,11 @@ +#!/bin/sh +DEV=$1 +BAUD=${2:-115200} + +while true; do + # NOTE: needs cu >= 1.07-24 + # c.f. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=336996 + test -e $DEV && cu -l $DEV -s $BAUD --parity=none --nostop --nortscts dir + sleep 0.2 +done + diff --git a/lava-slave/scripts/start.sh b/lava-slave/scripts/start.sh index f442e8d..dcbbcd7 100755 --- a/lava-slave/scripts/start.sh +++ b/lava-slave/scripts/start.sh @@ -10,5 +10,14 @@ service tftpd-hpa start || exit 4 rm -f /var/run/lava-slave.pid service lava-slave start || exit 5 +touch /var/run/conmux-registry +/usr/sbin/conmux-registry 63000 /var/run/conmux-registry& +sleep 2 +for item in $(ls /etc/conmux/*cf) +do + echo "Add $item" + /usr/sbin/conmux $item & +done + # start an http file server for boot/transfer_overlay support (cd /var/lib/lava/dispatcher; python -m SimpleHTTPServer 80) -- cgit 1.2.3-korg From 26cc005179760bd25b8bdd724a936847c81d24eb Mon Sep 17 00:00:00 2001 From: Corentin LABBE Date: Wed, 25 Oct 2017 14:07:15 +0200 Subject: Add support for lavapdu --- lava-slave/Dockerfile | 5 +++++ lava-slave/lavapdu.conf | 19 +++++++++++++++++++ lava-slave/scripts/start.sh | 11 +++++++++++ 3 files changed, 35 insertions(+) create mode 100644 lava-slave/lavapdu.conf (limited to 'lava-slave') diff --git a/lava-slave/Dockerfile b/lava-slave/Dockerfile index e87ac63..5e0f3cb 100644 --- a/lava-slave/Dockerfile +++ b/lava-slave/Dockerfile @@ -55,6 +55,11 @@ COPY configs/tftpd-hpa /etc/default/tftpd-hpa COPY scripts/cu-loop /usr/local/bin/ COPY conmux/* /etc/conmux/ +#install pdudaemon +RUN DEBIAN_FRONTEND=noninteractive apt-get -y install postgresql +RUN service postgresql start && DEBIAN_FRONTEND=noninteractive apt-get -y install lavapdu-daemon lavapdu-client && service postgresql stop +COPY lavapdu.conf /etc/lavapdu/ + #TODO made this customizable, 1000 ports by default is too much RUN sed -i 's,XNBD_PORT_RANGE_MIN.*,XNBD_PORT_RANGE_MIN=55950,' /usr/lib/python2.7/dist-packages/lava_dispatcher/pipeline/utils/constants.py diff --git a/lava-slave/lavapdu.conf b/lava-slave/lavapdu.conf new file mode 100644 index 0000000..720c22b --- /dev/null +++ b/lava-slave/lavapdu.conf @@ -0,0 +1,19 @@ +{ + "daemon": { + "hostname": "0.0.0.0", + "port": 16421, + "dbhost": "127.0.0.1", + "dbuser": "pdudaemon", + "dbpass": "pdudaemon", + "dbname": "lavapdu", + "retries": 5, + "logging_level": "INFO" + }, + "pdus": { + "acme-0": { + "driver": "localcmdline", + "cmd_on": "/usr/local/bin/acme-cli -s 192.168.66.2 switch_on %d", + "cmd_off": "/usr/local/bin/acme-cli -s 192.168.66.2 switch_off %d" + } + } +} diff --git a/lava-slave/scripts/start.sh b/lava-slave/scripts/start.sh index dcbbcd7..c9645b3 100755 --- a/lava-slave/scripts/start.sh +++ b/lava-slave/scripts/start.sh @@ -10,6 +10,17 @@ service tftpd-hpa start || exit 4 rm -f /var/run/lava-slave.pid service lava-slave start || exit 5 +if [ -e /etc/lavapdu ];then + /etc/init.d/postgresql start || exit 6 + + echo "== Start lavapdu listen ==" + /etc/init.d/lavapdu-listen start || exit 7 + # lava listen create the database, let it some time + sleep 5 + echo "== Start lavapdu runner ==" + /etc/init.d/lavapdu-runner start || exit 8 +fi + touch /var/run/conmux-registry /usr/sbin/conmux-registry 63000 /var/run/conmux-registry& sleep 2 -- cgit 1.2.3-korg