Questo script richiama tutti gli altri script che automatizzano il processo di installazione del sistema di monitoraggio di temperatura e umidita'
Per la prima versione visitare il repository progetto100
Modificare il valore di queste variabili a proprio piacimento:
- devmode=true : modalita' sviluppo, non installa unclutter e installa phpmyadmin
- dhcpdns=true : se "true" verra' installato e configurato dnsmasq
- mysqlpass : password di mysql (username e' root)
- touchdevice : dispositivo con input touch
- hostapd_ip : ip statico del raspberry pi
- hostapd_ssid : ssid dell'Access Point
- hostapd_password : password per connettersi all'AP
- dhcprange_start : primo indirizzo ip nel range DHCP
- dhcprange_stop : ultimo indirizzo ip nel range DHCP
- dhcprange_submask : subnet mask della rete (usato dal DHCP)
- domain : nome dominio della rete (dns)
- dnsmasq_conf : percorso file configurazione dnsmasq
- dnsmasq_dnsfile : percorso file hosts usato da dnsmasq
Eseguire lo script da terminale:
./autoinstall.sh
Se il file non e' considerato eseguibile eseguire questo comando
find . -type f -iname "*.sh" -exec chmod +x {} \;
che si occupera' di rendere eseguibili tutti gli script nelle sotto cartelle
Se eseguendo lo script appare l'errore "/bin/bash^m bad interpreter no such file or directory" occorre modificare gli EOL (end of line), per fare questo installare dos2unix con il comando
sudo apt-get install dos2unix
e eseguire il comandofind . -type f -iname "*.sh" -exec dos2unix {} \;
Lo script prima verifica che tutte le variabili abbiano
valori validi usando la funzione verify_parameters
che a sua volta usa le funzioni:
ipvalid
Per verificare se gli ip sono validi
cidrvalid
Per verificare che il cidr sia valido
count_occurrencies
Per contare quante "/" sono contenute nelle variabili del tipo "ip/cidr"
Poi vengono aggiornati i repository di apt e vengono richiami i seguenti script:
./autoapachephp/install.sh -apachephp
Installa e configura Apache, PHP e libapache2-mod-php
./automysql/install.sh -mysql -mysqlforphp
Installa MySQL e php-mysql
Se lo script e' in modalita' produzione (devmode=false) viene installato unclutter con: ./internalfunctions/install.sh -unclutter altrimenti viene installato phpmyadmin con: ./autoppa/autoppa.sh
Poi vengono eseguiti gli script: ./internalfunctions/install.sh -wallpaper -database -monsys -credentials ${mysqlpass} -chromium ${touchdevice} Installa unclutter, imposta il wallpaper, importa il file SQL in MySQL, copia i file del sistema di monitoraggio in /var/www, imposta nel file delle credenziali (/var/www/credentials/credentials.ini) la password e configura l'avvio automatico di chromium utilizzando come dispositivo con touch input "${touchdevice}"
./automysql/install.sh -mysqlpass ${mysqlpass}
Modifica la password dell'utente root di MySQL
Questa operazione viene eseguita dopo aver chiamato "./internalfunctions/install.sh", in questo modo non e' stata richiesta la password per importare il file SQL
Se $dhcpdns=true viene installato e configurato dnsmasq: ./autodnsmasq/autodnsmasq.sh "$dhcprange_start" "$dhcprange_stop" "$dhcprange_submask" "$domain" "$dnsmasq_conf" "$dnsmasq_dnsfile" "$hostapd_ip"
Poi lo script prepara il file di configurazione per lo script autohostapd con il comando:
echo -e "[HOSTAPD SETTINGS]\nip = ${hostapd_ip}\nssid = ${hostapd_ssid}\npassword = ${hostapd_password}" > autohostapd/settings.ini
Infine viene richiamato lo script autohostapd
./autohostapd/install.sh
Installa e configura hostapd
Il computer si riavviera' due volte
- Sistema operativo Unix like con interprete bash
2020-01-18 02_01:
Fix:
- autohostapd.sh ora finisce correttamente la sua esecuzione al riavvio del raspberry
Lo script non aveva permessi sufficienti per scrivere sul file di log e di status
- setting wallpaper threw the error "desktop manager not active"
Changes:
- viene utilizzato bash "strict mode" per una migliore manutenibilita' del codice
Features:
- ora e' possibile scegliere se installare unclutter (se la devmode e' disattiva) o phpmyadmin (se la devmode e' attiva)
- aggiunta la possibilita' di installare e configurare dnsmasq
- repository apt viene automaticamente aggiornato all'esecuzione di ogni script
2019-03-21 01_01:
First commit
- set firewall rules to enable dhcp, dns and http(s)
- enable password on sudo for user "pi"
- e2e testing for everything but "autohostapd"
- unit tests for:
apacheallowhtaccess
Permette di configurare htaccess
config_dnsmasq
Configura dnsmasq
autostartscript
sets start on boot for the script itself
staticip
sets static ip
hostapdconfig
creates settings file and writes hostapd_configs in it
hostapdsetsettings
says hostapd were the config file is
ipforwarding
enables ip forward
restoreiptables
set automatic restore of iptables
removeautostart
removes start on boot for the script itself
config_ppa
configures phpmyadmin
Needs to be adapted for unit testing
bootunclutter
sets start on boot for unclutter
bootchromium
sets start on boot for chromium
changecredentials
changes mysql password inside the credentials file
ipvalid
checks if an ip is valid
cidrvalid
checks if a cidr is valid
count_occurrencies
count the number of occurrencies of a char in a string
mario33881