NSX-T y el trafico BUM

El tráfico BUM (Broadcast, Unknow Unicast and Multicast traffic) es un factor a tener en cuenta en las soluciones SDN en datacenters distintos, ya que se está descargando las funcionalidades de routing distribuido sobre los hipervisores, incluyendo la replicación de los paquetes BUM. Dada la arquitectura aquí presente:

Read More

Como eliminar VIBs de NSX manualmente

Hay ciertos momentos en que la desinstalación de los VIBs de NSX falla, por diversos motivos, por ejemplo por un problema de comunicación entre vCenter y los hosts ESXi. En ese caso, tendremos que desinstalar de forma manual los VIBs que se utilizan por NSX, siendo este el procedimiento:

Read More

esxtop no se muestra correctamente

Hoy, tras mucho tiempo sin hacer uso de la herramienta esxtop en mi lab, me he encontrado con que la consola me mostraba un galimatías sin sentido. Véase el pantallazo adjunto.

Read More

Vagrant y vSphere

En el post de hoy, exploraremos como instalar Vagrant sobre CentOS 7.2 y cómo podemos hacer que vagrant up clone un template.

Lo primero de todo, desplegaremos nuestra máquina de desarrollo sobre CentOS 7.2, una vez desplegado, instalaremos vagrant, en el momento de redactar este post la 1.9.1 ya que la 1.9.2 sufre de un bug de dependencias en las gems:

 wget https://releases.hashicorp.com/vagrant/1.9.1/vagrant_1.9.1_x86_64.rpm
 yum localinstall vagrant_1.9.1_x86_64.rpm

Una vez instalado, instalaremos el plugin de vagrant-vsphere, que es el driver que se ocupará de la comunicación con el vCenter/ESXi:

vagrant plugin install vagrant-vsphere

Nos decargaremos el fichero metadate.json que está preparado como template para el driver y lo descomprimiremos:

curl -k https://raw.githubusercontent.com/nsidc/vagrant-vsphere/master/example_box/metadata.json -O
tar cvzf vsphere-dummy.box ./metadata.json

Añadiremos un nuevo box vacío, que nos valdrá como placeholder en la comunicación:

vagrant box add vsphere-dummy ./vsphere-dummy.box

Una vez añadido, podemos verificar que el box se ha creado correctamente

[root@chefdev ~]# vagrant box list

vsphere-dummy (vsphere, 0)

Crearemos un Vagrantfile similar a este:

Vagrant.configure("2") do |config|
  config.vm.box = "vsphere-dummy"
  config.vm.provider :vsphere do |vsphere|
    # The vSphere host we're going to connect to
    vsphere.host = 'vcenter.vfondevilla.com'
   # The ESX host for the new VM
    vsphere.compute_resource_name = 'pCluster'
    # The template we're going to clone
    vsphere.template_name = 'vagrant-centos'
    # The name of the new machine
    vsphere.name = 'vagrant-centos-test'
    # vSphere login
    vsphere.user = 'administrator@vsphere.local'
    # vSphere password
    vsphere.password = 'SuPerPassw0rdComplicada!'
    # If you don't have SSL configured correctly, set this to 'true'
    vsphere.insecure = true
  end
end

Con esto, tendremos la máquina de desarrollo completa, a falta de instalar el software de gestión de configuración que prefieras (Ansible, Chef, Puppet, Salt…), ya solo nos falta crear el template, con los siguientes pasos:

  • Desplegar una nueva VM
  • Añadir el usuario vagrant con la contraseña “vagrant”
  • Añadir el usuario vagrant al fichero sudoers “vagrant ALL=(ALL) NOPASSWD:ALL”
  • Añadir la clave de Vagrant al usuario vagrant
    mkdir -p /home/vagrant/.ssh
    wget --no-check-certificate https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub -O /home/vagrant/.ssh/authorized_keys
    chmod 0700 /home/vagrant/.ssh
    chmod 0600 /home/vagrant/.ssh/authorized_keys
    chown -R vagrant /home/vagrant/.ssh
    

Con estos pasos, podemos proceder a apagar la VM y convertirla en un template. A partir de ese momento, cuando hagamos vagrant up en la máquina de desarrollo, nos creará una nueva VM a partir del template de Vagrant.

