EMC: Ejecutar ESXgrab 1.3.2 sin que pida parámetros

Configuración de customer.profile

 

#Thu Dec 05 07:13:03 CET 2013
EMAIL_ID=id@mycompany.com
PARTY_NUMBER=0000000
CONTACTPHONE_ID=0000000
CONTACT_ID=0000000
CUSTOMER_ID=000000

Para cada host, ejecutamos:

emcgrab.exe -host myhost -user root -password mypassword -vmsupport -legal -autoexec

Instalación y configuración de OCS Inventory

Vamos a hacer un piloto con ocs inventory. Hemos intentado usar la máquina virtual que dan en la página principal de ocs inventory, sin éxito. Está documentado al final de este mismo tutorial.

Instalación completa sobre Debian

Prerequisito: Instalación de mysql

apt-get install -y mysql-client-5.5 mysql-server

Recomendamos instalar también phpmyadmin para poder hacer cambios de forma fácil sobre la base de datos.

Prerequisito: Instalación de apache2

apt-get install -y apache2 libapache2-mod-perl2 libapache2-mod-perl2-dev libapache2-mod-php5 libio-compress-perl

Prerequisito: Instalación perl

Configuración previa del proxy si nos hace falta.


cpan install Config::IniFiles XML::Simple Compress::Zlib
cpan install DBI DBD::Mysql Apache::DBI Net::IP Apache2::SOAP
apt-get install expat libexpat1-dev libssh-dev libconfig-yaml-perl
cpan install Crypt::SSLeay XML::Parser SOAP::Lite
cpan -i XML::Entities

Prerequisito: Instalación php

apt-get install php5 php-pear
apt-get install php5-gd libphp-pclzip

Instalación servidor ocs

Hemos dejado todas las opciones por defecto, aunque, lo hemos tenido que ejecutar varias veces por problemas con módulos de perl que faltaban.

tar -xvzf OCSNG_UNIX_SERVER-2.1rc1.tar.gz
cd OCSNG_UNIX_SERVER-2.1rc1/
sh setup.sh
service apache2 restart

Abrimos el navegador a http://administration_console/ocsreports  para acabar de configurar:

Gestión OCS

Usuario por defecto: admin:admin

Antes de finalizar, hay que borrar el fichero install.php

rm -f /usr/share/ocsinventory-reports/ocsreports/install.php

Cambiar la clave de usuario de ocs en mysql, y cambiar el usuario de conexión en el archivo de php:

cat /usr/share/ocsinventory-reports/ocsreports/dbconfig.inc.php
<?php
define("DB_NAME", "ocsweb");
define("SERVER_READ","localhost");
define("SERVER_WRITE","localhost");
define("COMPTE_BASE","ocs");
define("PSWD_BASE","newpasswd");
?>

Y, la clave de los agentes:
grep OCS_DB_ /etc/apache2/conf.d/z-ocsinventory-server.conf
PerlSetEnv OCS_DB_USER ocs
PerlSetVar OCS_DB_PWD newpasswd

Los logs de ocs se guardan en:

/var/log/ocsinventory-server

Al configurar los agentes, se usa como ruta:

http://my-ip/ocs-inventory

Cuidado con los proxies. Requiere su configuración, porque si no, el tráfico no llega al destino.

 

 

Pruebas con la máquina virtual de ocs inventory

Tras la descarga, subimos la máquina virtual a un datastores de la plataforma de virtualización y registramos la máquina en nuestro inventario:

Para registrar la máquina virtual, se selecciona el archivo vmx, y, en el menú contextual, aparece la opción de registrar la nueva máquina:

Al añadir, da un error de host, relacionado con el disco

El problema está en la versión de hw virtual, por lo que será necesario hacer una actualización para que pueda ejecutar en vmware 5.5

Además de hacer un upgrade de versión, necesitamos convertir el formato de disco. En nuestro caso, no tener herramientas disponibles, lo instalamos sobre debian de 0.

 

F5 Diferencias TCL entre versión 11.2.1 y 11.3

Comparador !

En 11.2.1, el operador !, sirve para

