Clúster


Verificando la configuración

Para asegurar que el clúster ha sido correctamente  configurado, utilizamos las utilerías ubicadas en /usr/sbin

Probamos la accesibilidad a las particiones compartidas.

/usr/sbin/shutil -v

Las particiones compartidas se deberán referir al mismo dispositivo físico. Si el comando anterior funciona correctamente entonces ejecutamos en cada uno de los nodos para desplegar el encabezado de la estructura de datos para la partición compartida.

/usr/sbin/shutil -p /cluster/header

Si la salida es diferente en cada miembro, entonces hay un error, pues no están apuntando todos a la misma partición compartida.

Varificar que los dispositivos de memoria como tal existen y están correctamente indicados en el archivo /etc/sysconfig/rawdevices

Determinar cada bus en cada miembro, examinamos el sistema de mensajes de inicio ejecutando

dmesg |less

Verificar que el miembro no esta tratando de montar un FS en la partición compartida, verificando que el dispositivo actual no esta incluido en el /etc/fstab

Volvemos a ejecutar para verificar

/usr/sbin/shutil -p

Probamos la operación de los interruptores de alimentación

Si se están usando interruptores de alimentación en la configuración del hardware, ejecutamos el comando confluence en cada miembro puede remotamente encender el ciclo hacia otro miembro. No ejecutar el comando mientras se esta ejecutando algún SW.

clufence

  • -d — Turn on debugging
  • -f — Fence (power off) member
  • -u — Unfence (power on) member
  • -r — Reboot (power cycle) member
  • -s — Check status of all switches controlling member

Asegurar que todos los miembros están ejecutando la misma versión del software

Para desplegar el resultado de la revisión de los RPM´s instalados en el clúster, ejecutamos en cada miembro el comando:

rpm -q clumanager

rpm -q redhat-config-cluster

Git


Instalación

  1. sudo yum install git
  2. git --version

 

Uso

Clonando un repositorio.

git clone <repository-name.git>

Verificación del estatus del repositorio local, indicandonos si está sincronizado

git status

Como buena práctica, antes verificamos que nuestro repo LOCAL tenga todos los cambios en el MASTER.

git pull origin master

Se agregan todos los cambios locales al listado de los cambios por subir.

git add .

En caso de haber elimidado algunos archivos, deberemos utilizar:

git add --all

Enviamos los cambios y hacemos commit

git push origin master
git commit -m "Comentarios"

Comparto contigo algunos proyectos en https://gitahub.com/yanellyjm

Vagrant


Versión en español de …

Vagrant es una herramienta para la creación y configuración de entornos de desarrollo virtualizados.

Desde la versión 1.1 Vagrant es capaz de trabajar con múltiples proveedores, como VMwareAmazon EC2LXCDigitalOcean, etc. Y se puede usar en multitud de proyectos escritos en otros lenguajes, tales como PHPPythonJavaC# y JavaScript.

¿Por qué VAGRANT?

Vagrant provee configuraciones fáciles, reproducibles y portables a través de distintos ambientes de trabajo, construidos con los mejores estándares de la industria de la tecnología y controlados por un único y consistente flujo para ayudar a maximizar la productividad y flexibilidad.

Para lograr esto, Vagrant soporta sobre sus hombros a gigantes. Las máquinas son aprovisionadas dentro de distintos proveedores de servicios de virtualización como son, Virtual Box, AWS y cualquier otro proveedor. Luego entonces, herramientas de aprovisionamiento  estándar en la industria como Shell Scripts, Chef, Puppet; pueden ser utilizadas para automatizar la instalación y configuración del software en las máquinas.

COMO VAGRANT TE BENEFICIA

Si se es Desarrollador, Vagrant va a aislar dependencias y su configuración dentro de un único entorno disponible, consistente y sin sacrificar ninguna de las herramientas que se tiene acostumbrado utilizar como editores, debuggers, etc. Una vez que se crea el vagrantfile, sólo es necesario ejecutar el comando vagrant up y todo es instalado y configurado para trabajar; y así otros miembros del quipo pueden crear sus ambientes usando la misma configuración incluso en sistemas operativos diferentes, ejecutando código en el mismo ambiente, contra las mismas dependencias, todo configurado de la misma manera; diciendo así, adiós a resolver “los bugs en mi máquina”.

Si tu eres un Ingeniero de Operaciones, Vagrant da un ambiente disponible y un workflow consistente para desarrollar y probar scripts de gestión de infraestructura. Rápidamente se pueden probar cosas como Shell Scripts, Chef cookbooks, módulos de Puppet y más, utilizando virtualización local con Virtual Box o VMware. Luego entonces, con la misma configuración, se podrán probar los mismos scripts en la nube, como en AWS o RackSpace con el mismo workflow.

Deshazte de tus encargos de scripts para distintas instancias, detener vía SSH varios equipos, etc etc. y comienza a utilizar Vagrant para traer sanidad a tu vida. (Acaso es el pare de sufrir de los Desarrolladores??? jajajaa continuará … )

Herramienta muy útil dentro de los ambientes de desarrollo, que permite la automatización del aprovisionamiento de MV. Dentro del contexto de Storm.

WINDOWS

Instalación

VBOX_MSI_INSTALL_PATH = C:\Program Files\Oracle\VirtualBox\

Bugzilla


MYSQL

sudo apt-get install mysql-server mysql-client

Configuración

  • nano /etc/mysql/my.cnf

Asignar los siguientes valores en la línea 52:

  • max_allowed_packet=100M

Agregar una nueva línea, bajo la sección mysqld]

  • ft_min_word_len=2

Crear un usuario en MySQL para Bugzilla:

mysql -u root -p -e

Cambiar db_pass por el valor de la contraseña.

Reiniciar MySQL

sudo /etc/init.d/mysql start

Agregamos un usuario MySQL para Bugzilla:

mysql -u root -p

“GRANT ALL PRIVILEGES ON bugs.* TO bugs@localhost IDENTIFIED BY ‘EXIT$db_pass'”;

APACHE

Crear el archivo bugzilla.con

sudo nano /etc/apache2/sites-available/bugzilla.conf

ServerName localhost

<Directory /var/www/html>

AddHandler cgi-script .cgi

Options +ExecCGI

DirectoryIndex index.cgi index.html

AllowOverride Limit FileInfo Indexes Options

</Directory>

a2ensite bugzilla 

service apache2 reload

a2enmod cgi headers expires

service apache2 restart

 

Historia de Usuario (User Story)


Estructura y Redacción

 

La redacción esta a cargo del Dueño del Producto, o bien, a cargo del Scrum Master para el caso en que el Dueño de Producto no cuente con las habilidades para realizar dicha actividad; en este caso el SM únicamente funge como un “anotador”.

Las Historias de Usuario siguen básicamente la siguiente estructura:

Como nombre del Rol (QUIÉN)  quiero acción (QUÉ)  y así podré objetivo (POR QUÉ)

Hay mucho que decir todavía, sin embargo comprender el objetivo de esta estructura define el éxito o no de la entrega ;)

Aside

Open Bravo


OPEN BRAVO

Amazon Elastic Compute Cloud (Amazon EC2)

Particularmente creo útil el uso de imágenes más que el uso de listados de pasos, razón por la cual a continuación se presenta el proceso de Instalación y Configuración de Amazon EC2:

  1. Seleccionar una imagen de máquina de Amazon (AMI) de plantilla preconfigurada para que entre en funcionamiento de inmediato. O bien crear una AMI que contenga sus aplicaciones, bibliotecas, datos y valores de configuración asociados.Captura de pantalla 2013-06-10 a la(s) 15.13.46
  2. Configurar la seguridad y el acceso a red en su instancia de Amazon EC2.
  1. Seleccionar los tipos de instancias que desee y, a continuación, iniciar, finalizar y supervisar tantas instancias de su AMI como sea necesario, a través de las API de servicio web o la variedad de herramientas de gestión proporcionadas.
  2. Determinar si desea una ejecución en varias localizaciones, utilizar puntos finales de IP estáticos o adjuntar almacenamiento de bloques continuo a sus instancias.
  3. Pagar sólo por los recursos que realmente consuma, como las horas de uso de instancias o la transferencia de datos.

http://ec2-54-224-167-91.compute-1.amazonaws.com/openbravo

Captura de pantalla 2013-06-10 a la(s) 15.13.46

Visualizandose lo siguiente

Captura 2

ERROR COMÚN
  • Software caused connection abort: socket write error

org.openbravo.base.exception.OBException: Exception thrown Exception thrown null
at org.openbravo.dal.core.ThreadHandler.run(ThreadHandler.java:63)
at org.openbravo.dal.core.DalRequestFilter.doFilter(DalRequestFilter.java:103)

Caused by: ClientAbortException: java.net.SocketException: Software caused connection abort: socket write error
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:369)

REFERENCIAS.


Breve Guía Openbravo ERP