[root@chefdev ~]# vagrant up
Bringing machine 'default' up with 'vsphere' provider...
==> default: Calling vSphere CloneVM with the following settings:
==> default:  -- Template VM: Homelab/vm/vagrant-centos
==> default:  -- Target VM: Homelab/vm/vagrant-centos-test
==> default: New virtual machine successfully cloned
==> default: Waiting for the machine to report its IP address...
    default: Timeout: 240 seconds
    default: IP: 10.2.0.142
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 10.2.0.142:22
    default: SSH username: vagrant
    default: SSH auth method: private key
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Installing rsync to the VM...
==> default: Rsyncing folder: /root/ => /vagrant
Read More

Plugin NFS VAAI de Synology en VMware vSphere 6.0

Como no es la primera vez que me lo preguntan, sí, el plugin de VAAI de vSphere, que según el README de Synology es solo para versión 5.5, funciona correctamente en VMware vSphere 6.0. Lo he instalado en los hosts del laboratorio, con el comando que detalla el README, añadiendo –no-sig-check al final.

Read More

Reflexiones sobre el Cloud y sus aplicaciones

A raíz de unas jornadas en mi actual empleador, hemos estado hablando sobre el estado del Cloud y sobre el portfolio de una nueva empresa que se ha incorporado al grupo, provocando que por una vez le de al coco. Voy a evitar hablar sobre Devops, Infrastructure as Code, Continuous integration, Continuous development y demás términos que muchos ya estamos acostumbrados, y voy a centrarme en otro aspecto mucho menos tenido en cuenta, pero que marca una diferencia brutal. La arquitectura.

Read More

Modificando umbrales de alerta de los ventiladores en Supermicro

En el post de hoy, voy a cubrir lo que hay que hacer para poder cambiar los umbrales de alerta de los ventiladores en las placa base de Supermicro. Si habeis leído la información sobre mi lab, tengo un par de máquinas Supermicro (un Xeon D-1520 y un D-1540), siendo la 1520 fanless y sinceramente, se calienta mucho. Así que le he puesto un ventilador Noctua como he podido, pero funciona tan bien que bajaba a 300 revoluciones, y hacía que saltara una alarma tanto en la IPMI como en vCenter, saturándome el correo siendo muy molesto.

Read More

Desplegando VCSA sobre línea de comandos

Mientras estoy mirando como automatizar la creación de un nested lab (sí, ya sé que existe AutoLab, but just because) os explico como desplegar un VCSA 6.0 desde línea de comandos, usando una fantástica utilidad llamada vcsa-deploy. Mediante un fichero JSON, podemos invocar la utilidad y automáticamente desplegará un VCSA con la configuración que le hagas llegar por el fichero JSON.

Read More

Configurando iSCSI a golpe de Powercli

Hoy os traigo una breve entrada sobre como configurar iSCSI sobre uno (o varios) hosts vSphere a golpe de teclado. Podríamos usar ansible, pero como estoy repasando para el VCAP-DCA… Lo haremos a base de Powershell!

Read More

vVNX en el homelab

Hoy os traigo este post, en el que os explicaré como he montado la vVNX de EMC, la appliance virtual de storage, en mi homelab.

Read More

Usando Packer y Vagrant con nuestro vCenter como endpoint

Recientemente he descubierto una herramienta que encuentro de una utilidad muy evidente, llamada Packer, de los creadores de Vagrant. Es una vuelta de tuerca más al concepto de Infrastructure as Code, permitiéndonos crear de forma consistente VMs o instancias (dependiendo de la tecnología que estemos usando), de forma automatizada. Packer no viene a sustituir las herramientas especializadas de Configuration Management (Chef, Puppet, Ansible…), si no a complementarlas en una etapa más temprana, en lo que antes eran las golden images.

Read More

Reservas DHCP en VMware Fusion

Debido a que tengo multitud de máquinas en mi MBPr que no se terminan de llevar muy bien con DHCP (Hola, que tal Microsoft Active Directory?), creo este post sobre las reservas DHCP en VMware Fusion, que viene muy bien de cara a mantener cierta “coherencia” en el arranque.

Read More

Autoscaling VMware - Bootstraping de los frontales