if  { ([HTTP::method] eq "POST") and
! (  [HTTP::header SOAPAction]  eq ""  ) }

 

En 11.3, lo tenemos que sustituir por:

if { ([HTTP::method] eq "POST") and
( [HTTP::header SOAPAction] ne "" ) }

Toda la información de los operadores en TCL (irule) está en la página de F5.

String map para quitar el identificador de vlan

Se puede quitar varios identificadores de vlan a la vez, con un único map:

# Remove vlan identifier
set my_client_ip [string map { "%123" "" "%512" "" } [IP::remote_addr]]

Depuración Errores TCL

grep -i  "tcl error"  ltm | cut -d' ' -f12-26 |uniq

Actualización F5 Big IP 11.3.0 HF 8

La descarga de imágenes se hace desde la web de F5:

https://downloads.f5.com/esd/product.jsp?sw=BIG-IP&pro=big-ip_v11.x&ver=11.3.0

Hotfix-BIGIP-11.3.0-3144.0-HF8 11.3.0 HotFix 10/14/2013 Hotfix-BIGIP-11.3.0-3144.0-HF8
11.3.0 11.3.0 Release 12/17/12 11,3,0

Dado que en F5 no se distinguen por su madurez al sacar versiones, hemos optado por pasar de una 11.2.1 a una 11.3.0 con HF8. Existen versiones más recientes, pero de hace sólo 15 días.

Se suben las imágenes al equipo a actualizar, en una partición no utilizada:

 

Del mismo modo, se sube el hotfix

Si queremos actualizar por la interfaz web, selecionamos install y la partición que vamos a utilizar. Debe ser una que no esté ya en uso

Se instala también el HF:

Si queremos actualizar por tmsh, una vez subidas las imágenes, podemos aplicarlas sobre un volumen existente:

Por tmsh, se instala en un volumen existente

admin@f5pre(Standby)(/Common)(tmos)# install sys software image BIGIP-11.3.0.2806.0.iso volume HD1.2

 O, sobre un volumen nuevo:

admin@f5pre(Standby)(/Common)(tmos)# install sys software image BIGIP-11.3.0.2806.0.iso volume HD1.4 create-volume

En caso de tener varios nodos, es necesario que estén en la misma versión, para mantener el grupo de device.

 

Vmware 5.5 Web Client. Al renombrar, se queda la pantalla en “validating”

Después de la gran migración a 5.5, tenemos algunos problemas con el cliente web.

Hemos sacado vcenter desde la virtual Appliance.

Hemos probado a acceder desde Internet Explorer y Firefox

Tenemos dos tipos de host ahora mismo:

  • ESXi 5.1 (nos quedan por migrar)
  • ESXi 5.5

Problema: Cuando intentamos renombrar mediante el cliente web, sale una ventana de validación y la tarea no completa nunca

Está ya reportado en las vmware communities, 

Solución

El problema está  en la vista que tenemos del interfaz web. En el momento en que estemos en vista vms and templates, permite ya el renombrado.

 

 

Un paseo por vmware workstation 10

Vmware Workstation 10

Levantar en estación de trabajo máquinas virtuales.

Licencia de pruebas con uso durante 30 días.

A nivel de Bios, activamos VTx y VTd para que la virtualización pueda hacer uso de las características propias de la máquina física.

Instalamos sobre W7 el instalador: VMware-workstation-full-10.0.1-1379776. Instalación Typical.

VMware Workstation permite trabajar de dos formas:

  • Modo servidor.
  • Modo cliente.

Inconvenientes Workstation:

  • Permite sacar ventanas de un escritorio de una máquina virtual, fuera del entorno de vmware. Con la consiguiente confusión en cuanto a donde ejecutan las ventanas.

Creación de máquinas

Las máquinas virtuales creadas con Workstation 10, especifican la compatibilidad hacia atrás con otros elementos de la plataforma vmware.
Workstation 6,5,7 es bastante compatible si se va a migrar a una plataforma ESX

En caso de partir el disco, se parte en 2GB por la orientación a sistemas FAT.

Al estar apagadas, vemos la información de la propia máquina:

