Krypton Solid

La última tecnología en raciones de 5 minutos

Escriba scripts de automatización de configuración de nube en el archivo de configuración

o profundizar en un conocimiento profundo de los lenguajes de automatización. La tecnología cloud-config en cloud-init proporciona un buen grado de automatización de la implementación sin exigir varias tecnologías nuevas. Está en uso en algunos de los proveedores de nube más importantes, aunque es posible que no se dé cuenta.

Cloud-init es un paquete de scripts y utilidades que maneja la inicialización temprana de una instancia en la nube. Cloud-config es una implementación impulsada por un archivo de configuración. Con cloud-config para cloud-init, el administrador puede inyectar la configuración y configurar las acciones que se realizarán en la implementación inicial del sistema operativo, personalizándola para que se ajuste a requisitos específicos.

Escriba el archivo de configuración para, por ejemplo, agregar usuarios; instalar paquetes adicionales; crear, modificar y configurar archivos; o llame a scripts externos. El archivo de configuración está formateado en YAML.

Cloud-config es compatible con la mayoría de los principales sistemas operativos Linux. La mayoría de los principales proveedores de nube, incluidos DigitalOcean, Rackspace, AWS y Microsoft Azure, lo admiten. Este tutorial utiliza DigitalOcean para demostrar la configuración de cloud-config.

Consejos de configuración de la nube

Este tutorial guía a un administrador a través de cómo crear e insertar manualmente un archivo de configuración de configuración de nube, pero también es posible usar una API. El resultado es una máquina virtual configurada para un servidor que tiene un usuario secundario no root con capacidad de inicio de sesión Secure Socket Shell (SSH) instalado con un servidor Apache.

Inicie sesión en la interfaz de DigitalOcean y seleccione la opción para crear una nueva gota, que es el lenguaje del proveedor para VM. Ampliar la Seleccionar opciones adicionales pestaña y seleccione Datos del usuario (ver figura). Colocaremos los comandos / archivo de configuración de la nube aquí.

Configuración de la nube de DigitalOcean
Cree un archivo de configuración para una máquina virtual vacía en DigitalOcean aquí.

La primera línea del archivo de configuración identifica la información como un archivo de configuración de nube: Ingrese # cloud-config. Los comentarios se incluyen en el archivo con # al comienzo de cada línea de comentario.

Cree la configuración de la nube que se adapte a sus necesidades y péguela en esta ventana. Cuando el proveedor de la nube crea el servidor, ingiere los datos de configuración de la nube.

Como ocurre con todos los archivos YAML, las pestañas del archivo interrumpirán la configuración. El formato es de suma importancia.

Este es un punto de partida para la configuración de la nube y ayudará a un administrador nuevo en la tecnología a crear un script con el tiempo. Este enfoque requiere que elimine y vuelva a crear la máquina virtual, pero no costará mucho, siempre que recuerde eliminar las gotas una vez que haya terminado.

Genere el código una línea a la vez. Si algo se rompe, puede volver a una secuencia de comandos en funcionamiento simplemente eliminando o comentando la última línea o comando que se editó.

Cloud-config en acción

Es hora de comenzar a codificar un archivo de configuración para cloud-init.

1. Agregue un usuario.

# cloud-config

usuarios:

– nombre: stuart

claves-autorizadas-ssh:

– ssh-rsa

sudo: [‘ALL=(ALL) NOPASSWD:ALL’]

grupos: sudo

shell: / bin / bash

Esto crea un usuario y utiliza claves SSH creadas previamente. Los otros elementos establecen el shell deseado, bash, en este caso, y utilizan el sudo comando para realizar tareas de gestión sin necesidad de especificar la contraseña de usuario.

Es posible especificar una contraseña hash para iniciar sesión. Esto ya no se considera seguro y, por lo tanto, definitivamente no debe usarse. En su lugar, utilice el método de clave SSH.

2. Sin embargo, en el momento de la publicación, aún puede iniciar sesión mediante contraseña, e incluso el usuario root puede iniciar sesión de forma predeterminada en la mayoría de las configuraciones de nube. Esto no es ideal y debería desactivarse. Un administrador puede configurarlos en el sshd_config archivo con el sed (sed = editor de flujo) comando, en combinación con el runcmd opción. Dentro de / etc / sshd / sshd_config archivo, hay líneas específicas que deben modificarse.

El runcmd también puede ejecutar comandos igualmente arbitrarios o ejecutar scripts. Para habilitar lo anterior, use las siguientes entradas en runcmd:

– sed -i -e ‘/^PermitRootLogin/s/^.*$/PermitRootLogin no /’ / etc / ssh / sshd_config

– sed -i ‘s |[#]* PasswordAuthentication sí | PasswordAuthentication no | g ‘/ etc / ssh / sshd_config

Agregar paquetes es igualmente fácil, nuevamente, usando los elementos de configuración paquetes:. Para instalar un servidor web, por ejemplo, puede ser tan simple como lo siguiente:

paquetes:

– apache2

Especifique varios paquetes y grupos si lo desea.

3. Para actualizar el servidor, asegúrese de que estén instaladas todas las actualizaciones más recientes. Una vez que todos los paquetes estén actualizados, actualice la base de datos de paquetes y realice actualizaciones de paquetes. Esto es tan simple como:

package_upgrade: verdadero

4. Una vez que se completen las actualizaciones, reinicie su máquina para asegurarse de que todos los cambios se hayan bloqueado. Agregue la siguiente entrada al final de la configuración. Este código se toma directamente de los ejemplos de configuración de la nube:

power_state:

tiempo de espera: 120

retraso: «+5»

mensaje: reiniciando en cinco minutos. Guarde su trabajo.

modo: reiniciar

Hay registros disponibles para depurar la salida almacenada en / var / log /, que se llamará cloud-init.log y cloud-init-output.log. Este es un glosario incompleto de posibles comandos. Los comandos adicionales se encuentran en el manual. Utilice un sistema de control de versiones para gestionar todos los cambios, crear el archivo de configuración a lo largo del tiempo y garantizar la precisión en cada paso del proceso.

El código de ejemplo completo se muestra a continuación. Recuerde usar espacios, no pestañas:

# cloud-config

usuarios:

– nombre: stuart

claves-autorizadas-ssh:

– ssh-rsa

sudo: [‘ALL=(ALL) NOPASSWD:ALL’]

grupos: sudo

shell: / bin / bash

paquetes:

– apache2

runcmd:

– sed -i -e ‘/^PermitRootLogin/s/^.*$/PermitRootLogin no /’ / etc / ssh / sshd_config

– sed -i ‘s |[#]* PasswordAuthentication sí | PasswordAuthentication no | g ‘/ etc / ssh / sshd_config

Suponiendo que todas las claves SSH estén configuradas correctamente en su estación de trabajo local, debería poder iniciar sesión y verificar que se hayan realizado los cambios.

La documentación de cloud-init ofrece algunos ejemplos prácticos útiles. Puede llevar algo de tiempo y retoques lograr la configuración exacta deseada, pero el punto de entrada es mucho más bajo, lo que lo hace atractivo como una solución rápida y fácil para configuraciones estandarizadas simples.

Deja un comentario

También te puede interesar...

¿Es CoreOS Rocket mejor que Docker?

¿En qué se diferencia la tecnología de contenedores Rocket de CoreOS de la seguridad de Docker? ¿Hay escenarios en los que … ¿Sería preferible usar Rocket sobre Docker y viceversa? CoreOS Rocket, comúnmente conocido como

Reporte de pasivos contingentes y cumplimiento de GAAP

¿Cuáles son los requisitos de declaración de la deuda contingente? Los pasivos contingentes, pasivos que dependen del resultado de un evento incierto, deben exceder dos umbrales antes de que puedan informarse en los estados financieros.

Las acciones de IBD 50 muestran impulso

El mes pasado agregué Lista de inversores empresariales 50 a nuestra cobertura gráfica. Esta lista combinó fuerza relativa y fundamentos sólidos para destacar 50 de las mejores acciones del mercado. hoy actualicé Libro de navegación

Estrategias del metro

Los pasajeros del metro siempre toman una serie de decisiones minuciosas. ¿Te sientas y sostienes el pilar o te sientas en una fila abarrotada? ¿Te quedas en el mismo lugar o te mudas a un

Definición de obligación tributaria especial

¿Qué es una obligación tributaria especial? Una obligación tributaria especial es un tipo de bono municipal que generalmente se paga con los ingresos de un impuesto que grava una actividad o un activo existente específicamente

Cómics de la semana # 411

Cómics de la semana # 411 Cada semana presentamos un conjunto de cómics creados exclusivamente para WDD. El contenido gira en torno al diseño web, los blogs y las situaciones divertidas que encontramos en nuestra

Definición de la agencia de inversión de Brunei

¿Qué es la Agencia de Inversiones de Brunei? La Agencia de Inversiones de Brunei (BIA), fundada en 1983, es una organización de inversión propiedad del gobierno que posee y administra el fondo de reserva general