Linux

Cómo enviar comandos y estado a los minions de Linux desde el controlador Salt

Imagen: iStock/EvgeniyShkolenko

En un tutorial anterior, demostré cómo instalar SaltStack en un controlador y conectarlo al minion (consulte: Cómo implementar SaltStack de código abierto para la configuración y administración automatizadas del servidor). Con SaltStack en funcionamiento, puede enviar comandos a sus secuaces. Esto se puede usar en su centro de datos de alojamiento local o en la nube.

Por ejemplo, supongamos que tiene varios minions que alojarán su sitio web y necesita instalar NGINX en ellos. Usando SaltStack, puede instalar el servidor web en cada minion conectado con un solo comando.

Para cualquier administrador, tener ese poder puede convertir seriamente un día ajetreado en uno más manejable. No necesita ir a cada servidor e instalar NGINX manualmente, puede hacerlo desde una única interfaz de terminal. Ese es el poder de SaltStack.

Déjame mostrarte cómo se hace esto.

Mirar: Kubernetes: una hoja de trucos (PDF gratuito) (República tecnológica)

que necesitas

Para que esto funcione, necesita un SaltController y al menos un minion configurado. Puedes tener tantos secuaces como quieras. Asegúrate de haber leído el tutorial anterior para implementar primero el controlador y el súbdito.

Cómo verificar el uso del espacio en disco

Lo primero que hacemos es verificar el uso de espacio en disco de todos los minions (en mi caso fue solo uno). La forma en que funciona SaltStack es que ejecuta Sal e indícale que dé órdenes específicas a los secuaces. Recuerda, en el artículo anterior, probamos la conexión de minions usando ping de la siguiente manera:

LEER  Aprende Linux con estos cursos de Pluralsight

sudo salt UBUNTUSERVER test.ping

En el comando anterior, UBUNTUSERVER es el nombre del minion y test.ping es el comando para ejecutar en el minion.

Ahora que sabemos que nuestro controlador y el minion aún pueden verse, averigüemos el uso del espacio en disco en el minion usando el siguiente comando:

sudo salt UBUNTUSERVER disk.usage

El comando anterior informará algo como:

UBUNTUSERVER:
----------
/:
----------
1K-blocks:
102684600
available:
90923280
capacity:
7%
filesystem:
/dev/sda2
used:
6502212
/dev:
----------
1K-blocks:

1488292
usable:
1488292
capacidad:
0%
Sistema de archivos:
udev
usó:

/dev/shm:
————
Bloque de 1K:
1532172
usable:
1531848
capacidad:
1%
Sistema de archivos:
tmpfs
usó:
324

Habrá más salida, pero la corté para ahorrar espacio. Si tiene varios minions conectados, puede ver el uso del espacio en disco de cada minion con el siguiente comando:

sudo salt '*' disk.usage

También puedes enviar comandos compuestos a tus secuaces. Estos comandos están en una lista separada por comas de la siguiente manera:

sudo salt '*' cmd.run,test.ping,test.echo 'cat /proc/cpuinfo',,"Hello Tecnopedia!"

Lo anterior ejecutará tres comandos:

cmd.run
test.ping
test.echo

Donde se pone complicado es la entrada para cada comando.ambas cosas comando para ejecutar y eco de prueba requiere entrada, mientras que prueba.ping ciertamente no. Los comandos se enumeran primero, seguidos de la entrada de cada comando. Cada sección está separada por una coma, por lo que la sección de entrada parece tener dos comas una al lado de la otra. Esto es porque:

  • ‘gato/proc/cpuinfo’ es comando para ejecutar

  • test.ping no requiere entrada

  • «¡Hola Tech Republic!» es la entrada eco de prueba

Cómo instalar software en Minion

Ahora, instalemos NGINX en nuestro minion. Para hacer esto, usamos el comando pkg.install de la siguiente manera:

sudo salt UBUNTUSERVER pkg.install nginx

Suponga que tiene 100 minions conectados a su controlador, pero solo 5 de ellos serán servidores web. Puede emitir el comando:

sudo salt web1,web2,web3,web4,web5 pkg.install nginx

La salida del comando anterior incluirá:

UBUNTUSERVER:
----------
…
…
nginx:
----------
new:
1.18.0-0ubuntu1
old:
nginx-common:
----------
new:
1.18.0-0ubuntu1
old:
nginx-core:
----------
new:
1.18.0-0ubuntu1
old:

Ahora debería poder apuntar su navegador web a la dirección IP de cualquiera de estos servidores web y ver la página de bienvenida de NGINX. Alternativamente, puede verificarlo emitiendo:

sudo salt web1,web2,web3,web4,web5 cmd.run 'ls -l /var/www/html'

La salida del comando anterior incluirá:

index.nginx-debian.html

Cómo aplicar el estado de sal

Suponga que desea que esos servidores NGINX incluyan rsync y curl. Esto significa que desea que estos servidores estén en un estado determinado. Para ello, aplicas el estado de sal. Para hacer esto, crea un archivo .sls que contiene los paquetes para instalar. Para nuestro estado, nos aseguraremos de que NGINX, rsync y curl estén instalados.

Antes de hacer eso, crea un nuevo directorio con el siguiente comando:

sudo mkdir /srv/salt

Ahora, cree el archivo .sls con el siguiente comando:

sudo nano /srv/salt/webserver_setup.sls

En el archivo, pegue lo siguiente:

network_utilities:
pkg.installed:
- pkgs:
- rsync
- curl
nginx_pkg:
pkg.installed:
- name: nginx
nginx_service:
service.running:
- name: nginx
- enable: True
- require:
- pkg: nginx_pkg

Guarde y cierre el archivo.

Para aplicar el estado a los secuaces de su servidor web, debe ejecutar el siguiente comando:

sudo salt web1,web2,web3,web4,web5 state.apply webserver_setup

El estado se aplicará y los cinco servidores web ahora tendrán instalados los paquetes necesarios.

Ese es el punto de enviar comandos y aplicar el estado del controlador Salt a los minions de Linux. Con esta capacidad, su trabajo administrativo se vuelve más fácil.

Suscríbase a Cómo hacer que la tecnología funcione de Tecnopedia en YouTube Obtenga los últimos consejos técnicos para profesionales de negocios de Jack Wallen.

LEER  NYU dona espacio de oficinas para el primer centro Python y Tor de Nueva York

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba