Configuración básica de ESXi 6.5 con VLANs

Con frecuencia es necesario (y recomendable) separar en VLANs el tráfico de administración y de datos en ambientes de virtualización. Esta entrada muestra los pasos a seguir para lograr este propósito.

Infraestructura:

  • Switch Cisco Catalyst 2960-X con un puerto en modo troncal para el transporte de VLANs
  • Servidor con ESXi 6.5 instalado y con red de administración configurada

Configuración de Switch Cisco

La interfaz en donde conectaremos el servidor (en este caso GigabitEthernet 1/0/2) se deberá configurar como troncal y permitir únicamente las VLANs a utilizar:

(config)#interface gigabitEthernet 1/0/2
(config-if)#switchport mode trunk
(config-if)#switchport trunk allowed vlan 750
(config-if)#switchport trunk allowed vlan add 751
(config-if)#switchport trunk allowed vlan add 755

NOTA: Antes de realizar esta configuración en el switch, es recomendable configurar el port group de administración con la VLAN correspondiente desde vSphere Web Client en el vSwitch del ambiente virtual. Al realizar este cambio en el ambiente virtual, es posible perder la administración web hasta configurar el las VLANs en el switch físico.

Configuración de Port Groups

En vSphere Web Client se deberá configurar un port group por cada VLAN. Para la creación de un port group no situamos en el apartado Networking y elegimos Add port group

 

Especificamos el nombre del Port group, el VLAN ID y damos click en Add

 

Probamos cambiando las propiedades de una máquina virtual

Incrementar espacio a partición estándar en vCenter Appliance 6.0

Esta entrada describe el proceso para incrementar el espacio de una partición en vCenter Appliance, en este caso la partición root (/).

Antes de comenzar se deberá tener claro cuál es la partición a ampliar y la dirección IP del host físico donde reside el vCenter Appliance.

Herramientas a utilizar:

  • GParted live version 0.25.0-3-i686
  • vSphere Web Client o vSphere Client

NOTA: Este proceso es únicamente para particiones estándar. No aplica para LVM.

NOTA: Los pasos siguientes se aplicaron en un cluster de más de tres servidores físicos con ESXi 6.0

NOTA: Durante este procedimiento no se verán afectados los servicios proporcionados por las máquinas virtuales, sin embargo se perderá momentáneamente la administración del VDC, pudiendo sólo acceder a los hosts del cluster individualmente.

1. Conectarse mediante VMware vSphere Client o VMware vSphere Web Client directamente al host donde reside el vCenter Appliance

2. Una vez conectado al host se procede a apagar el vCenter Appliance

3. Con el vCenter apagado, se deberá aplicar la siguiente configuración a la máquina virtual:

  • Incrementar el espacio asignado al disco duro virtual donde resida la partición a ampliar. Para identificar este disco duro virtual, se procede a ejecutar el siguiente comando desde la shell del vCenter Appliance:

#lsscsi

Cuya salida es la siguiente:

Como se observa en la imagen, se muestran los discos y particiones del vCenter Appliance. Se deberá identificar el Target Number (tercer número de la primer columna) de acuerdo a la partición a ampliar (séptima columna). Este número deberá coincidir con el mostrado en la opción Virtual Device Node de la configuración de disco duro virtual de la máquina, tal como se muestra en la siguiente imagen

 

  • Establecer como conectada la unidad virtual de CD/DVD y montar la imágen ISO de GParted
  •  En VM Options -> Boot Options activar la opción “The next time the virtual machine boots, force entry into the BIOS setup screen

 

4. Una vez configurada la máquina virtual se procede a encenderla. Se entrará en la pantalla de BIOS donde se deberá especificar que el primer medio de arranque sea la unidad de CD-ROM

Se presiona F10 para guardar los cambios y salir de BIOS

5. Una vez encendida la máquina virtual entraremos al Grub de GParted, donde se deberá elegir la opción GParted Live

 

6. Una vez iniciado GParted se mostrarán las particiones existentes. En este punto se deberá elegir la partición a extender. Debido a que el tamaño del disco duro virtual se ha incrementado anteriormente, se mostrará espacio sin asignar. Dicho espacio se deberá asignar a la partición deseada.

 

