From da2f572ed389a4fa7a02de5fdbfe5b7b87a9267f Mon Sep 17 00:00:00 2001 From: Sergio Pernas Date: Tue, 15 Mar 2022 13:29:08 -0300 Subject: [PATCH] separadas configuraciones sensibles como variables de entorno en fichero aparte --- raspberry/bak.desinstalar | 39 +++++++++++++++ raspberry/bak.instalador | 88 +++++++++++++++++++++++++++++++++ raspberry/bin/nodemecu | 3 +- raspberry/desinstalar | 10 ++-- raspberry/envs | 19 +++++++ raspberry/generador_json | 3 +- raspberry/instalador | 24 +++++++-- raspberry/nodemecu.conf.ejemplo | 21 -------- 8 files changed, 174 insertions(+), 33 deletions(-) create mode 100755 raspberry/bak.desinstalar create mode 100755 raspberry/bak.instalador create mode 100644 raspberry/envs diff --git a/raspberry/bak.desinstalar b/raspberry/bak.desinstalar new file mode 100755 index 0000000..f2741f0 --- /dev/null +++ b/raspberry/bak.desinstalar @@ -0,0 +1,39 @@ +#!/bin/bash +source /etc/nodemecu.conf + +if [ $UID -ne 0 ]; then + echo "Ejecute 'sudo $0'" + exit +fi + +seguro="Si, se lo que estoy haciendo." + + +echo "Está a punto de desinstalar nodemecu, esta acción eliminará todos los archivos de instalacion y registros que se hayan tomado sin posiblidad de recuperación, haga un backup de: + + - /etc/nodemecu.conf + - $directorio_instalacion + - $log + +Para continuar escriba la frase '$seguro'. +" + +read -p "frase: " frase + +if [ "$frase" = "$seguro" ];then + + +rm /etc/nodemecu.conf +rm /usr/bin/nodemecu +crontab -u root -r +rm -rf $directorio_instalacion +systemctl stop nodemecu.service +systemctl disable nodemecu.service +rm /lib/systemd/system/nodemecu.service +systemctl daemon-reload + +else + echo "La frase de seguridad no concuerda. + " + +fi diff --git a/raspberry/bak.instalador b/raspberry/bak.instalador new file mode 100755 index 0000000..5c736ce --- /dev/null +++ b/raspberry/bak.instalador @@ -0,0 +1,88 @@ +#!/bin/bash +#set -x +configuracion=nodemecu.conf.ejemplo +source $configuracion + +if [ $UID -ne 0 ]; then + echo "Ejecute 'sudo $0'" + exit +fi + +if [ -d $directorio_instalacion ] ; then + echo "nodemecu ya se encuentra instalado" + exit + +fi + +ficheros="bin env arduinos.py contador generador_json funciones monitor monitor_web registrador desinstalar" + + +# Dependencias + +echo "1. Instalando dependencias +" +apt update && apt install -y python3-pip jsonlint jq uuid +pip3 install pyserial + +echo "" + +# Directorio de instalación + +echo "2. Creando directorios y copiando archivos" +echo " +Creación de directorios +" +mkdir -vp $directorio_instalacion/archives/historical +mkdir -v $directorio_instalacion/archives/logs +mkdir -v $registros_corruptos +mkdir -v $envios_fallidos +mkdir -v $historicos +mkdir -v $registros +mkdir -v $key_dir +echo " +Copiado de archivos +" +cp -vr $ficheros $directorio_instalacion +cp -v $configuracion /etc/nodemecu.conf +echo " +Enlaces a binarios +" +chmod 755 $directorio_instalacion/bin/nodemecu +ln -vs $directorio_instalacion/bin/nodemecu /usr/bin/nodemecu +echo " +Fichero de logs +" +touch $log +ls $log + + +echo "3. Configurando systemd +" + +cp -v nodemecu.service /lib/systemd/system/ +systemctl daemon-reload + +echo " +4. Obteniendo numero de serie +" + +sn=$(cat /proc/cpuinfo | grep Serial | cut -d ' ' -f 2) + +sed -i 's/numero_serie=/numero_serie/' $env + +echo "Número de serie: $sn" + + + +echo " +5. Configurar +" + +echo "- Ejecute 'sudo nodemecu configurar' para comenzar. +" +echo "- Ejecute 'sudo nodemecu modo sensores' para obtener datos desde sensores. +" +echo "- Ejecute 'sudo nodemecu captura iniciar' para comenzar a tomar datos de sensores o datos de prueba. +" +echo "- Ejecute 'sudo systemctl start nodemecu.service' para iniciar el envío de datos. +" diff --git a/raspberry/bin/nodemecu b/raspberry/bin/nodemecu index 03295ec..429c146 100755 --- a/raspberry/bin/nodemecu +++ b/raspberry/bin/nodemecu @@ -34,7 +34,8 @@ case $com in echo "" echo "Creando juego de llaves" source $config - generate_private_key + comentario="$nombre $numero_serie" + generate_private_key "$comentario" echo "" echo "El modo de operación por defecto es 'test' y se envían datos simulados, cambie a 'sensores' con el comando 'sudo nodemecu modo sensores' " diff --git a/raspberry/desinstalar b/raspberry/desinstalar index 4f2da7d..2a75417 100755 --- a/raspberry/desinstalar +++ b/raspberry/desinstalar @@ -6,7 +6,7 @@ if [ $UID -ne 0 ]; then exit fi -seguro="Si, Estoy Seguro." +seguro="Si, se lo que estoy haciendo." echo "Está a punto de desinstalar nodemecu, esta acción eliminará todos los archivos de instalacion y registros que se hayan tomado sin posiblidad de recuperación, haga un backup de: @@ -18,9 +18,9 @@ echo "Está a punto de desinstalar nodemecu, esta acción eliminará todos los a Para continuar escriba la frase '$seguro'. " -read -p "frase: " frase +#read -p "frase: " frase -if [ "$frase" = "$seguro" ];then +#if [ "$frase" = "$seguro" ];then rm /etc/nodemecu.conf @@ -32,8 +32,8 @@ systemctl disable nodemecu.service rm /lib/systemd/system/nodemecu.service systemctl daemon-reload -else +#else echo "La frase de seguridad no concuerda. " -fi +#fi diff --git a/raspberry/envs b/raspberry/envs new file mode 100644 index 0000000..41e0d9b --- /dev/null +++ b/raspberry/envs @@ -0,0 +1,19 @@ +# NO MODIFICAR ESTE FICHERO !!!!!!!!!! + +numero_serie= +curl_err=/tmp/curl_err +historical_file_size=1440 +logs_file_size=1440 +directorio_instalacion=/opt/nodemecu +registros=$directorio_instalacion/registros +historicos=$directorio_instalacion/historicos +log=/var/log/nodemecu_errors.log +registros_corruptos=$directorio_instalacion/corruptos +envios_fallidos=$directorio_instalacion/fallidos +contador=$directorio_instalacion/contador +lock=$directorio_instalacion/lock +funciones=$directorio_instalacion/funciones +arduinos_py=$directorio_instalacion/arduinos.py +key_dir=$directorio_instalacion/llaves +private_key=$key_dir/$numero_serie.key +public_key=$key_dir/$numero_serie.key.pub diff --git a/raspberry/generador_json b/raspberry/generador_json index dab9489..1d5cbaa 100755 --- a/raspberry/generador_json +++ b/raspberry/generador_json @@ -1,6 +1,7 @@ #!/bin/bash source /etc/nodemecu.conf +source $env source $funciones conteo=$(cat $contador) @@ -52,7 +53,7 @@ done -json="{\"transaction_uuid\":\"$uuid\",\"serial_number\":\"$(cat $numero_serie)\",\"controller_id\":\"$nombre\",\"timestamp\":\"$marca_de_tiempo\",\"error_code\":\"10\",\"coordinates\":{\"lat\":1,\"lng\":1},\"battery_status\":\"98\",\"sample\":\"0\",\"storage\":\"uso del almacenamiento\",\"arduinos\":[$sensores]}" +json="{\"transaction_uuid\":\"$uuid\",\"serial_number\":\"$numero_serie\",\"public_key\":\"$(cat $public_key)\",\"controller_id\":\"$nombre\",\"timestamp\":\"$marca_de_tiempo\",\"error_code\":\"10\",\"coordinates\":{\"lat\":1,\"lng\":1},\"battery_status\":\"98\",\"sample\":\"0\",\"storage\":\"uso del almacenamiento\",\"arduinos\":[$sensores]}" touch $lock file=$(date +%Y%m%d%H%M%S -d @$marca_de_tiempo)-$uuid diff --git a/raspberry/instalador b/raspberry/instalador index 8d49150..5e462ad 100755 --- a/raspberry/instalador +++ b/raspberry/instalador @@ -1,6 +1,19 @@ #!/bin/bash #set -x -configuracion=nodemecu.conf.ejemplo + + +basedir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +configuracion=$basedir/nodemecu.conf.ejemplo +envs=$basedir/envs + + +cat $configuracion +cat $envs +exit + + + source $configuracion if [ $UID -ne 0 ]; then @@ -14,7 +27,7 @@ if [ -d $directorio_instalacion ] ; then fi -ficheros="bin arduinos.py contador generador_json funciones monitor monitor_web nodemecu.service registrador desinstalar" +ficheros="bin env arduinos.py contador generador_json funciones monitor monitor_web registrador desinstalar" # Dependencias @@ -38,7 +51,7 @@ mkdir -v $registros_corruptos mkdir -v $envios_fallidos mkdir -v $historicos mkdir -v $registros -mkdir -v $private_key_dir +mkdir -v $key_dir echo " Copiado de archivos " @@ -59,7 +72,7 @@ ls $log echo "3. Configurando systemd " -cp nodemecu.service /lib/systemd/system/ +cp -v nodemecu.service /lib/systemd/system/ systemctl daemon-reload echo " @@ -67,7 +80,8 @@ echo " " sn=$(cat /proc/cpuinfo | grep Serial | cut -d ' ' -f 2) -echo $sn > $numero_serie + +sed -i 's/numero_serie=/numero_serie/' $env echo "Número de serie: $sn" diff --git a/raspberry/nodemecu.conf.ejemplo b/raspberry/nodemecu.conf.ejemplo index 32206da..aab0bf4 100644 --- a/raspberry/nodemecu.conf.ejemplo +++ b/raspberry/nodemecu.conf.ejemplo @@ -2,24 +2,3 @@ nombre= servidor= intervalo= modo=test - - -# AJUSTES GENERALES -# SE RECOMIENDA NO MODIFICAR ESTAS LINEAS - -curl_err=/tmp/curl_err -historical_file_size=1440 -logs_file_size=1440 -directorio_instalacion=/opt/nodemecu -registros=$directorio_instalacion/registros -historicos=$directorio_instalacion/historicos -log=/var/log/nodemecu_errors.log -registros_corruptos=$directorio_instalacion/corruptos -envios_fallidos=$directorio_instalacion/fallidos -contador=$directorio_instalacion/contador -lock=$directorio_instalacion/lock -funciones=$directorio_instalacion/funciones -arduinos_py=$directorio_instalacion/arduinos.py -private_key_dir=$directorio_instalacion/llaves -private_key=$private_key_dir/$nombre.pem -numero_serie=$directorio_instalacion/numero_serie