SaltStack: Uso de grains

¿Os leísteis ya la entrada sobre SaltStack de primeros pasos con Salt? Si no lo habéis hecho, antes de seguir, este es un buen momento para hacerlo aquí.
En esa primera entrada explicábamos como dar de alta un nuevo equipo en el servidor, aceptar su clave y hacer una primera prueba de concepto. Hoy vamos a ver un nuevo punto en la arquitectura de SaltStack: los grains.
Los grains son los datos del sistema del cliente SaltStack. Estos datos son los que nos indican el tipo de sistema operativo, el dominio al que pertenece, la IP, RAM, versión y un largo etc.
Para obtener la salida de grains, podemos hacerlo tal que así,
shell> salt '*' grains.items
  biosreleasedate: 01/01/2006
  biosversion: Bochs
  cpu_flags: fpu de pse tsc msr pae mce cx8 apic sep mtrr...
  cpu_model: QEMU Virtual CPU version 1.1.2
  cpuarch: x86_64
  defaultencoding: UTF-8
  defaultlanguage: en_GB
  domain: mydomain.local
  fqdn: test.server.local
  gpus:
      {'model': 'GD 5446', 'vendor': 'unknown'}
  host: sei
  id: sei.mydomain.local
  ip_interfaces: {'lo': ['127.0.0.1'], 'eth0': ['10.1.100.15']}
  ipv4:
      127.0.0.1
      10.1.100.15
  kernel: Linux
  kernelrelease: 3.9-1-amd64
  localhost: sei
  lsb_distrib_codename: jessie
  lsb_distrib_description: Debian GNU/Linux testing (jessie)
  lsb_distrib_id: Debian
  lsb_distrib_os: GNU/Linux
  lsb_distrib_release: testing
  manufacturer: Bochs
  master: salt
  mem_total: 2012
  nodename: sei
  num_cpus: 1
  num_gpus: 1
  os: Debian
  os_family: Debian
  oscodename: jessie
  osfullname: Debian
  osrelease: testing
  path: /sbin:/usr/sbin:/bin:/usr/bin
  productname: Bochs
  ps: ps -efH
  pythonpath:
      /usr/bin
      /usr/lib/python2.7
      /usr/lib/python2.7/plat-x86_64-linux-gnu
      /usr/lib/python2.7/lib-tk
      /usr/lib/python2.7/lib-old
      /usr/lib/python2.7/lib-dynload
      /usr/local/lib/python2.7/dist-packages
      /usr/lib/python2.7/dist-packages
      /usr/lib/pymodules/python2.7
  pythonversion: 2.7.5.final.0
  saltpath: /usr/lib/python2.7/dist-packages/salt
  saltversion: 0.16.2
  serialnumber: Not Specified
  bash: /bin/bash
Estos datos los podemos emplear dentro de la lógica de Salt, como veremos un poco más adelante y también para diferenciar los equipos en los que queramos ejecutar algo.
Si os acordais, para lanzar una prueba, hacíamos los siguiente
shell> salt '*' test.ping
Con ello, ejecutábamos la función test.ping en todos los equipos que estuviesen aceptados en el servidor. Usando grains, podemos hacer una selección de los mismos sobre la que ejecutar los comandos. Para ello tenemos la opción -G, que la seguimos de la opción por lo que deseamos diferenciar.
shell> salt -G 'os:Debian' test.ping
shell> salt -G 'cpuarch:x86_64' test.ping
Como podéis observar, en la primera se ejecuta el comando sobre todos aquellos equipos con sistema operativo Debian, mientras que en el segundo ejemplo, sobre todos aquellos equipos de arquitectura x86_64.

La entrada SaltStack: Uso de grains la puedes leer en Puppet Linux.


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios