GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar Linode StackScripts para implementar servidores Linux preconfigurados

Siempre hay algunas cosas que hacer después de implementar un nuevo servidor Linux. Podría estar cambiando la configuración de SSH, creando usuarios no root o instalando y configurando Docker.

Todas estas son tareas repetitivas que pueden ser especialmente frustrantes cuando estás probando algo y tienes que implementar servidores con la misma configuración.

Por ejemplo, utilizo la configuración de proxy inverso para probar diferentes tipos de aplicaciones y servicios web. Hacer todos esos pasos una y otra vez en todos los nuevos servidores podría ser una molestia.

Afortunadamente, Linode, nuestro proveedor de infraestructura, tiene una solución práctica en forma de StackScripts.

En este tutorial, te diré lo siguiente:

  • ¿Qué son los Linode StackScripts?
  • ¿Cómo usar esos StackScripts al implementar servidores con Linode?
  • Consejos para crear su propio StackScript
  • Implemente una configuración de proxy inverso usando StackScripts creados por el equipo del Manual de Linux (somos nosotros)

Este tutorial solo funciona con el proveedor de servidor en la nube Linode. Si no lo está utilizando, puede registrarse con este enlace para obtener créditos gratuitos de $60 durante dos meses.

¿Qué es un StackScript?

Es un script que se ejecuta después de que un servidor se implementa correctamente. Este script no tiene que ser un script de shell, puede estar escrito en Python o Perl, siempre que el intérprete esté allí, ¡todo lo que necesita es asegurarse de usar el shebang correcto!

Con StackScript, puede automatizar algunas de las tareas más monótonas de las necesidades posteriores a la implementación. Algunos de ellos se enumeran a continuación:

  • Crear un usuario no root.
  • Cambiar la configuración del servidor SSH (por ejemplo, deshabilitar la autenticación de contraseña).
  • Instalar algunos de los paquetes que desee, como Python, Docker, Ruby, etc.
  • Actualizando y reiniciando el servidor.

Suena como la característica que proporciona Dockerfile, ¿verdad? Es un concepto similar aquí.

Tipos de StackScripts

Bueno, no son exactamente "tipos". Depende de cómo estés interpretando la idea de un tipo. Si distingue dos scripts por el idioma (es decir, el intérprete) en el que están escritos, hay tantos tipos de StackScripts como intérpretes en una imagen de distribución específica como Python, Perl, Bash, Csh, Fish, Ksh, etc.

Aquí estoy distinguiendo StackScripts por su disponibilidad. Dependiendo de la disponibilidad, existen dos tipos de StackScripts:

  1. Cuenta StackScripts
  2. Secuencias de comandos de la comunidad

Cuenta StackScripts

Estos son sus scripts privados que ha creado usted mismo y que aún no ha hecho públicos.

Si inicia sesión en su cuenta de Linode, la encontrará en la pestaña "Cuenta StackScripts" en "StackScripts" en el panel lateral izquierdo.

Secuencias de comandos de la comunidad

Scripts que usted y otros han puesto a disposición del público a través del portal Linode.

Puede encontrarlo en el mismo lugar junto a "Cuenta StackScripts".

Práctica 1:Cree un StackScript simple e implemente un nuevo servidor con él

Para seguir, primero necesitará un par de cosas:

  • Una cuenta de Linode. Si forma parte de una organización y uno de los administradores creó una cuenta para usted, asegúrese de que su cuenta tenga los permisos necesarios para operar con StackScripts.
  • Algunos conocimientos de línea de comandos o secuencias de comandos de shell. Siempre puedes seguir nuestra Serie para principiantes de Bash.

Creación de un StackScript simple

En este ejemplo, creará un script bash que creará un usuario no root y copiará los detalles de la clave SSH para este usuario. No hace mucho pero es suficiente para comprender los conceptos básicos.

El nombre de usuario y las contraseñas estarán codificados en este ejemplo y no lo recomiendo en ningún entorno. Creé un script de pila para lograr una funcionalidad similar, que compartiré en un momento.

Vaya a la ventana de StackScript y haga clic en el botón "Crear un StackScript".

Ahora verá un par de campos de texto. Esto es lo que debe hacer:-

  • Primero, asigne una etiqueta a su secuencia de comandos. Asegúrese de que esto sea único para la lista de StackScript de su cuenta.
  • Luego, describa el propósito de la secuencia de comandos. Esto es opcional.
  • Las "imágenes de destino" son básicamente las distribuciones para las que está creando este StackScript. Es posible que los comandos o el intérprete que vaya a utilizar no estén presentes en una distribución de forma predeterminada, pero sí en otra. Asegúrese de elegir la(s) imagen(es) correcta(s) aquí. Por ahora, seleccione Ubuntu 20.04

Finalmente, la parte del guión. Aquí copia y pega el siguiente código

#!/bin/sh

useradd \
    -mG sudo \
    -s /bin/bash \
    -p $(awk -F: '$1 ~ /^root$/ {print $2}' /etc/shadow) \
    noroot

if test -d /root/.ssh; then
    cp -r /root/.ssh /home/noroot && \
        chown -R noroot:noroot /home/noroot/.ssh && \
        chmod 700 /home/noroot/.ssh
fi

rm -f /root/StackScript

El script hace lo siguiente

  • Crea un usuario no root, llamado noroot , con la misma contraseña que el usuario root.
  • Si ha agregado claves SSH a su Linode, el script copiará el .ssh directorio a la casa del usuario no raíz y configure la propiedad y los permisos requeridos.
  • Los StackScripts se almacenan en /root bajo el nombre StackScript , la última línea elimina el script del disco.

Una vez hecho todo, haga clic en "Guardar".

Implementar servidor usando StackScript

Ahora debería ver el StackScript en la lista de StackScript de su cuenta. Si no lo hace, vuelva a cargar la página.

Aquí, en el extremo derecho, haga clic en "Implementar nuevo Linode".

Otro método es seleccionar StackScripts para que sea el método de implementación en la página de creación de Linode como se muestra en la imagen a continuación.

Luego, continúe con su creación de Linode como está acostumbrado. Una vez que el estado de su Linode esté "en ejecución" en su tablero, espere un par de segundos y use SSH para iniciar sesión en el servidor, pero no como root, como noroot usuario.

ssh [email protected]

Debería poder iniciar sesión como este nuevo usuario.

Práctica 2:Implementación de servidor usando StackScripts creado por Manual de Linux

En Linux Handbook, hacemos muchas pruebas y configuraciones. Puede verlo en nuestros tutoriales de implementación. Para ayudar a nuestros lectores como usted, recientemente comenzamos a crear StackScripts.

Con nuestros StackScripts, puede implementar servidores con configuraciones bastante complicadas. Tome el proxy inverso de Nginx configurado con Docker, por ejemplo. Si desea usar esa increíble configuración, simplemente use StackScript y ahorre mucho tiempo.

Puede encontrar LHB StackScripts en nuestro repositorio de GitHub.

Aquí lo guiaré a través de la implementación del proxy inverso usando reverse-proxy-jwilder StackScript.

Estos scripts actualmente se prueban solo en diferentes versiones de Ubuntu.

Primero diríjase a la sección de StackScript de la comunidad y busque "reverse-proxy-jwilder". Debería ver un script llamado "another_debdut/reverse-proxy-jwilder".

Como antes, haga clic en el botón "Implementar nuevo Linode". Ahora debería ver un par de campos de entrada más de lo que está acostumbrado.

Déjame explicarte las opciones:

Crear un usuario no root

Usando la root usuario siempre en un entorno de producción no es la mejor idea. Pero Linode no tiene la opción de crear un usuario no root al implementar un servidor. Este script se encarga de eso.

La creación de usuarios es opcional porque hay momentos en los que se necesita realizar una pequeña prueba y es más fácil usar el root usuario por el momento.

Contraseña de usuario no-root

Esto es de nuevo opcional. Si deja este espacio en blanco, la contraseña raíz se reutilizará para el usuario no raíz.

Actualizar el sistema

Es posible que a veces no desee actualizar el sistema, ya que puede llevar un tiempo.

Puerto SSH

Primero, solicita un número de puerto para que se ejecute el demonio SSH, el valor predeterminado es el puerto 22. Recomiendo configurarlo en algo diferente y recuerde que como este cambio no se reflejará en su tablero .

Según otra información, el script también configura otras partes de SSH. Por ejemplo, si agrega un usuario, root no será accesible a través de SSH, si se proporciona al menos una clave pública, el inicio de sesión con contraseña está deshabilitado.

Bloquear la cuenta raíz

También puede bloquear la root usuario directamente desde la pantalla de implementación. Este es uno de los trucos estándar de fortalecimiento de SSH.

Grupo de Docker

Dado que se instalará Docker, puede agregar su usuario no root a docker grupo automáticamente desde aquí.

Eso es todo. Una vez hecho esto, continúe con la forma en que normalmente implementa un servidor.

Deberá esperar bastante tiempo para que se complete todo el proceso. Mientras tanto, después de iniciar sesión, puede consultar los registros con el comando tail:

tail -f /var/log/stackscript.log

Si ve algún error con estos StackScripts o desea ver que se está creando algún script personalizado, abra un problema en el repositorio de GitHub del Manual de Linux. Las contribuciones son siempre bienvenidas.

Para obtener más información sobre StackScripts, puede leer su documentación oficial aquí.


Linux
  1. Cómo usar rsync avanzado para grandes copias de seguridad de Linux

  2. Cómo usar systemd-nspawn para la recuperación del sistema Linux

  3. Cómo usar BUSCAR en Linux

  4. Cómo usar el comando Su en Linux

  5. Linux:¿cómo usar el espacio de intercambio solo para emergencias?

Cómo usar el comando SS de Linux

Cómo usar el comando nohup de Linux

Cómo usar traceroute en Kali Linux

Cómo usar la pantalla de Linux

Cómo comprobar los puertos de escucha en Linux (Puertos en uso)

Cómo instalar Grafana en servidores Linux