Hay varias formas de gestionar la dirección IP y el nombre de host de tu computadora Ubuntu. Los administradores del sistema cuentan con las herramientas nmcli, netplan, hostname y hostnamectl a su disposición. Aunque estas herramientas hacen un buen trabajo por sí solas, ¿cómo puedes integrarlas para mejorar tu juego de automatización?
Puedes crear un script de Bash que se encargue de la configuración por ti. En este artículo, aprenderás cómo establecer un nuevo nombre de host y configurar la información de la dirección IP, todo con un script de Bash que acepta entradas.
Cada ejemplo se basará en el anterior. Al final del artículo, tendrás el conocimiento necesario para construir un script de configuración completamente funcional en Bash para usar en un host Ubuntu nuevo o existente.
Prerrequisitos
No es necesario ser un experto en scripting de shell Bash para seguir este tutorial, pero asegúrate de tener los siguientes requisitos.
- A host running on Ubuntu. This tutorial uses Ubuntu 22.04 LTS.
- Privilegios de root en el host de Ubuntu.
- A text editor, such as
vim
,nano
, or VSCode.
Configuración del nombre de host con hostnamectl
Cada host debe tener un nombre único. Usar el comando hostnamectl te permite consultar o cambiar el nombre de host. En este caso, la sintaxis es la siguiente para cambiar tu nombre de host actual a lo que desees.
Ejecutar el comando hostnamectl con el parámetro común set-hostname seguido de un valor de cadena entre comillas dobles como el nuevo nombre de host. Si estuvieras ejecutando este comando manualmente, debería funcionar sin problemas.
Pero, ¿qué pasa si quisieras poner esto en un script que acepta la entrada del usuario? Empieza usando el comando read, seguido del parámetro -p, que significa prompt, y una cadena para indicar al usuario qué ingresar para este prompt. Luego, guarda la entrada en una nueva variable, llamada NUEVO_NOMBRE_HOST.
Una vez que el nombre de host está almacenado en la variable NUEVO_NOMBRE_HOST, puedes proporcionar la variable al comando hostnamectl como se muestra en el ejemplo a continuación.
¡Y eso es todo! ¡Combinar estos dos comandos de una línea permite que funcionen en un script! Pero, tienes una tarea adicional: configurar las opciones de red.
Configuración de la información de la dirección IP con netplan
El comando netplan es el método de facto para administrar la información de la dirección IP de una interfaz de red para hosts de Ubuntu modernos. La herramienta netplan abstrae las configuraciones de red de varios backends utilizando archivos de configuración YAML.
La herramienta netplan lee estos archivos de configuración durante el arranque del sistema y los aplica a la(s) interfaz(es) de red de destino. ¿Por qué es importante eso, podrías preguntar?
Tener tu configuración de red en YAML te permite empezar a guardar o respaldar tu configuración en un repositorio de Git. Y dado que Git proporciona capacidades de seguimiento de cambios, puedes usar ese mismo archivo de configuración sin tener que recrearlo para futuros despliegues usando pipelines de CI / CD. ¡Ya sabes, DevOps!
Antes de agregar líneas a un archivo de configuración, debes crear el archivo de configuración usando el comando touch.
El comando anterior colocará el nuevo archivo de configuración en tu directorio de inicio. A partir de aquí, ejecutarás el comando echo para eco lo que escribas e inyectarlo en el archivo de configuración línea por línea usando la redirección de entrada para STDOUT > (añadir) y >> (añadir al final).
Nota: Utiliza dobles espacios y no tabulaciones para la indentación en YAML.
Con cada comando echo, construyes la configuración YAML usando el espaciado apropiado redirigiendo la entrada usando STDOUT. Alternativamente, podrías construir este archivo manualmente usando un editor de texto. Pero, no necesitas construir el archivo manualmente.
En su lugar, solicita al usuario que introduzca la información de la dirección IP que necesitas usando el mismo comando read
.
Consejo: Una forma de listar toda la información de la interfaz de red en Ubuntu es ejecutando el comando ip address.
Eso es mejor. Ahora puedes redirigir la entrada del usuario de nuevo a unas pocas variables para su uso en un script.
Hay muchas otras propiedades que puedes configurar que este tutorial no cubre en detalle. Si te gustaría ver propiedades comunes adicionales, asegúrate de leer las páginas del manual de netplan.
Con las opciones de red completas, ¡es hora de construir un solo script!
Juntándolo Todo en un Script de Bash
Ahora, combinarás todo en un solo script de Bash con lo que aprendiste de las secciones anteriores. Abre tu editor de elección, pega el código de abajo, y guarda el archivo como ~/host_deploy.sh
.
Para ejecutar el script, ejecute el siguiente comando para invocar el script con bash
en su terminal.
El script le solicita que ingrese un nuevo nombre de host y la información de la dirección IP y le recuerda reiniciar el host para que los cambios surtan efecto.
Ahora que tiene un script funcional en su directorio de usuario, podría crear una imagen dorada para reutilizar o compartir con técnicos y aquellos que realizan rutinariamente esta tarea.
Conclusión
¡Felicidades! Has llegado al final del artículo y has construido un script de Bash completamente funcional que puedes utilizar repetidamente.
También podrías intentar usar este script con Ansible y responder las preguntas usando un play de Ansible. Las tareas en este tutorial son solo una pequeña muestra de los elementos de configuración inicial que podrías comenzar a usar en tus scripts de construcción e implementación.
Ahora sabes cómo aceptar la entrada del usuario, establecer parámetros básicos del sistema utilizando un script de Bash y aplicar esa técnica para cambiar nombres de host y direcciones IP en Ubuntu Linux.
Source:
https://adamtheautomator.com/change-linux-ip-hostname-bash-script/