Con un template basado en Windows 2012 R2, procederemos a desplegar 2 VMs en la red del lab. Con los nombres de DNS chefwin-frontal01 y chefwin-frontal02. En una primera versión de este ejercicio no añadiremos las VMs al Active Directory.

Read More

Conexiones a SQL Server desde Powershell

Desarrollando scripts para mi actual empresa, me he visto en la necesidad de añadir datos a un SQL Server desde Powershell (sin poder utilizar las herramientas de SQL Server, como sqlcmd). Todo esto implica entrar en el mundillo de .Net y conjugarlo con Powershell para poder realizar labores de reporting, siendo increíblemente potente:

Read More

Empezando con Docker y VMware Photon

Esta semana VMware ha dado un paso adelante en el mundo de los contenedores, publicando VMware Photon, una distribución linux super-ligera (mismo estilo que CoreOS) enfocada a trabajar con contenedores (docker,rkt…) y LightWave, una solución de gestión de identidades para estos contenedores, que sinceramente están muy que muy interesantes.

Read More

Primeros pensamientos sobre VMware Integrated OpenStack

He desplegado (parcialmente) VMware Integrated OpenStack en mi homelab, y he de decir que ha sido un poco dulce-amargo, dulce por la posibilidad de poder usar un nuevo estándar de facto como OpenStack encima del hypervisor que probablemente ya esté en producción, y amargo porque los requerimientos por defecto de VMware son totalmente abrumadores, y para muestra os pego los requisitos de la suite.

Read More

vRealize Automation - Pre-requisitos y desplegando SSO

Empiezo esta serie de posts respecto al despliegue de la suite vRealize Automation, anteriormente conocida como vCloud Automation Center o vCAC. Para los que no conozcan esta suite de VMware, es la evolución de vCloud Director, añadiendo la posibilidad de desplegar workloads en cloud público (Amazon, vCloud Air…)

Read More

Autoscaling en VMware - Despliegue del servidor DSC

Como siguiente paso, vamos a proceder a desplegar una VM que alojará nuestro servidor DSC en modo pull, donde iremos alojando los ficheros de configuración (mof) de las máquinas de nuestro dominio. La desplegaremos en el direccionamiento asignado al cliente Cestas Asociadas (192.168.30.0/24), conjuntamente con el Domain Controller.

Read More

Autoscaling en VMware (proyecto de aprendizaje)

Como una nueva iniciativa de aprendizaje, desarrollo profesional y personal, he decidido embarcarme en un proyecto bastante ambicioso, por el que montaré una infraestructura virtual sobre mi laboratorio, como Proof Of Concept, que usando tecnologías VMware, Powershell DSC y Chef dará el mismo servicio de AutoScaling que Amazon.

Read More

Autoscaling en VMware - Diseño Parte 1

La compañía Cestas Asociadas ha requerido de los servicios de la empresa donde trabajo (Darknet Inc.) para diseñar su plataforma de Producción, usando exclusivamente tecnologías Microsoft. No le tienen miedo al Cloud ni a los arquitectos locos como yo, así que deciden arriesgarse.

Read More

Como montar un Exchange 2013 en un Resource Forest - Parte 1

En mi papel como Solution Architect en Claranet, a veces tengo que vérmelas con entornos no estándar. Como apunte para mí en futuras ocasiones y para cualquier otra persona que pueda encontrarse con la misma situación, voy a desplegar un Exchange 2013 en un resource forest.

Read More

Adding all VMX in a Datastore

After some weird network failure on one of my homelab’s host, I unregistered all the VMs of a datastore.. After fixing the problem I had to re-register them in vCenter. I hate doing clicky-clicky a lot of times so… From PowerCli I executed this one-liner

Read More

How veeam saved my day (at homelab)

I was deploying PernixData (great software btw) when by some reason (I don’t know why yet) after rebooting vCenter Server Appliance, I had a blank screen and 99% CPU usage. I tried to do a Instant Recovery with my Veeam Backup & Replication v8, but I had my managed servers under my vCenter in Veeam, so I had a big problem, I couldn’t recover my VCSA (albeit I had a Veeam Backup of that same afternoon). If you meet sometime in this situation, I can tell you… That’s FUBAR.

Read More

Hello world @ GitHub Pages!

