emq-TE1/install/n-manager.sh

65 lines
2.0 KiB
Bash

#!/bin/bash
# Nombre del script
SCRIPT_NAME="n-manager.sh"
# Registra el inicio en /opt/curl.txt
echo "Inicio: $SCRIPT_NAME" >> /opt/curl.txt
# Verificar si es un VPS o máquina virtual
if systemd-detect-virt --quiet; then
echo "VPS no Instalado: $SCRIPT_NAME" >> /opt/curl.txt
exit 0 # Salir si es un VPS o máquina virtual
else
# Instalar NetworkManager si no está instalado
if ! dpkg -l | grep -q "network-manager"; then
sudo apt-get update -y && sudo apt-get install -y network-manager
fi
# Configurar NetworkManager para manejar las interfaces
if [ -f "/etc/NetworkManager/NetworkManager.conf" ]; then
sudo sed -i "s|^managed=.*|managed=true|g" /etc/NetworkManager/NetworkManager.conf
fi
# Verificar y reescribir el archivo /etc/network/interfaces si existe
if [ -f "/etc/network/interfaces" ]; then
sudo cat > /etc/network/interfaces <<- "EOF"
# interfaces(5) file used by ifup(8) and ifdown(8)
# Please note that this file is written to be used with NetworkManager
# See interfaces(5) for more examples.
auto lo
iface lo inet loopback
EOF
fi
sudo systemctl stop systemd-networkd-wait-online
sudo cat > /lib/systemd/system/systemd-networkd-wait-online.service <<- "EOF"
[Unit]
Description=Wait for NetworkManager to configure the network
Documentation=man:nm-online
DefaultDependencies=no
Before=network.target
After=NetworkManager.service
Wants=NetworkManager.service
[Service]
Type=oneshot
ExecStart=/usr/bin/nm-online -s -q
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
EOF
# Detener y deshabilitar servicios de red previos (networking, dhcpcd)
sudo systemctl daemon-reload
sudo systemctl stop networking
sudo systemctl disable networking
sudo systemctl stop dhcpcd
sudo systemctl disable dhcpcd
sudo systemctl start systemd-networkd-wait-online
# Habilitar y reiniciar NetworkManager
sudo systemctl enable NetworkManager
sudo systemctl restart NetworkManager
fi
# Registra el final en /opt/curl.txt
echo "Finalizado: $SCRIPT_NAME" >> /opt/curl.txt