La barra para configurar los dispositivos, está en la barra inferior derecha. Aparece al iniciar (power on) la máquina.

El resto de opciones, aparecen bajo la barra de menú, al seleccionar el tab de una máquina virtual completa.

 

Vmware tools

Componente de vmware que ayuda la integración del hardware virtual con el sistema operativo guest.

En esta imagen de XP (Windows Xp Sp3_Shadow Lite) se puede cancelar en el momento en que se pide el CD de Windows, y se continúa con el proceso de la instalación de vmware tools.

Todas las iso de vmware tools, se almacenan en: C:\Program Files (x86)\VMware\VMware Workstation

Se recomienda instalar vmware tools en cada máquina virtual.

Vmware Workstation: Unity y drag & drop

Permite abrir ventanas del guest cómo propias del sistema operativo.

En el Workstation, se permite copiar y pegar entre el sistema host y el sistema guest.

Se supone que estas funcionalidades se integrarán más adelante con las versiones vsphere (ESXi + vcenter). Desde aquí, lo esperamos como agua de mayo.

Tipos de archivos en vmware

  • Vmdk: Contiene el disco duro virtual.
  • Vmx: Contiene en texto la configuración hw de la máquina virtual. Ram, número de procesadores, versión hw virtual…
    En el caso de Workstation está en: C:\Users\username\Documents\Virtual Machines\my_machine\ my_machine.vmx
  • VMss: Información de suspensión de la máquina virtual.
    La hibernación se hace a nivel de sistema operativo, y el estado de la memoria RAM, se guardaría en vmdk.
  • Vmsn, vmsd : Contiene el estado de la máquina virtual mientras se hace un snapshot. No se recomienda hacer snapshot para largo, ya que perjudica el estado de la máquina.
  • Vmem: Almacena la memoria de la máquina virtual.
  • Log: Registro propio del hipervisor. No es un registro del sistema operativo de la propia máquina virtual, sino de la plataforma de virtualización.

Snapshots de máquina virtual en vmware

Un snapshot o instantánea congela el estado de una máquina virtual, tanto a nivel de disco como de memoria RAM, mientras se sigue trabajando con la máquina.

Al crear un snapshot se crea otro fichero de disco duro incremental (vmname-0001.vmdk), donde se van incorporando los cambios a medida que se producen.

También se guarda el estado de la memoria para poder restaurar.

Los snapshots permiten volver a situaciones anteriores, pero, al revertir el estado, se pierden los snapshots siguientes. Por ejemplo, si tenemos una máquina virtual vm1, con dos snapshots sh1 y sh2, al restaurar sh1, se pierde sh2.

Consolidar snapshots, no es demasiado intuitivo. Por ejemplo, si tenemos una máquina virtual vm1, con dos snapshots sh1 y sh2. Si queremos consolidar sh1 y sh2, se borra sh1. Consolidar en este contexto, implica que se borra un estado intermedio, porque se acepta el estado posterior.

Hacer puntos de restauración afecta el rendimiento de la plataforma de vmware. Se debe mantener en el mínimo.

Clones en máquinas virtual

En vmware Workstation 10, sólo se pueden crear clones con la máquina apagada.

El tipo de clon, debe ser completo, para no tener problemas de enlace de los discos.

Tipos de redes

  • Bridged: Se comunica con el exterior a través de la tarjeta de red física del host.
  • NAT: Usa la IP del host. El host, se ocupa, mediante NAT de redirigir el tráfico hacia la máquina virtual.
    Con Workstation, no podemos tener más de 1 red NAT.
  • Host-Only: Tiene una red privada y sólo será capaz de comunicarse con le host, en caso de tener una IP en la misma subred. Todas las máquinas que estén en una misma subred host-only (vmnet1 p.e.) se pueden comunicar entre sí.

Para crear y modificar redes, usamos el Virtual Network Editor.

Se pueden editar todas las virtual network

Vmware Creación de plantillas en windows

  1. Instalar sistema operativo
  2. Instalar vmware tools
  3. En el sistema guest (Windows) se copia deploy.cab en c:\sysprep.
  1. Se ejecuta Setupmgr, que crea un archivo de instalación completamente desatendida, totalmente automatizada, que se instalará desde CD.