Acaba de empezar otra nueva etapa de mi página, donde quiero olvidarme de WordPress, MySQL, vulnerabilidades de PHP y los cuelgues del intérprete… Así que me he decidido a probar Jekyll y GitHub Pages. Espero que esto dure más que otras veces que me he puesto con mi blog.

Read More

Exportar los planes de mantenimiento sin Integration Services

Documentando un proyecto de un cliente y en un intento de implementar Control de Versiones para todo lo referido a ese cliente, necesitaba exportar los planes de mantenimiento (Maintenance Plans) del SQL Server, que no tiene instalado los Integration Services. Gracias a dba.stackexchange.com (hurra!) encontré el siguiente post que explica (y te facilita la consulta SQL que te permitirá extraer los planes de mantenimiento como ficheros dtsx.

Para que quede disponible aquí, pego el código (all merit goes to billfellows.blogspot.com)

WITH FOLDERS AS
(
    -- Capture root node
    SELECT
        cast(PF.foldername AS varchar(max)) AS FolderPath
    ,   PF.folderid
    ,   PF.parentfolderid
    ,   PF.foldername
    FROM
        msdb.dbo.sysssispackagefolders PF
    WHERE
        PF.parentfolderid IS NULL

    -- build recursive hierarchy
    UNION ALL
    SELECT
        cast(F.FolderPath + '\' + PF.foldername AS varchar(max)) AS FolderPath
    ,   PF.folderid
    ,   PF.parentfolderid
    ,   PF.foldername
    FROM
        msdb.dbo.sysssispackagefolders PF
        INNER JOIN
            FOLDERS F
            ON F.folderid = PF.parentfolderid
)
,   PACKAGES AS
(
    -- pull information about stored SSIS packages
    SELECT
        P.name AS PackageName
    ,   P.id AS PackageId
    ,   P.description as PackageDescription
    ,   P.folderid
    ,   P.packageFormat
    ,   P.packageType
    ,   P.vermajor
    ,   P.verminor
    ,   P.verbuild
    ,   suser_sname(P.ownersid) AS ownername
    FROM
        msdb.dbo.sysssispackages P
)
SELECT 
    -- assumes default instance and localhost
    -- use serverproperty('servername') and serverproperty('instancename') 
    -- if you need to really make this generic
    'dtutil /sourceserver localhost /SQL "'+ F.FolderPath + '\' + P.PackageName + '" /copy file;".\' + P.PackageName +'.dtsx"' AS cmd
FROM 
    FOLDERS F
    INNER JOIN
        PACKAGES P
        ON P.folderid = F.folderid
-- uncomment this if you want to filter out the 
-- native Data Collector packages
-- WHERE
--     F.FolderPath <> '\Data Collector'
Read More

Insertar una cabecera con una iRule en un F5 LTM

Entre otras cosas que gestiono, me ha tocado insertar cabeceras en peticiones HTTP que pasan por un F5 LTM… Siendo de lo más simple mediante iRules: when HTTP_REQUEST { HTTP::header insert cabecera valor  log local0. “iRule x-secure”   log local0. “[HTTP::request]”   log local0. “Fin iRule x-secure”  }

Read More

Montando una infraestructura DSC

Windows 2012R2 (y Windows Management Framework 4.0) incluyen una funcionalidad muy interesante llamada DSC (Desired State Configuration), que nos permitirá de una forma similar a otras soluciones (Puppet, Chef…) tener la configuración de forma declarativa.

Read More

Obtener la dirección IP con Powershell 2.0

En los servidores que aún tienen Powershell 2.0 (Windows 2008R2 principalmente), si necesitais sacar la dirección IP únicamente (y no quereis hacer string-mangling), podeis obtenerla con el siguiente comando:

Read More

Resolviendo problemas con el SSO del VCSA

Si tuviéramos problemas para acceder mediante SSO al VCSA, los logs detallados de los problemas se encuentran en /var/log/vmware/sso/ssoAdminServer.log, lo que nos ayudará a hacer troubleshooting de las incidencias del SSO.

Read More

Retomando el blog

Tras 2 o 3 años habiendo tenido cerrado mi blog técnico, he decidido retomarlo, en parte por satisfacer una necesidad de plasmar lo que voy aprendiendo en mi camino hacia el VCP5, publicando lo que veo o descubro por mi cuenta…

Read More