viernes, 30 de septiembre de 2016

Implementación de Servidor de Aplicaciones WildFly Standalone con Base de Datos PostgreSQL sobre CentOS 7

En este lab vamos a implementar el servidor WildFly sobre CentOS 7, este sera en modo standalone con un conector de base de datos postgresql, para ello necesitamos un servidor de centos de preferencia en perfil minimal

intranet.example.com 192.168.0.122




Primero debemos actualizar nuestro servidor de intranet e instalamos la versión de java 1.8
[root@intranet ~]# yum update -y
[root@intranet ~]# yum install -y java-1.8.0-openjdk

Para este lab también necesitamos la ultima versión de wildfly descargada de la pagina y el conector de postgresql

Movemos el instalador de wildfly a opt
[root@intranet ~]# mv wildfly-10.1.0.Final.tar.gz /opt/

Ingresamos a opt y descomprimimos el instalador
[root@intranet ~]# cd /opt/
[root@intranet opt]# tar -xzvf wildfly-10.1.0.Final.tar.gz

Renombramos la carpeta para que sea mas facil de configurar
[root@intranet opt]# mv wildfly-10.1.0.Final wildfly

Ingresamos a la ruta de wildfly y a la carpeta bin
[root@intranet opt]# cd wildfly/bin/

Con el script add-user podemos crear un usuario de administración


Ingresamos al siguiente archivo de configuracion
[root@intranet bin]# vi /opt/wildfly/standalone/configuration/standalone.xml

Cambiamos todas las definiciones de 127.0.0.1 a 192.168.0.122

Ahora creamos una carpeta para nuestro conector de postgresql
[root@intranet ~]# mkdir -p postgresql/main

Copiamos el archivo .jar descargado a la nueva ruta
[root@intranet ~]# cp postgresql-9.2-1004.jdbc41.jar postgresql/main/

Creamos el archivo
[root@intranet ~]# vi postgresql/main/module.xml
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.postgresql">
<resources>
<resource-root path="postgresql-9.2-1004.jdbc41.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>

Ahora copiamos la carpeta creada a la ruta de wildfly
[root@intranet ~]# cp -prf postgresql /opt/wildfly/modules/system/layers/base/org/

Volvemos a ingresar al archivo y agregamos el driver de postgres en la seccion de drivers donde ya existe el driver de h2
[root@intranet bin]# vi /opt/wildfly/standalone/configuration/standalone.xml
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="postgresql" module="org.postgresql">
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
</driver>
</drivers>


Ahora si podemos iniciar nuestro servicio de wildfly en modo standalone
[root@intranet bin]# ./standalone.sh


Con el servicio de wildfly activado podemos instalar nuestra base de datos

Primero instalamos la base de datos
[root@intranet ~]# yum install -y postgresql-server

Para inicializar la base de datos usamos
[root@intranet ~]# postgresql-setup initdb

Modificamos el archivo pg_hba para que acepte conexiones externas de nuestra red de servidores
[root@intranet ~]# vi /var/lib/pgsql/data/pg_hba.conf
host all all 192.168.0.0/24 md5

También modificamos el servicio para que escuche todas la interfaces
[root@intranet ~]# vi /var/lib/pgsql/data/postgresql.conf
Cambiamos la linea
#listen_addresses = 'localhost'
Por la linea
listen_addresses = '*'

Ahora iniciamos y habilitamos el servicio
[root@intranet ~]# systemctl enable postgresql
[root@intranet ~]# systemctl start postgresql

Podemos crear una base de datos de prueba
[root@intranet ~]# su - postgres
# psql

postgres=# create user andy with password 'centos';
postgres=# create database controlandy owner=andy;
postgres=# \q

Para finalizar con la configuración por comandos, abrimos los puertos de firewalld de wildfly y de postgresql

[root@intranet ~]# firewall-cmd --zone=public --add-port=9990/tcp --permanent
[root@intranet ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
[root@intranet ~]# firewall-cmd --zone=public --add-port=5432/tcp --permanent
[root@intranet ~]# firewall-cmd --reload

Ahora podemos ingresar por explorador web y empezar a configurar nuestro servicio, empesemos con el login con el usuario/password creados en pasos previos



Ingresamos a la sección de datasources para configurar la integracion con postgres



Seleccionamos custom



Nombramos el datasource como postgresql


Seleccionamos el driver de postgresql



Ingresamos el url de conexión referenciando el servidor intranet y la base de datos de prueba, también el usuario y clave de la base de datos


Aceptamos la creación del datasource



Podemos verificar la conexión



Validamos que sea correcta



Ahora que terminamos de integrarnos a la base de datos postgresql, podemos desplegar un war/ear de un proyecto



Generamos un nuevo proyecto



Seleccionamos el archivo war/ear



Activamos el proyecto



Ingresamos al servidor con el puerto 8080 y el nombre del proyecto para validarlo via navegador


Como mencionamos esta es la implementación mas simple en modo standalone, en futuras entradas a este blog crearemos una configuración similar en modo cluster y con balanceo de carga


No hay comentarios:

Publicar un comentario