Esta plantilla tendrá un archivo de respuestas de Windows, que, en el siguiente arranque, regenerará los identificadores propios de la máquina.

P2V. Phyisical to virtual. Virtualización de máquinas físicas

Vmware Workstation 10, deja un enlace en el panel de inicio para virtualizar la propia máquina física. Está proceso, se pasa mientras la máquina está encendida.

También se pueden otras herramientas de terceros como Clonezilla, Ghost, Acronis o BESR.

Tras el paso a virtual, es necesario eliminar drivers antiguos y herramientas propias de fabricante (agentes). Estos componentes dan problemas ya que se intentan comunicar con un hardware que ya no está disponible.

Powershell. Función para saber la tasa de transmisión. Velocidad de red

Función para calcular la tasa de copia en MBps de una carpeta a otra. Usado para carpetas de red.

 

Es importante contar con el -Recurse en la función Get-ChildItem $destDir/ -Recurse. Sin ello, no se tienen en cuenta los contenidos de carpetas anidadas.

Existen errores reportados sobre el cmd-let remove-item. Por ello, la línea de borrado se pasa desde un get-childitem.

Function Copy_Folder ($src, $destDir)
{
# Remove old data:
get-childitem $destDir\* -recurse | remove-item -recurse -force

# Create destination:
if (!(Test-Path -path $destDir))
{ New-Item $destDir -itemtype directory -force }
# Copy files:
$date1=Get-Date
copy-item $src $destDir\ -force -recurse -verbose
$date2=Get-Date
# $date1 and $date2 some dates, dates difference:
$duration=($date1-$date2).duration()
# Size of data
$datasize = (Get-ChildItem $destDir/ -Recurse | Measure-Object -property length -sum).sum / 1MB
$mb=”{0:N2}” -f ($datasize) + “MB”
# Transmission rate
$transmision_rate=”{0:N2}” -f ($datasize / ($duration.TotalSeconds)) + “MBps”
$log_line=”`n $src $duration secs $mb $transmision_rate ”
Add-Content $log $log_li$src=ne
Write-host $log_line
}

Encfs. Creando volúmenes de de archivos encriptados

La idea es simple, quiero crear un sistema de archivos, que permita contener dentro una estructura de archivos encriptada.

Para ello, vamos a usar encfs, sobre una distribución debian.

apt-get update encfs

Creamos los directorios de pruebas.

mkdir -p ~/encriptado
mkdir -p ~/desencriptado

A partir de aquí, el primer montaje pedirá la contraseña del sistema de archivos encriptado. Importante: ejecutar como su y poner rutas completas:

  encfs ~/encriptado ~/desencriptado

Para desmontar:
fusermount -u ~/desencriptado

Autenticación de apache con Directorio Activo. LDAP, NTLM

Queremos que una serie de máquinas con apache, usen el siguiente método de autenticación:

  1. Validar usuario en directorio activo
  2. Validar usuario local (si hay problemas con el directorio activo).

Instalamos los módulos de apache para aceptar ldap:

apt-get install -y libapache-authznetldap-perl  libapache-session-ldap-perl libapache2-mod-ldap-userdir

Activamos el módulo de ldap en apache

a2enmod authnz_ldap

Versión 1: Usuario válido en dominio

El excelente tutorial de adam.shand.net , nos propone una primera versión:
<Location /aplicacion1>
AuthType Basic
AuthBasicProvider ldap
AuthName "Restricted Directory"
require valid-user

AuthLDAPURL ldap://adserver.domain.com/dc=domain,dc=com?sAMAccountName?sub
AuthLDAPBindDN anonymous@domain.com
AuthLDAPBindPassword secretpassword
</Location>

Para probar la cadena de conexión, se puede usar Apache Directory Studio.

Versión 2: Usuario válido en dominio de un grupo concreto (member of)

Añadimos en el parámetro AuthLDAPURL, la consulta después de sub, para que coja los usuarios de un dominio concreto.

<Location /aplicacion1>
AuthType Basic
AuthBasicProvider ldap

AuthName "Restricted Directory"
require valid-user

AuthLDAPURL ldap://adserver.domain.com/dc=domain,dc=com?sAMAccountName?sub?(memberOf=CN=departmentA,CN=Users,DC=domain,DC=com)
AuthLDAPBindDN anonymous@domain.com
AuthLDAPBindPassword secretpassword
</Location>

Versión 3: Aceptar también usuarios locales

Cambiamos el comportamiento de la autenticación ldap, para que no sea la única opción, con AuthzLDAPAuthoritative off

Además, aceptamos también la configuración desde nuestro fichero local de usuarios

<Location /aplicacion1>
AuthType Basic
AuthName "Restricted Directory"
AuthBasicProvider ldap
require valid-user

# Configuracion contra directorio activo:
AuthLDAPURL
ldap://adserver.domain.com/dc=domain,dc=com?sAMAccountName?sub?(memberOf=CN=departmentA,CN=Users,DC=domain,DC=com)
AuthLDAPBindDN anonymous@domain.com
AuthLDAPBindPassword secretpassword

AuthzLDAPAuthoritative off

# Configuración local

AuthUserFile /etc/apache/.htpasswd
AuthGroupFile /dev/null

Para crear el archivo local de contraseñas en apache:

htpasswd -c .htpasswd user

 

Para editar las contraseñas de un usuario concreto:

 

htpasswd .htpasswd user

 

Versión 4: aceptando también ntlm

 

Para rizar el rizo, querríamos que acepte las credenciales de windows de forma directa, sin que el usuario tenga que introducir las credenciales.

Vamos a usar el módulo Apache2::AuthenNTLM

El problema es que no se verifica el grupo de dominio, cualquier usuario que exista en dominio, entra en el apache.

<Location /aplicacion1>
AuthType ntlm, Basic
AuthBasicProvider ldap
AuthName "Restricted Directory"
require valid-user

# Configuracion contra directorio activo:
AuthLDAPURL
ldap://adserver.domain.com/dc=domain,dc=com?sAMAccountName?sub?(memberOf=CN=departmentA,CN=Users,DC=domain,DC=com)
AuthLDAPBindDN anonymous@domain.com
AuthLDAPBindPassword secretpassword

AuthzLDAPAuthoritative off

# Configuración local
# Configuración ntlm:
# domain pdc bdc
# pdc: primary domain controller
# bdc: backup domain controller
PerlAddVar ntdomain “name_domain1 name_of_pdc1”
PerlAddVar ntdomain “other_domain pdc_for_domain bdc_for_domain”

PerlSetVar defaultdomain wingr1
PerlSetVar splitdomainprefix 1
PerlSetVar ntlmdebug 1

AuthUserFile /etc/apache/.htpasswd
AuthGroupFile /dev/null

Versión 5: ntlm con módulo python

Legrandin  nos propone un módulo python para hacer más sencilla la integración con ntlm version 2.

El problema de este tipo de acceso, es que no permite autenticar sin el dominio. En caso de caida o aislamiento del dominio, no se puede recaer en los usuarios locales de nagios.

Existe opción de especificar grupos de dominios, aunque es experimental.

Instalar módulos que nos faltan:


sudo apt-get update
sudo apt-get install libapache2-mod-python python-crypto git
git clone https://github.com/Legrandin/PyAuthenNTLM2.git
cd PyAuthenNTLM2
sudo python setup.py install -f

La configuración de apache quedaría:

<Location /aplicacion1>
AuthType ntlm
AuthName "Restricted Directory"
require valid-user
# Configuración de autenticación ntlm:
PythonAuthenHandler pyntlm
PythonOption Domain adserver.domain.com
# pdc : Primary Domain Controller
PythonOption PDC 192.1.2.45
# bdc : Backup Domain controller.
PythonOption BDC 192.1.2.46
Require group grupo_dominio1,grupo_dominio2

Versión 6: libapache2-authenntlm-perl

Vamos a probar authenntlm-perl, que, según este tutorial es ridículamente fácil:

apt-get install libapache2-authenntlm-perl