Voy a retomar mi blog personal. Que nadie espere nada de esto.
Instalando K0s en un cluster de Raspberry Pi 4
Estoy instalando un cluster de kubernetes en 3 raspberrys v4 con 8GB de RAM que compré para hacer algo así. El despliegue con Ansible Siguiendo la guía que está en la página de la documentación https://docs.k0sproject.io/v1.22.4+k0s.1/raspberry-pi4/ he creado el siguiente playbook de ansible para poder hacerlo de una vez y añadir nuevos nodos si se da el caso o repetirlo todo rápidamente si rompo algo por lo que sea. --- - hosts: all become: yes become_user: root tasks: - name: apt-python es requerimiento básico package: name: python-apt state: present - name: apt update apt: update_cache=yes - name: apt upgrade apt: upgrade=full - name: apt autoremove apt: autoremove=yes - name: apt autoclean apt: autoclean=yes - name: Instala cgroups apt: name: - cgroup-lite - cgroup-tools - cgroupfs-mount state: latest - name: añade los cgroups lineinfile: path: /boot/firmware/cmdline.txt backrefs: yes regexp: "^(.*console.*)$" line: '\1 cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1' notify: - reboot - name: añade los cgroups lineinfile: path: /etc/modules-load.d/modules.conf line: "{{ item }}" with_items: - overlay - nf_conntrack - br_netfilter - name: swap shell: cmd: fallocate -l 2G /swapfile && chmod 0600 /swapfile && mkswap /swapfile && swapon -a notify: - reboot - name: instala k0s shell: curl -sSLf https://get.k0s.sh | sudo sh - name: shell: k0s version handlers: - name: reboot reboot: msg: "Reiniciando desde Ansible" connect_timeout: 5 reboot_timeout: 600 pre_reboot_delay: 0 post_reboot_delay: 30 test_command: whoami Inicializando el controlador Después de esto entramos a uno de los tres nodos y lo nombramos controlador. ...
AutoHandBrakeCli
Publicado el script que uso para ripear DVDs en serie https://gitlab.com/xuacu/autohandbrakecli #!/usr/bin/env bash PRESET=DVD_a_H265_MKV_v4 read -p 'Input dir: ' "SOURCEDIR" clean() { trap 'rm "$NAME.$TMP" "$TMP"' EXIT; } export -f clean find "${SOURCEDIR%/}" -iname VIDEO_TS -exec echo {} \; find "${SOURCEDIR%/}" -iname VIDEO_TS | sort | while read item do declare -t NAME=$(echo "$item" | awk -F "/" '{print $(NF-1)}' | sed 's/^\.//g') declare -t TMP=$(mktemp /tmp/.TMP.XXXXXXX); figlet "$NAME" clean HandBrakeCLI -i "$(echo "$item")" -t 0 2> "$TMP" </dev/null for title in $(grep "+ title" "$TMP" | awk '{ print $3 }' | grep -o '[0-9]\+') do HandBrakeCLI -i "$item" -o "${SOURCEDIR%/}/$NAME$title.mkv" -t $title --all-audio --subtitle "$(seq -s, 1 20)" --preset-import-file $PWD/*.json -Z "$PRESET" </dev/null 2> /dev/null du -h "$(ls -htr ${SOURCEDIR%/}/$NAME*.mkv)" done done Básicamente funciona ejecutándolo y dándole un directorio de entrada. ...
Sacándole el máximo rendimiento a la consola retro RG350
Unas notas rápidas sobre como he conseguido poner la RG350 al máximo. Primero gracias a esto he podido instalar emustation que es una interfaz más agradable: Y después con esto conseguimos los juegos: ...
Wireguard para dummies
Solo quería dejar aquí anotado la parte esencial de Wireguard para poder entenderlo. Servidor Como todo servicio consta de dos partes el cliente y el servidor. En el servidor, y posteriormente en el cliente también, hay que crear un par de claves al estilo ssh. mkdir ~/.wg chmod 700 ~/.wg && cd ~/.wg wg genkey | tee wg-private.key | wg pubkey > wg-public.key chmod 600 * En el servidor creamos un archivo /etc/wireguard/wg0.conf ...
Password Cracking in the Modern Age - Pablo Caro & Jaime Sanchez [RootedCON2020-ES]
Interesante este video de la RootedCON2020 sobre cracking de contraseñas.
Borrar los logs de un contenedor
En Docker, a veces, ciertos contenedores generan mucho ruido en los logs o simplemente estamos probando algo y queremos revisar los logs y son demasiado extensos. Podemos directamente cargarnos los logs: echo "" > $(docker inspect --format='{{.LogPath}}' $CONTAINER_NAME_OR_ID) O más recomendable para un uso normal es, no borrar los logs y, usar tail como haríamos en una consola normal. docker logs --tail=20 -t $CONTAINER_NAME_OR_ID También podemos incluso añadir -f como haríamos en bash normalmente para obtener un flujo de datos continuo conforme se va actualizando el registro.
Rss-Bridge
RSS-Bridge He descubierto esta aplicación para devolver el RSS a ciertas páginas que ya no lo tienen. Redes sociales principalmente. Como todo últimamente, tiene una versión con Docker (oficial además) que facilita todo mucho. Antes de eso conviene crear el whitelist.txt que es el archivo donde se activan los “bridges” que queremos utilizar. Por ejemplo: YoutubeBridge InstagramBridge InstagramStoriesBridge InstructablesBridge InternetArchiveBridge IvooxBridge MastodonBridge RedditBridge SteamBridge SteamCommunityBridge TelegramBridge TrelloBridge TwitchBridge TwitterBridge VimeoBridge O también se puede rellenar con un asterisco y se activan todos los que están disponibles, sin más. ...
fdm, Scripts Y Correo
El objetivo final de esto es ir revisando el correo y realizar acciones por medio de scripts en función de lo que se reciba. En esta primera parte voy a preparar la recepción del correo. Para esto usaré fdm. Para hacerlo un poco más portable lo voy a instalar dentro de un contenedor, así lo podremos usar independientemente del sistema, siempre y cuando tenga Docker. Me interesa usarlo tanto en Red Hat como en Debian. ...
Ansible en mi Lab
Estoy finalmente, preparando mis servidores para manejarlos con Ansible. Voy a ir apuntando aquí los pasos que he seguido como notas para el futuro. 1. ssh-key preliminares El primer problema al que nos enfrentamos al intentar ejecutar cualquier cosa con ansible es que nos pide que confirmemos la huella de la máquina y esto al ser un proceso interactivo no permite que ansible ejecute nada tenga las claves ssh instaladas o no. Así que durante los primeros usos vamos a desactivar la comprobación de huellas. ...