tawasuyu

tawasuyu/brahman

Rust 567TOML 214Markdown 67JSON 198130 Definiciones

⎇ main scripts/arje-net-up.sh Shell · 60 líneas · 2.0 KB Historia crudo

feat(seed): arje-prod levanta red + sshd, así se puede entrar por SSH be4de986b · sergio ·

1#!/bin/sh
2# arje-net-up — sube las interfaces de red y prepara los directorios de
3# runtime que servicios "systemd-aware" (sshd, etc.) esperan que
4# alguien les haya creado. Reemplaza parcialmente lo que
5# systemd-networkd + tmpfiles harían en un boot normal de Fedora.
6#
7# Modelo: DHCP en foreground sobre la primera interfaz no-loopback.
8# arje lo supervisa con Restart, así que si dhclient muere se relanza.
9# IPv6 vía RA lo maneja el kernel solo al subir el link.
10
11set -u
12
13# Directorios que servicios sin systemd necesitan poblados.
14mkdir -p /run/sshd        # PID file de sshd
15mkdir -p /var/empty/sshd  # privsep chroot
16
17# Up todas las interfaces "reales". Se excluyen las virtuales obvias.
18for sysiface in /sys/class/net/*; do
19    [ -d "$sysiface" ] || continue
20    name="$(basename "$sysiface")"
21    case "$name" in
22        lo|sit*|tun*|tap*|veth*|docker*|br-*|cni*|virbr*) continue ;;
23    esac
24    ip link set "$name" up 2>/dev/null || true
25done
26
27# DHCP en foreground sobre la primera interfaz real encontrada.
28iface=""
29for sysiface in /sys/class/net/*; do
30    [ -d "$sysiface" ] || continue
31    name="$(basename "$sysiface")"
32    case "$name" in
33        lo|sit*|tun*|tap*|veth*|docker*|br-*|cni*|virbr*) continue ;;
34    esac
35    iface="$name"
36    break
37done
38
39if [ -z "$iface" ]; then
40    echo "[arje-net-up] no encontré interfaces — durmiendo" >&2
41    exec sleep infinity
42fi
43
44echo "[arje-net-up] interfaz elegida: $iface"
45if command -v dhclient >/dev/null 2>&1; then
46    # `-d` = foreground (sin daemonizar), `-v` = más verbose en stderr.
47    echo "[arje-net-up] dhclient -d -v $iface"
48    exec dhclient -d -v "$iface"
49elif command -v dhcpcd >/dev/null 2>&1; then
50    # `-B` = foreground (no daemonize) en dhcpcd.
51    echo "[arje-net-up] dhcpcd -B $iface"
52    exec dhcpcd -B "$iface"
53elif command -v udhcpc >/dev/null 2>&1; then
54    # busybox udhcpc — `-f` foreground.
55    echo "[arje-net-up] udhcpc -f -i $iface"
56    exec udhcpc -f -i "$iface"
57else
58    echo "[arje-net-up] sin cliente DHCP — mantengo el link up (SLAAC) y duermo" >&2
59    exec sleep infinity
60fi