Script de configuración para Raspberry

Script de configuración para Raspberry

Está claro que de las partes más tediosas del caharreo con la Raspberry es el tener que de nuevo comenzar la instalación desde cero y realizar siempre la misma configuración inicial. Por esto he creado un Script que automatiza este proceso y realiza la siguiente configuración.

  • Actualiza el firmware de la placa y los paquetes de Raspbian
  • Cambia la contraseña para el usuario Pi
  • Configura la IP y la puerta de enlace al router
  • configura el huso horario y el idioma
  • Instala Git
  • Instala Pi-Hole
  • Instala Hugo
  • Instala Rclone
  • Instala el servidor pivpn
  • Programa un reinicio diario

Para comenzar descargamos el archivo de configuración y lo dotamos de permisos de ejecución.

wget https://sherblog.pro/files/raspi-config.sh
chmod +x raspi-config.sh

Con el comando nano raspi-config.sh editamos los siguientes parámetros * Contraseña para el usuario “pi” * Ip fija de nuestra red local que queremos asignar a la raspberry * Ip del router o puerta de enlace

Ahora sólo resta ejecutar el script de configuración

./raspi-config.sh

La instalación no es completamente desatendida y requiere que estemos intesactuando con la misma en varios puntos.

  • Seleccionar el área geográfica (Europa y Madrid)
  • Configurar la codificación local (en-GB.UTF-8 y es-ES.UTF-8)
  • Seleccionar eth0 como interface de Pi-hole
  • Seleccionar Google como el proveedor DNS
  • En la IP estática de Pi-Hole sustituir la existente por la que hemos configurado en el instalador
  • Modificar la puerta de acceso si es necesario
  • Habilitar la interface administrativa, el servidor web y las consultas de Pi-Hole

Con todo lo anterior el script de configuración queda de la siguiente forma

#!/bin/bash
# -*- ENCODING: UTF-8 -*-

# Raspberry custom init config script
# Updated on 20181120
# Created on 20181106
# Developed by Sherlockes
# www.sherblog.pro/files/raspiconfig.sh
# Description
#   - Firmware & Packages update
#   - Change Pi password
#   - Configure local network
#   - Configure timezone & locale
#   - Install Git
#   - Install Pi-Hole
#   - Install Hugo
#   - Install Rclone
# - Installing pivpn server
#   - Schedule daily restart

#Definiciones
password1="YOURPASS" # New Pi user pass
ipadress=192.168.1.202 # New IP Direction
gateway=192.168.1.1 # Router IP

# Modificamos el password para el usuario pi
sudo echo -e "raspberry\n$password1\n$password1" | passwd pi

### Updating...
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install rpi-update
sudo rpi-update

### Network Config
sudo echo 'interface eth0' >> /etc/dhcpcd.conf
sudo echo 'static ip_address=$ipadress/24' >> /etc/dhcpcd.conf
sudo echo 'static routers=$gateway' >> /etc/dhcpcd.conf
sudo echo 'static domain_name_servers=$gateway' >> /etc/dhcpcd.conf

### Change Timezone & Locale
sudo dpkg-reconfigure tzdata
sudo dpkg-reconfigure locales

### Installing Git
sudo apt-get install git -y
sudo apt-get install jq -y

### Installing Pi-hole Web interface http://ip/admin
curl -sSL https://install.pi-hole.net | bash
sudo echo -e "$password1\n$password1" | pihole -a -p

### Installing latest version of Hugo
curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest \
| grep "browser_download_url.*hugo_[^extended].*_Linux-ARM\.deb" \
| cut -d ":" -f 2,3 \
| tr -d \" \
| wget -qi -
installer="$(find . -name "*Linux-ARM.deb")"
sudo dpkg -i $installer
rm $installer

### Installing Rclone
curl -s https://api.github.com/repos/ncw/rclone/releases/latest \
| grep "browser_download_url.*rclone-[^extended].*-linux-arm\.deb" \
| cut -d ":" -f 2,3 \
| tr -d \" \
| wget -qi -
installer="$(find . -name "*linux-arm.deb")"
sudo dpkg -i $installer
rm $installer

### Installing vpn server
curl -L https://install.pivpn.io | bash

### Schedule Raspberry reboot at 4 A.M.
echo "00 04 * * * /sbin/reboot" | cat > cron
sudo crontab cron
rm cron

### Raspberry Reboot
sudo reboot
No me apetece perder nada de tiempo con el RGPD así que si tienes alguna duda, pregunta o sugerencia no dudes en dejarme un Tweet en @sherblogpro. Intentaré responderte o complacerte si se o puedo o inventigar en ello para un nuevo post si no lo conozco.