7. Una vez realizado este proceso se deberá apagar la máquina virtual y se aplicará la siguiente configuración:

  • Desconectar unidad de CD/DVD
  •  En VM Options -> Boot Options desactivar la opción “The next time the virtual machine boots, force entry into the BIOS setup screen
  • Opcionalmente antes de establecer la opción anterior, se puede re-configurar la BIOS para que el primer medio de arranque sea el disco duro en lugar de la unidad de CD-ROM

8. Encender la máquina virtual y corroborar el incremento de espacio en la partición. Esto se puede realizar con el comando:

#df -h

Antes del proceso:

Después del proceso:

 

Aplicación de parche de actualización en VMware ESXi 6.0

A continuación se expone cómo aplicar un parche de actualización en VMware ESXi 6.0

NOTA: En caso de que el host ESXi a actualizar sea parte de un cluster de servidores es recomendable desactivar VMware DRS en caso de encontrarse en funcionamiento.

1. Descargar el parche a aplicar y (opcionalmente) verificar MD5

2. Subir el archivo a un datastore al que el host a actualizar tenga acceso. Este proceso se puede realizar utilizando vSphere Web Client conectado ya sea a vCenter o directamente al host a actualizar.

NOTA: VMware recomienda crear un directorio en el datastore donde se colocará el archivo.

3. Migrar o apagar máquinas virtuales alojadas en el host a actualizar

4. Activar acceso vía SSH en el host a actualizar mediante DCUI o vSphere Web Client

5. Conectarse vía SSH al host a actualizar

6. Para aplicar el parche se usa el comando:

#esxcli software vib update -d "/vmfs/volumes/datastoren/patch-directory/file_patch.zip"

NOTA: La opción -d indica que la actualización será instalada a partir de un archivo .zip

NOTA: Para la instalación de parches se recomienda usar la opción update en lugar de install, ya que al utilizar la opción install es posible que se instalen paquetes de versiones anteriores a los actualmente instalados.

En caso de ser necesario se solicitará el reinicio del host.

La siguiente imagen muestra el mensaje resultante una vez aplicado el parche a instalar. Como se puede observar indica que la actualización se llevó a cabo de manera satisfactoria y que el reinicio del host es requerido.

7. Una vez terminado el proceso, se podrá verificar la instalación con el comando:

#esxcli software vib list

8. Quitar el host de modo mantenimiento

 

Inicio automático de Oracle 11g R2 en CentOS 7

En esta ocasión se explicará de manera general cómo iniciar automáticamente una instancia de base de datos Oracle 11g R2 en un sistema operativo CentOS 7.

Modificamos el archivo /etc/oratab cambiando la línea

TSH1:/path/to/oracle/product/9.2.0:N

por:

TSH1:/path/to/oracle/product/9.2.0:Y

Como usuario root, creamos el script de inicio del motor de base de datos (la ubicación de este archivo será utilizada más tarde).
NOTA: Se deberán modificar los valores de las variables correspondientes para que coincidan con la instalación de Oracle realizada.


#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.

#ORACLE Settings
ORACLE_HOSTNAME=my_hostname; export ORACLE_HOSTNAME
ORACLE_UNQNAME=my_SID; export ORACLE_UNQNAME
ORACLE_BASE=/path/to/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_n; export ORACLE_HOME
ORACLE_SID=my_SID; export ORACLE_SID

PATH=/usr/sbin/:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

ORA_HOME=$ORACLE_BASE/product/11.2.0/db_1
ORA_OWNER=oracle

if [ ! -f $ORA_HOME/bin/dbstart ]
then
echo “Oracle startup: cannot start”
exit
fi

case “$1” in
‘start’)
# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
# Remove “&” if you don’t want startup as a background process.
su $ORA_OWNER -c “$ORA_HOME/bin/lsnrctl start” &
su $ORA_OWNER -c $ORA_HOME/bin/dbstart
#& touch /var/lock/subsys/dbora
;;
‘stop’)
# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su $ORA_OWNER -c $ORA_HOME/bin/dbshut
su $ORA_OWNER -c “$ORA_HOME/bin/lsnrctl stop”
#rm -f /var/lock/subsys/dbora
;;
esac

exit 0

Como usuario root creamos un archivo (servicio) en /etc/systemd/system, nombrándolo con el formato service_name.service:

#vi /etc/systemd/system/my_service_name.service

Añadimos el siguiente contenido:
NOTA: Se debrá sustituir la ubicación y el nombre del servicio por el creado anteriormente.


