Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Antes de nada, si vienes de una versión de Home Assistant haz un full backup (puede tardar un poco) y copiatelo en el PC (el fichero que genera es un .tar en la carpeta backup). Descargar la última versión que exista de Raspbian https://www.raspberrypi.org/downloads/raspbian/ A gusto de cada uno, hay tres: · La lite “Raspbian Buster Lite”. · La intermedia con escritorio “Raspbian Buster with desktop” · La full, en mi caso la full “Raspbian Buster with desktop and recommended software” Si usas la versión lite puede que alguna cosa no te funcione y tengas que instalar algo antes como puede ser el curl. Grabarlo en un microSD de 16GB o 32GB, se puede usar de más tamaño pero si luego haces una copia tardará mucho y ocupará mucho, para mi al menos con este tamaño es suficiente. Para grabar la tarjeta se puede usar Etcher https://www.balena.io/etcher/ Cuando finalice cuidado con este mensaje, dale a cancelar: Si has usado la imagen con escritorio te lo arrancará por defecto y tendrás disable el SSH, por lo que o lo configuras con un monitor/teclado o antes de poner la SD desde el PC modificas lo siguiente. En el pc nos aparecerá la unidad boot (la tarjeta SD), creamos un fichero que se llame ssh, sin extensión y que esté vacío: Botón de la derecha del ratón nuevo documento de texto y el nombre ssh quitando la extensión .txt. Luego metemos la SD en la PI, arrancamos, esperamos un poco y nos conectamos por ssh, por ejemplo, con Putty: El usuario es pi y la password es raspberry (acordaos de cambiarla) Actualizamos: sudo apt update sudo apt upgrade sudo apt-get install \ jq \ apt-transport-https \ ca-certificates \ curl \ software-properties-common Instalamos Docker: sudo curl -sSL https://get.docker.com/ | sh sudo reboot docker -v Instalamos la imagen de Portainer (para gestionar los Docker) sudo docker volume create portainer_data sudo docker run -d \ --name portainer \ --restart=always \ -p 9000:9000 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data portainer/portainer Instalamos los Docker de Hassio sudo curl -sL https://raw.githubusercontent.com/home-assistant/hassio-installer/master/hassio_install.sh | sudo bash -s -- -m raspberrypi3 (todo eso es la misma línea) Con esto la instalación está finalizada Ya nos podemos conectar a Portainer para gestionar Docker: http://<ip de tu raspberry>:9000/ A Home Assistant como es la primera vez tarda bastantes minutos: http://<ip de tu raspberry>:8123/ Si no vienes de 0 y tienes un backup para recuperarlo, instalas SAMBA y te copias en la carpeta backup el que tuvieras hecho de la antigua Raspberry. A mi no me veía el fichero, reinicié los contenedores y ya lo ve (quizás es un poco de fuerza bruta, pero funciona) Con todo esto ya podemos recuperar el backup: Esto tarda un buen rato. Si queréis ver como va el arranque os podéis conectar a portainer, entrar en contenedores y ver el log de homeassistant, es el último en arrancar: NETDATA COMO CONTENEDOR grep docker /etc/group | cut -d ':' -f 3 Una vez tenemos el numero pasamos a la creación del contenedor con la siguiente sentencia (sustituir el 995 de «-e PGID=» por el que os ha devuelto el comando anterior en caso de ser otro numero distinto): sudo docker run -d --name=netdata \ -p 19999:19999 \ -v /proc:/host/proc:ro \ -v /sys:/host/sys:ro \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -e PGID=995 \ --cap-add SYS_PTRACE \ --security-opt apparmor=unconfined \ --restart always \ netdata/netdata:v1.19.0 Una vez tenemos el numero pasamos a la creación del contenedor con la siguiente sentencia (sustituir el 999 de «-e PGID=» por el que os ha devuelto el comando anterior en caso de ser otro numero distinto): INSTALACIÓN Pi-Hole sudo docker run -d \ --name pihole \ -p 53:53/tcp -p 53:53/udp \ -p 80:80 \ -p 443:443 \ -e TZ="Europe/Madrid" \ -v "$(pwd)/etc-pihole/:/etc/pihole/" \ -v "$(pwd)/etc-dnsmasq.d/:/etc/dnsmasq.d/" \ --dns=127.0.0.1 --dns=1.1.1.1 \ --restart=unless-stopped \ pihole/pihole:latest OPEN-VPN COMO CONTENEDOR vamos a descargar el contenido del repositorio git clone https://github.com/kylemanna/docker-openvpn.git Accedemos a la carpeta que hemos descargado cd docker-openvpn Vamos a crear la imagen para desplegar los contenedores a paritr de esta docker build -t mivpn . Lo siguiente es crear un directorio, donde vamos a conectar el volumen de trabajo de los contenedores, en este directorio vamos a guardar las llaves públicas, privadas y ficheros de configuración. cd .. mkdir datos-vpn Ahora vamos a desplegar el primer contenedor efímero, puesto que solo lo vamos a usar para generar el primer fichero de configuración que será guardado en la carpeta datos-vpn. Evidentemente vamos a tener que añadir a la configuración la ip pública en donde se va alojar el servicio y el puerto que vamos a escuchar, en este ejemplo vamos a usar el 3000. docker run -v $PWD/datos-vpn:/etc/openvpn --rm mivpn ovpn_genconfig -u udp://tu.dirección.ip.publica:3000 El siguiente paso es generar las llaves y el certificado ya que OpenVPN requiere de una llave privada, otra pública y un certificado. Por lo que vamos a ejecutar otro contenedor efímero que nos va ayudar a realizar estos ficheros, en la carpeta creada datos-vpn. docker run -v $PWD/datos-vpn:/etc/openvpn --rm -it mivpn ovpn_initpki r que nos va hacer de servidor OpenVPN, que va a recoger la configuración que tenemos en la carpeta datos-vpn. docker run --name mivpn -v $PWD/datos-vpn:/etc/openvpn -d --restart always -p 3000:1194/udp --cap-add=NET_ADMIN mivpn Añadiendo usuarios Ahora podemos añadir los usuarios (clientes), generando el fichero .ovpn para cada usuario, vemos que no se va a establecer ninguna contraseña para el usuario, puesto que en este ejemplo vamos a realizar la conexión mediante llave, certificado y usuario. Para crear el usuario cliente, una vez más vamos a usar un contenedor efímero, tan solo debemos cambiar USUARIO por el nombre de usuario que deseamos. docker run -v $PWD/datos-vpn:/etc/openvpn --rm -it mivpn easyrsa build-client-full USUARIO nopass Por último vamos a generar en la carpeta datos-vpn un fichero USUARIO.ovpn con la configuración para este usuario, para ello también usaremos un contenedor efímero. docker run -v $PWD/datos-vpn:/etc/openvpn --rm mivpn ovpn_getclient USUARIO > $PWD/datos-vpn/USUARIO.ovpn Ahora nos podemos llevar este fichero USUARIO.ovpn al cliente de OpenVPN para establecer la conexión sudo docker run -v openvpn_data:/etc/openvpn --rm evolvedm/openvpn-rpi ovpn_genconfig -u udp://albertobloks.duckdns.org sudo docker run -v openvpn_data:/etc/openvpn --rm -it evolvedm/openvpn-rpi ovpn_initpki sudo docker run -v openvpn_data:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN -e --restart=always --name openvpn_server evolvedm/openvpn-rpi sudo docker run -v openvpn_data:/etc/openvpn --rm -it evolvedm/openvpn-rpi easyrsa build-client-full avarade sudo docker run -v openvpn_data:/etc/openvpn --rm evolvedm/openvpn-rpi ovpn_getclient avarade > avarade.ovpn
Compartir