Mostrando entradas con la etiqueta xapi. Mostrar todas las entradas
Mostrando entradas con la etiqueta xapi. Mostrar todas las entradas

jueves, 8 de mayo de 2014

XenServer - Autenticar XAPI mediante PAM

Hola! ¿Cómo podemos hacer para crearnos un usuario en XenServer que nos sirva para conectarnos a la XAPI por HTTP/RPC?

Pues esto es lo que veremos paso a paso en este Post gracias a mi colega OPP.

Nos conectamos al Host Master y ejecutamos:
#Añadimos PAM como external Auth
xe pool-enable-external-auth auth-type=PAM service-name=pam

#Creamos un usuario, por ejemplo xenapiuser 
useradd -s /sbin/nologin xenapiuser

#Le ponemos un password 
echo "xenapiuser:xpassword" | chpasswd

#Añade un "sujeto" (mola llamarle sujeto...)
xe subject-add subject-name=xenapiuser
#Este comando nos devolvera un uuid, por ejemplo 9fec6479-5114-d69e-c384-e2d00f4c638d

#Le asignamos el rol que queramos, por ejemplo read-only
xe subject-role-add role-name=read-only uuid=9fec6479-5114-d69e-c384-e2d00f4c638d

#Vemos que está OK
xe subject-list
 uuid ( RO)                  : 9fec6479-5114-d69e-c384-e2d00f4c638d
 subject-identifier ( RO): u501
 other-config (MRO): subject-name: xenapiuser; subject-uid: u501; subject-gid: g501; subject-gecos: ; subject-displayname: xenapiuser; subject-is-group: false; subject-account-disabled: false; subject-account-expired: false; subject-account-locked: false; subject-password-expired: false
                 roles (SRO): read-only
En el resto de "Slaves" solo hemos de ejecutar:
useradd -s /sbin/nologin xenapiuser 
echo "xenapiuser:xpassword" | chpasswd
Y con esto ya tendríamos un usuario con que poder atacar la XAPI, sin permisos para hacerle nada ;)
Saludos

martes, 5 de febrero de 2013

XenServer - Nagios check usando XAPI

Hola! Este es el nuevo checkeo para XenServer que he estado haciendo. Es basicamente diferentes petiociones que realiza el servidor nagios contra la XAPI directamente. Es decir que no hace falta tener nrpe en los hosts. Simplemente con visibilidad al puerto 80/433 el checkeo es capaz de funcionar. 

Lo puedes descargar usando git en:

Por defecto, recomiendo poner el Master-Host en la definicion del servicio, pero no es mandatorio ya que el scrpt comprueba automáticamente si es el host master o no, y si no es master, se conecta al master. (obey your master, master!)

#!/usr/bin/python
# WTFPL (Do What The Fuck You Want To Public License)
#
#           DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
#                   Version 2, December 2004
#
#Copyright (C) 2013 Ferran Serafini 
#
#Everyone is permitted to copy and distribute verbatim or modified
#copies of this license document, and changing it is allowed as long
#as the name is changed.
#
#           DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
#  TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
#
# 0. You just DO WHAT THE FUCK YOU WANT TO.

import sys, time
import os
import XenAPI

...
Definicón del comando
define command{
        command_name check_xen
        command_line $USER1$/check_xen.py $ARG1$ root $ARG2$ $ARG3$ $ARG4$ $ARG5$
        }

Utilizaremos el mismo command para definir 3 servicios, uno para monitorizar los Hosts del pool, otro para verificar que estos hosts estan conectados a la cabina y otro que verifica el espacio disponible en los SR

Definicion de los servicios
#Cluster Hosts
define service{
        use                             C-XEN_HW
        host_name                       SB-XENBOX
        service_description             SB-XENBOX-CLUSTER_HOSTS
        check_command                   check_xen!Master_Host!passwd!HOSTS!0!0
        }
#Cluster PBDs
define service{
        use                             C-XEN_HW
        host_name                       SB-XENBOX
        service_description             SB-XENBOX-CLUSTER_STORAGE_PBDs
        check_command                   check_xen!Master_Host!passwd!SR!0!0
        }
#Free Storage
define service{
        use                             C-XEN_HW
        host_name                       SB-XENBOX
        service_description             SB-XENBOX-SHARED_STORAGE_FREE
        check_command                   check_xen!Master_Host!passwd!DISK!95!98
        }

Y con esto ya tenemos un nuevo check para Nagios ;)

viernes, 9 de diciembre de 2011

Monitorizar XAPI XenServer Nagios

Hola! hoy traigo un nuevo script para comprobar que la XAPI de vuestros XenServer están funcionando correctamente. Totalmente probado :) Lo puedes descargar desde github aquí.

A grandes rasgos el script chequea que la XAPI esta operativa tanto a nivel de procesos como a nivel de consultas
check_xapi.sh
#!/bin/bash
#Check que comprueba el estado de la XAPI

#contamos los procesos que hay de xapi
procs=`ps -elf | grep xapi | grep -v grep | wc -l`

#Verificamos que haya algun proc xapi y si no lo hay, critical
if [ -z "$procs" ] ; then
   echo "Critical: No hay procesos de Xapi"
   exit=2

else #Hay procesos, pues lanzamos una peticion para ver si respnde ok

 #Vemos si es capaz de conectar con la Xapi y extramos el numero de hosts del pool
   test_xapi=`sudo xe host-list | grep name-label | wc -l`
 #test_xapi="1" #Fuerza a warning
 if [ $test_xapi -gt 0 ]; then
    ok_test=$(sudo xe host-list name-label=`hostname` params=name-label --minimal)
    echo "OK: XAPI respondiendo en $ok_test "
    exit=0
else
    new_test=$(sudo xe host-list name-label=`hostname` params=name-label --minimal)
    echo "Warning: Hay procs de XAPI pero algo falla $new_test"
    exit=1
 fi
fi

#Salida con el codigo de error para Nagios
exit $exit