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á probando algo y tiene que implementar servidores con la misma configuración.

Para example, 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 servidores nuevos podría ser una molestia.

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

En este tutorial, te diré las siguientes cosas:

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

Este tutorial solo funciona con el proveedor del servidor en la nube Linode. Si no lo está utilizando, puede regístrate con este enlace para obtener créditos gratis 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 un 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:

  • Creación de 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.
  • Actualización y reinicio del 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, hay dos tipos de StackScripts:

  1. Cuenta StackScripts
  2. Comunidad StackScripts

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” debajo de “StackScripts” en el panel lateral izquierdo.

Comunidad StackScripts

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 “Account StackScripts”.

Linode Comunidad StackScripts

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

Para seguir, primero necesitará un par de cosas:

  • A cuenta Linode . Si es 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 scripting de shell. Siempre puede seguir nuestra Serie para principiantes de Bash.

Creando un StackScript simple

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

El nombre de usuario y las contraseñas se codificarán en este example 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”.

Crear un StackScript en Linode

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 exclusivo de la lista de StackScript de su cuenta.
  • A continuación, describa el propósito del guión. 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úrate de elegir la imagen 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”.

Guarde el StackScript en Linode

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.

Lista de cuentas de StackScript

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

Implementar usando StackScript

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.

Desde la ventana de creación de Linode

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 el noroot usuario.

                      
                        ssh [email protected]

                      
                    

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

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

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. Configure el proxy inverso de Nginx con Docker para example. Si desea usar esa increíble configuración, simplemente use StackScript y ahorre mucho tiempo.

Puede encontrar los LHB StackScripts en nuestro repositorio 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.

StackScript de proxy inverso

Déjame explicarte las opciones:

Crear un usuario no root

Utilizando el 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 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 campo 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. Para examplesi 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 el root usuario directamente desde la pantalla de implementación. Este es uno de los trucos estándar de fortalecimiento de SSH.

grupo acoplable

Dado que se va a instalar docker, puede agregar su usuario no root a la 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 verificar los registros con el comando tail:

                      
                        tail -f /var/log/stackscript.log

                      
                    

Si ve algún error con estos StackScripts o quiere ver que se está creando algún script personalizado, abrir 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 sus documentaciones oficiales aquí .

Related Posts