[Unit]
Description=Oracle startup service
After=network.target

[Service]
ExecStart=/path/to/service/my_service_name start
Type=forking

[Install]
WantedBy=default.target

Reiniciamos la configuración de systemd:

#systemctl daemon-reload

Habilitamos la instancia de unidad de servicio (unit file instance)

#systemctl enable service_name

Cuando se reinicie el servidor se iniciará automáticamente la instancia especificada en el script.

Lectura de puerto serial (RS-232) en Java

 

En esta entrada se muestra la configuración y utilización básica de la biblioteca RXTX en Eclipse.

Herramientas utilizadas

JDK 1.8 [ http://www.oracle.com/technetwork/es/java/javase/downloads/index.html ]

Eclipse IDE for Java Developers x64 [ https://eclipse.org/downloads ]

Biblioteca RXTX [ http://rxtx.qbang.org ]

Emulador de puertos serie virtuales VSPE 2.037

 

Procedimiento

Creamos un nuevo proyecto Java en Eclipse llamado Test_serial_V0:

1

 

2

 

En el directorio raíz del proyecto creamos una carpeta llamada lib y copiamos el archivo RXTXcomm.jar de la biblioteca descargada

3

 

En la carpeta raíz del proyecto copiamos el archivo rxtxSerial.dll

4

 

En Eclipse, se deberán visualizar los nuevos directorios y archivos

5

 

Creamos el paquete com.ayg y agregamos la clase TestSerial con el código de ejemplo:

6

 

El código fuente aparecerá con distintos errores, para evitarlos cargamos la biblioteca RXTXcomm.jar desde las propiedades del proyecto:

7

 

8

 

Una vez agregada la biblioteca, debemos indicar desde dónde se cargarán los archivos dll, por lo que desplegamos las opciones de la biblioteca RXTXcomm.jar, seleccionamos la opción Native library location y presionamos el botón Editar:

9

 

Establecemos la ruta donde se encuentra el archivo dll, en este caso, en la raíz del proyecto. Presionamos OK para continuar:

10

 

Los errores en código fuente habrán desaparecido:

11

 

Ejecución del Proyecto

Desde el emulador de puerto serial (VSPE) creamos un nuevo puerto:

12

 

13

 

Seleccionamos el número de puerto a emular, en este caso COM26, y presionamos Finish.

14

 

Repitiendo este procedimiento podemos agregar tantos puertos como sea necesario:

15

 

Ejecutamos el proyecto y se listarán los puertos serie detectados:

16

Guía de Instalación Oracle 11G R2 en CentOS 7

 

A continuación se detalla la instalación de Oracle 11G R2 en un servidor CentOS 7.

Herramientas utilizadas en el cliente:

  • Putty 0.63: Herramienta utilizada para la conexión remota al servidor
  • Xming: Herramienta necesaria para la instalación gráfica de Oracle

 

Configuración de Herramientas

Iniciamos el servidor gráfico Xming; en Microsoft Windows 10 aparece un ícono en la barra de tareas:

1

Es necesario configurar una sesión en la herramienta Putty para la instalación gráfica de Oracle:

En el menú de la izquierda, nos dirigimos a Connection -> SSH -> X11 y habilitamos la opción Enable X11 forwarding.

2

 

Una vez configurada nuestra sesión en Putty, no conectamos al servidor como root e instalamos los paquetes xorg-x11-apps.x86_64xorg-x11-xinit.x86_64

# yum install xorg-x11-apps.x86_64
# yum install xorg-x11-xinit.x86_64

Reiniciamos el servidor y probamos que la configuración se correcta con el comando xclock; deberá aparecer una ventana mostrando un reloj:

3

 

Cerramos la aplicación anterior presionando Ctrl-c.

Creamos los grupos necesarios y el usuario oracle:

4

 

Creamos la ruta de instalación de Oracle, en este caso:

# mkdir /u/u01/app/oracle/product/11.2.0/db_1

 

Asignamos al usuario oracle como propietario del directorio creado:

# chown -R oracle:oinstall /u/u01

 

Damos permisos 755 al directorio creado:

# chmod -R 755 /u/u01

 

Modificamos el archivo /etc/security/limits.d/20-nproc.conf con los siguientes valores:

5

 

Modificamos el archivo /etc/selinux/config estableciendo SELINUX=permissive:

6

 

Modificamos el archivo /etc/security/limits.conf agregando las siguientes líneas al final del archivo:

7

 

Modificamos el archivo /etc/sysctl.conf para agregar los parámetros de kernel:

8

Aplicamos este último cambio con el comando:

# /sbin/sysctl -p

 

Editamos el archivo /etc/sysconfig/network sustituyendo el parámetro MY_HOSTNAME por el nombre real del host:

9

 

Editamos el archivo /etc/hosts sustiyendo HOSTNAME por el nombre real del host

10

 

Reiniciamos la red con el comando:

11

 

Nos logueamos con el usuario oracle:

 

Modificamos el archvo .bash_provile agregando las siguientes líneas al final del archivo y sustituyendo los valores MY_HOSTNAME y DB_NAME por los valores reales:

13

 

Reiniciamos el servidor e iniciamos sesión con el usuario oracle.

Creamos el directorio /u/u01/medias y subimos los archivos de instalación de Oracle. En este caso se utilizó un cliente FTP.

 

Descomprimimos los archivos con el comando unzip:

$ unzip linux.x64_11gR2_database_1of2.zip

$ unzip linux.x64_11gR2_database_2of2.zip

Se creará un directorio llamada database:

 

Entramos al directorio database y ejecutamos el archivo runInstaller:

 

En caso de que aparezca el siguiente mensaje:

17

Introducimos “y” y presionamos Enter.

 

Se abrirá el asistente de instalación:

18

 

19

 

20

 

21

 

22

 

Verificamos que los parámetros sean correctos y establecemos el nombre global de la base de datos así como la contraseña de administración:

23

 

24

 

25

 

Instalamos los paquetes solicitados por el asistente y damos click en Check Again.

Debido a que hemos configurado los parámetros de kernel anteriormente, y se han instalado los paquetes solicitados, podemos seleccionar la opción Ignore All y presionar en Next.

26

 

Se nos pedirá una confirmación antes de comenzar la instalación:

27a

 

28a

 

Nos aparece el error “Error in invoking target ‘install’ of makefile

29a

 

Para solventar el error anterior, sin salir del asistente, nos logueamos como root e instalamos los paquetes:

glibc-static.x86_64

glibc-static.i686

Editamos el archivo /u01/app/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk:

Buscamos la línea

ctxhx: $(CTXHXOBJ)
$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)

Y la reemplazamos por:

30a

Damos click en Retry

 

Nos aparece el error “Error in invoking target ‘agent nmhs’ of makefile

31a

 

Para solventar este error, editamos el archivo:

/u01/app/oracle/product/11.2.0/dbhome_2/sysman/lib/ins_emagent.mk

Buscamos las líneas

$(SYSMANBIN) EMDCTL:

$(MK_EMAGENT_NMECTL)

se reemplaza por:

32a

Presionamos en Retry

 

33a

 

Para configurar las contraseñas de administración presionamos en Password Management

34a

 

Establecemos las contraseñas de SYS y SYSTEM:

35a

 

Se nos pedirá ejecutar dos scripts de configuración con el usuario root:

36a

 

Ejecución del primer script:

37a

 

Ejecución del segundo script:

38a

 

Damos click en Ok y se nos mostrará la un mensaje de intalación satisfactoria junto con la url para acceder a Enterprise Manager (https://host_name:1158/em):

39a

 

Accedemos a la url mostrada anteriormente:

40a

Proceso de Boot en Linux (OpenSuse)

El proceso de booteo de Linux consiste en las siguientes fases:

1 – BIOS & Boot Manager

Al encender el sistema la BIOS realiza:

  • Power-On Self Test (POST)
  • Detección y configuración inicial de hardware
  • Identificación de dispositivos de almacenamiento booteables

Si el dispositivo booteable es un disco duro, la BIOS lee el Master Boot Record (MBR) del disco (Primeros 512 bytes físicos) y carga un software llamado bootloader en memoria.

El bootloader carga el kernel de Linux y una imagen initramfs en memoria.

2 – Kernel e initramfs

El bootloader pasa el control del proceso de booteo al kernel Linux, el cual lee los ajustes de la BIOS e inicializa interfaces de hardware básicas. El contenido de initramfs puede ser utilizado directamente por el kernel. initramfs contiene un ejecutable llamado init que maneja la carga del root file system real

3 – init

Después de verificar particiones y montar el root file system, se limpia initramfs y el demonio systemd en el root file system es ejecutado

Hello World en Spring Tool Suite

I. Crear Proyecto Maven

Se deberá crear un nuevo proyecto en STS: File | New | Project

Seleccionar Maven Project y click en Next

 

New Maven Project

 

En la siguiente pantalla seleccionar el checkbox Create a simple project (skip archetype selection) y click en Next

 

 

Maven project

 

En la pantalla siguiente proporcionar la información de Group Id y Artifact Id. Se deberá seleccionar la opción war en el campo Packaging. Una vez proporcionada esta información, click en Finish.

 

Maven project

 

En el Package Explorer de STS se deberá visualizar la siguiente estructura

 

Maven project

 

II. Configurar dependencias Spring MVC

Editar el archivo pom.xml y agregar lo siguiente:

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.0.3.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
</dependencies>
<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

 

III. Crear página inicial (vista) del proyecto

Crear la estructura WEB-INF/jsp en el directorio src/main/webapp

Crear el archivo hello.jsp en src/main/webapp/WEB-INF/jsp, cuyo contenido sea:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Welcome</title>
  </head>
  <body>
    <section>
      <h1>${mymessage}</h1>
    </section>
  </body>
</html>

 

Crear el paquete com.pack.example en src/main/java y crear dentro del paquete la clase HelloController.java con el siguiente código

 

package com.pack.example;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloController {
    @RequestMapping("/")
    public String welcome(Model model) {
        model.addAttribute("mymessage", "Hello, World!");
        return "hello";
    }
}

 

Para configurar el dispatcher servlet será necesario crear en src/main/webapp/WEB-INF el archivo web.xml con el siguiente contenido:

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

 

En la misma ruta src/main/webapp/WEB-INF creamos el archivo HelloServlet-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

    <mvc:annotation-driven />
    <context:component-scan base-package="com.packt.example" />
 
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>
</beans>

 

IV. Ejecutar en Servidor

 

Click derecho en Package Explorer y click en Run As | Run on Server

Seleccionar el servidor configurado durante la instalación de STS

Click en Finish

 

005 maven project

 

 

Instalación y configuración básica de Spring Tool Suite, Apache Tomcat y Maven

A continuación se presentan los pasos para la instalación y configuración básica de Spring Tool Suite, Apache Tomcat y Maven

 

I. Instalar Java Development Kit

Se puede descargar desde la página oficial de Oracle

 

II. Configurar Java

Se deberán crear/modificar las siguientes variables de entorno con los valores expuestos:

Crear JAVA_HOME -> Carpeta de instalación del jdk

Modificar PATH -> Agregar la final del valor de esta variable la línea ; %JAVA_HOME%\bin

Para verificar que Java está correctamente configurado se puede escribir en línea de comandos: java – version cuya salida será la versión instalada de Java

 

III. Instalar una Build Tool (Maven en este caso)

Descargar Maven

Extraer los archivos de Maven en un directorio

Crear/modificar las variables de entorno:

Crear M2_HOME -> Ruta del directorio donde se extrajeron los archivos de Maven

Crear M2 -> Establecer como valor %M2_HOME%\bin

Modificar PATH -> Agregar al final la línea ; %M2%

Para comprobar la instalación de Maven, se puede escribir en línea de comandos : mvn -version cuya salida será la versión instalada de Maven

 

IV. Instalar un Servidor Web (Tomcat)

Descargar Apache Tomcat

Instalar y ejecutar Apache

 

V. Instalar Spring Tool Siute

Esta herramienta basada en Eclipse se puede descargar desde este enlace. La instalación es mediante interfaz gráfica (en windows). En caso de haber instalado el JDK en una ruta distinta a la de defecto, se deberá especificar esta ruta en el proceso de instalación de STS.

 

VI. Configurar Apache Tomcat en STS

En STS ir a Window | Preferences | Server | Runtime Environments

Click en Add

En el asistente escribir tomcat y elegir la versión de Apache Tomcat instalada, seleccionar checkbox Create a new local server y click en Next

En la siguiente ventana elegir la carpeta de instalación de Apache Tomcat y click en Finish

 

VII. Configurar Maven en STS

En STS ir a Window | Preferences | Maven | Installations

Click en Add y elegir la carpeta de instalación de Maven

Click en Ok