Esta es simplemente una breve guía que muestra un posible escenario para implementar ERP OpenBravo. Cabe mencionar que hacerlo requiere de además skills técnicos, del entendimiento del negocio.

http://prezi.com/osrk5avfyjlf/metodologia-de-implementacion/

.

Deploy to JBoss 7


This is a brief technical memory to deploy with JBoss 7, any comments or observations are welcome

REQUIREMENTS

  • To deploy with JBoos 7 requiered install and to configured the environment variables for maven 3 and Java 7

  • This is optional, you can define a goal for maven with:

<build>

    <finalName>project name</finalName>

    <plugins>

      <plugin>

         <groupId>org.apache.maven.plugins</groupId>

         <artifactId>maven-war-plugin</artifactId>

         <version>2.3</version>

         <executions>

            <execution>

               <phase>package</phase>

               <configuration>

                  <webXml>WEB-INF/web.xml</webXml>

               </configuration>

            </execution>

         </executions>

      </plugin>

   </plugins>

  </build>

INSTALLLING JBOSS 7

 

Unpackage the jboss-as-7.0.0.Final.zip in the next location

C:\Development_Tools\JBoss

Configure the JBOSS_HOME with the JBoss path

Generate war file executing the next maven command in the location where is the pom file

  • mvn clean install

 Copy the war file generated from

C:\Development_Tools\EclipseWorkspace\WebsiteServices\target

 To

 C:\Development_Tools\JBoss\jboss-as-7.0.0\jboss-as-7.0.0\standalone\deployments

Copy properties file to next location

 C:\Development_Tools\JBoss\jboss-as-7.0.0\jboss-as-7.0.0\standalone\configuration

 

Modify the standalone.xml adding next sections with proper data:

<system-properties>

        <property name=”service.endpoint.jndi.location” value=”jnp://es-jndi-dev.something.com:8180″/>

        <property name=”website.services.properties.file.location” value=”WebsiteServices.properties”/>

    </system-properties>

<subsystem xmlns=”urn:jboss:domain:datasources:1.0″>

            <datasources>

                <datasource jndi-name=”java:/OracleDS” pool-name=”OracleDS_Pool” enabled=”true” jta=”true” use-java-context=”true” use-ccm=”true”>

                    <connection-url>

                        jdbc:oracle:thin:@name.company.com:1521:WEBDEV

                    </connection-url>

                    <driver>jdbc.driver.OracleDriver

                    </driver>

<new-connection-sql>

select 1 from dual

</new-connection-sql>

<pool>

<min-pool-size>

5

</min-pool-size>

<max-pool-size>

20

</max-pool-size>

<prefill>

false

</prefill>

<use-strict-min>

true

</use-strict-min>

<flush-strategy>

FailingConnectionOnly

</flush-strategy>

</pool>

<security>

<user-name>

WEBDB

</user-name>

<password>

wRuzuf5E

</password>

</security>

<validation>

<check-valid-connection-sql>

select 1 from dual

</check-valid-connection-sql>

<validate-on-match>

false

</validate-on-match>

<background-validation>

false

</background-validation>

<useFastFail>

false

</useFastFail>

</validation>

<timeout>

<idle-timeout-minutes>

45

</idle-timeout-minutes>

<query-timeout>

600

</query-timeout>

</timeout>

<statement>

<track-statements>

TRUE

</track-statements>

</statement>

</datasource>

 

 Finally you can run the bat for JBoss 7.0 with the following command  in this location

C:\Development_Tools\JBoss\jboss-as-7.0.0\jboss-as-7.0.0\bin

 Encrypting datasource password

 export  JBOSS_HOME=/apps/jboss/jboss-as

export CLASSPATH=$JBOSS_HOME/modules/org/picketbox/main/picketbox

-4.0.7.Final.jar:$JBOSS_HOME/modules/org/jboss/logging/main/jboss-logging-3.1.0.GA.jar:$CLASSPATH

java  org.picketbox.datasource.security.SecureIdentityLoginModule  mypassword

Encoded password: -50fa369660ea3144207a6dde3d75616de44

 Define the application policy for the corresponding datasource  

<application-policy name = “WebDBPassword”>

<authentication>

<login-module code = “org.jboss.resource.security.SecureIdentityLoginModule” flag = “required”>

<module-option name = “username”>WEBDB</module-option>

<module-option name = “password”>-50ba369694jfk40la3144207a6df87216de44</module-option>

<module-option name =“managedConnectionFactoryName”>

jboss.jca:service=LocalTxCM,name=OracleDS

</module-option>

</login-module>

</authentication>

</application-policy>