Author SHA1 Message Date
ChasquiLabo 5da579e669 Permitir borrar particiones existentes con confirmación 2026-10-06 17:21:02 -06:00
fauno 85271bdc7c fix: recibir la dirección ip remota desde el proxy 2026-09-29 12:42:11 -03:00
fauno ea63f99d88 feat: preferir overlay2 2026-08-27 10:53:47 -03:00
fauno e3e20ab1dd fix: /usr/sbin/tinc no existe 2026-07-29 17:13:15 -03:00
fauno f4e8c6ff8b feat: usar proveedores alternativos de dns
cuando la red local no provee dns
2026-06-18 12:29:49 -03:00
fauno 7dbee24ff1 fix: avisar cuando el hostname contenga guiones 2026-06-18 10:25:48 -03:00
fauno adb768fc30 feat: el segundo disco no puede tener particiones
closes #6
2026-05-21 10:55:24 -03:00
fauno c58ffb9e4d fix: iniciar docker en distintos pasos
closes #7
2026-05-21 10:44:56 -03:00
fauno bf1913b979 fix: chequear que el archivo de llaves tenga llaves #4 2026-05-21 10:41:18 -03:00
fauno b651cc388d fix: contrabarras
closes #2
2026-05-21 10:35:21 -03:00
fauno 58d7f17ffc fix: la mac cambió de lugar
closes #3
2026-05-21 10:27:27 -03:00
3 changed files with 77 additions and 16 deletions
+76 -15
View File
@@ -9,14 +9,73 @@ if ! test $UID -eq 0 ; then
exit 1
fi
hostname="`echo $HOSTNAME | tr -d "-" | tr -d "_"`"
dir="`realpath $0 | xargs dirname`"
authorized_keys=/home/$SUDO_USER/.ssh/authorized_keys
if test "$hostname" != "$HOSTNAME" ; then
not_ok "El nombre del servidor no pude contener _ ni -, por favor cambialo con:"
not_ok "sudo hostnamectl hostname $hostname"
exit 1
fi
if ! test -f $authorized_keys; then
not_ok "Primero usa ssh-copy-id desde tu computadora para copiar llaves SSH!"
exit 1
fi
if test `cat $authorized_keys | wc -l` -eq 0; then
not_ok "Tu archivo $authorized_keys está vacío, no será posible desbloquear la huerta luego"
exit 1
fi
if test -z "$1"; then
not_ok "El primer parámetro tiene que ser un disco completo sin particiones"
exit 1
fi
if ! grep -q "^FallbackDNS=9.9.9.9" /etc/systemd/resolved.conf; then
ok "Cambiando el proveedor de DNS"
echo "[Resolve]" >/etc/systemd/resolved.conf
echo "FallbackDNS=9.9.9.9#dns.quad9.net 149.112.112.112#dns.quad9.net" >>/etc/systemd/resolved.conf
systemctl restart systemd-resolved
fi
disk=$1
# Si el disco contiene particiones, ofrecer borrarlas
if lsblk -nr -o TYPE "$disk" | grep -q '^part$'; then
not_ok "El disco ${disk} contiene particiones, la instalación destruirá datos"
echo
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINTS "$disk"
echo
read -r -p "¿Quieres borrar todas las particiones de ${disk}? Escribe SI para continuar: " respuesta
if [ "$respuesta" != "SI" ]; then
not_ok "Operación cancelada"
exit 1
fi
ok "Preparando ${disk} para ser borrado"
sync
swapoff "$disk"* 2>/dev/null || true
lsblk -nrpo NAME,MOUNTPOINT "$disk" | awk '$2 != "" {print $1}' | while read -r part; do
umount "$part" || true
done
ok "Borrando particiones existentes de ${disk}"
wipefs --all --force "$disk"
blockdev --rereadpt "$disk" 2>/dev/null || true
fi
apt update
apt install -y dropbear-initramfs busybox-initramfs smartmontools git rsync make tinc dialog locales bash-completion gnutls-bin nano
@@ -48,22 +107,20 @@ if ! test -d $node_dir ; then
fi
ok "Reparando la RAP"
if test -d $node_dir/mac ; then
sed -re "s/^..(:.*)$/02\1/" -i $node_dir/mac
rm -f $node_dir/hosts/abyayala*
fi
sed -re "s/^..(:.*)$/02\1/" -i $node_dir/config/mac
rm -f $node_dir/hosts/abyayala*
NETWORK=comun ./rap add-host $HOSTNAME abyayala
NETWORK=comun ./rap install $HOSTNAME
if ! test -b /dev/mapper/dm_crypt-1 ; then
ok "Cifrando el disco, usa la misma contraseña de cifrado que usaste durante la instalación"
cryptsetup luksFormat /dev/sda
cryptsetup luksFormat $disk
fi
if ! test -b /dev/mapper/dm_crypt-1 ; then
ok "Abriendo el disco cifrado"
cryptsetup open /dev/sda dm_crypt-1
cryptsetup open $disk dm_crypt-1
fi
key_file=/etc/dm_crypt-1.key
@@ -73,11 +130,11 @@ if ! test -f "$key_file" ; then
dd bs=512 count=4 if=/dev/random iflag=fullblock | install -m 0600 /dev/stdin "$key_file"
ok "Asignando archivo de contraseña"
cryptsetup luksAddKey /dev/sda /etc/dm_crypt-1.key
cryptsetup luksAddKey $disk /etc/dm_crypt-1.key
fi
if ! grep -q dm_crypt-1 /etc/crypttab ; then
uuid="`blkid /dev/sda -o value -p | head -n2 | tail -n 1`"
uuid="`blkid $disk -o value -p | head -n2 | tail -n 1`"
ok "Agregando $uuid a /etc/crypttab"
echo "dm_crypt-1 UUID=$uuid /etc/dm_crypt-1.key luks" >> /etc/crypttab
@@ -155,20 +212,24 @@ if ! which docker &>/dev/null; then
ok "Instalando Docker"
curl https://get.docker.com | bash
ok "Iniciando Swarm"
docker swarm init --advertise-addr 127.0.0.1
ok "Creando red"
docker network create -d overlay proxy
ok "Agregando $SUDO_USER al grupo Docker"
usermod -aG docker $SUDO_USER
fi
if ! docker network ls | grep -q swarm ; then
ok "Iniciando Swarm"
docker swarm init --advertise-addr 127.0.0.1
fi
if ! docker network ls | grep -q proxy ; then
ok "Creando red"
docker network create -d overlay proxy
fi
if ! grep -q https://hormuz.respaldos.abyaya.la /etc/docker/daemon.json ; then
ok "Configurando Docker"
echo '{"registry-mirrors":["https://hormuz.respaldos.abyaya.la"]}' >/etc/docker/daemon.json
echo '{"storage-driver":"overlay2","registry-mirrors":["https://hormuz.respaldos.abyaya.la"]}' >/etc/docker/daemon.json
systemctl restart docker
fi
-1
View File
@@ -11,7 +11,6 @@ esac
. /usr/share/initramfs-tools/hook-functions
copy_exec /usr/sbin/tincd /usr/sbin/
copy_exec /usr/sbin/tinc /usr/sbin/
copy_exec /usr/sbin/ip /usr/sbin/
rm "$DESTDIR/etc/dhcpcd.conf"
+1
View File
@@ -34,6 +34,7 @@ sed -re "s/^#(WILDCARDS_ENABLED=1)$/\1/" \
-e "s/^#(SECRET_WILDCARD_CERT_VERSION=v1)$/\1/" \
-e "s/^#(SECRET_WILDCARD_KEY_VERSION=v1)$/\1/" \
-e "s/^#(COMPOSE_FILE=\".COMPOSE_FILE:compose.wildcard.yml\")$/\1/" \
-e "s/^#(TRUSTED_IPS=).*/\1\"['10.13.12.1']\"/" \
-i ~/.abra/servers/default/$traefik.env
ok "Generando e instalando certificados"