SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
Creación de un Cartridge
para Openshift
Construyendo un
cartridge para GRAILS
Alex Irmel Oviedo Solis
PRESENTADO POR:
Embajador y empaquetador de Fedora por Perú
Acerca de mí ...
Alex Irmel Oviedo Solis
Fedora Ambassador for Peru
Ingeniero Informático y de Sistemas - UNSAAC
Openshift Acelerator - LATAM
SysAdmin - Gobierno Regional del Cusco
Agenda
· Nociones básicas del Cloud Computing.
· ¿Qué es OpenShift?
· Términos referidos a Openshift.
· Workflow de un cartridge.
· Estructura de un cartridge.
· Proceso de creación del cartridge.
· Proceso de prueba del cartridge.
· Documentación complementaria.
Términos básicos del
Cloud Computing
Términos básicos
· Cloud Computing
· Es un paradigma que permite ofrecer SERVICIOS
de computación a través de Internet.
· Posibilita el acceso a los servicios sin ser expertos
en estos, al menos en los servicios diseñados para
los usuarios.
Términos básicos
¿Qué es OpenShift?
¿Qué es OpenShift?
· OpenShift es un producto de computación en
la nube de plataforma como servicio de Red
Hat.
· Este software funciona como un servicio que
es de código abierto bajo el nombre de
"OpenShift Origin", y está disponible en
GitHub.
· Los desarrolladores pueden usar Git para
desplegar sus aplicaciones Web en los
diferentes lenguajes de la plataforma.
¿Qué es OpenShift?
origin
Public
Cloud
Service
On-
premise
or Private
Cloud
Software
Open
Source
Project
¿Qué es OpenShift?
· OpenShift también soporta programas binarios
que sean aplicaciones Web, con tal de que se
puedan ejecutar en RHEL Linux. Esto permite el
uso de lenguajes arbitrarios y frameworks.
· OpenShift se encarga de mantener los
servicios subyacentes a la aplicación y la
escalabilidad de la aplicación como se
necesite.
¿Qué es OpenShift?
Términos referidos a
Openshift
Términos referidos a
Openshift
● Gears o Engranajes
● Un engranaje representa una porción de CPU,
memoria RAM y la base de almacenamiento del
nodo que se pondrá a disposición de cada
aplicación. Una aplicación no puede utilizar más
recursos de los que le ha sido asignados, con la
excepción de almacenamiento.
● Cartridge o Cartuchos
● Cartuchos representan componentes enchufables
que se pueden combinar en una sola aplicación.
● Estos incluyen los lenguajes de programación,
motores de bases de datos, y varias herramientas de
gestión.
Workflow de un
cartridge
Workflow de un cartridge
1.- Creación del
Gear
2.- Copia del cartridge
dentro del gear.
3.- Ejecución del
script “setup”
4.- Ejecución
de “hooks”
5.- Inicio del cartridge
vía “control start”
Estructura de un
cartridge
Estructura de un cartridge
Estructura de un cartridge
Proceso de creación
del cartridge
Proceso de creación del
cartridge
● Crear y editar “bin”:
● “bin/build” -> Construccion de la App
● “bin/control” -> Inicio, Parada, Reinicio
● “bin/deploy” -> Despliegue de la aplicación
● “bin/install” -> Instalar template en workspace
● “bin/setup” -> Instalar cartridge en Openshift
● “bin/upgrade” -> Actualización del cartridge
Proceso de creación del
cartridge
● Crear y editar “env”:
● Archivos con variables de entorno principal.
● Crear y editar “metadata”:
● manifest-yml -> Archivo de manifiesto principal
● managed_files.yml -> Archivos para archivos protegidos
● Crear y editar “template”:
● Organización inicial del proyecto.
Proceso de prueba
Del cartridge
Proceso de prueba del
cartridge
● Subir archivos a un lugar de internet como
github.
● Utilizando la interface web, debería ser más o
menos asi:
Proceso de prueba del
cartridge
Proceso de prueba del
cartridge
● Usando la linea de comandos:
Manifest URL
RHC command
Proceso de prueba del
cartridge
El futuro...
El futuro...
Documentación
Complementaria
Documentación
complementaria
● https://www.openshift.com/blogs/new-openshift-
cartridge-format-part-1
● https://www.openshift.com/blogs/new-openshift-
cartridge-format-part-2
● https://www.openshift.com/blogs/new-openshift-
cartridge-format-part-3
● http://openshift.github.io/documentation/oo_cartridg
e_developers_guide.html
● https://github.com/mmcgrath-openshift/openshift-
httpd-cartridge-broken
¿Preguntas?
Ing Alex Irmel Oviedo Solis
alexove@fedoraproject.org
http://fb.com/alex.oviedosolis
@alexove_pe
http://alexove.me
Descarga el codigo fuente en:
https://github.com/alexove/openshift-grails-cartridge

Más contenido relacionado

La actualidad más candente

Docker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoDocker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoRestorando
 
Kubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaKubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaJoselu Marina
 
Capistrano drupalcamp-jerez-2015
Capistrano drupalcamp-jerez-2015Capistrano drupalcamp-jerez-2015
Capistrano drupalcamp-jerez-2015David Gil Sánchez
 
Desplegando Drupal con Capistrano
Desplegando Drupal con CapistranoDesplegando Drupal con Capistrano
Desplegando Drupal con CapistranoDavid Gil Sánchez
 
Ansible para Gestión de la configuración y Automatización
Ansible para Gestión de la configuración y AutomatizaciónAnsible para Gestión de la configuración y Automatización
Ansible para Gestión de la configuración y Automatizaciónsergiovier
 
Casper JS - Asegurando la calidad en front-end Drupal
Casper JS - Asegurando la calidad en front-end DrupalCasper JS - Asegurando la calidad en front-end Drupal
Casper JS - Asegurando la calidad en front-end DrupalDavid Gil Sánchez
 
PDO: Capa de abstracción de base de datos con PHP
PDO: Capa de abstracción de base de datos con PHPPDO: Capa de abstracción de base de datos con PHP
PDO: Capa de abstracción de base de datos con PHPArsys
 
Workshop docker: Iniciando en el Mundo de los Contenedores
Workshop docker: Iniciando en el Mundo de los ContenedoresWorkshop docker: Iniciando en el Mundo de los Contenedores
Workshop docker: Iniciando en el Mundo de los ContenedoresJesús A. Rodríguez B.
 
Introduccion a Nodejs
Introduccion a NodejsIntroduccion a Nodejs
Introduccion a NodejsJan Sanchez
 
Node JS (Francisco Cerdas)
Node JS (Francisco Cerdas)Node JS (Francisco Cerdas)
Node JS (Francisco Cerdas)PiXeL16
 
Curso node.js
Curso node.js Curso node.js
Curso node.js Redradix
 
Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015Gustavo Andres Brey
 
Symfony2 Introducción
Symfony2 IntroducciónSymfony2 Introducción
Symfony2 Introducciónstrate
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación DockerITPAMI
 
DevOps & Infraestructura como código: Promesas Rotas
DevOps & Infraestructura como código: Promesas RotasDevOps & Infraestructura como código: Promesas Rotas
DevOps & Infraestructura como código: Promesas RotasRicard Clau
 

La actualidad más candente (19)

Docker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoDocker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en Restorando
 
Kubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaKubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y Taniwa
 
Capistrano drupalcamp-jerez-2015
Capistrano drupalcamp-jerez-2015Capistrano drupalcamp-jerez-2015
Capistrano drupalcamp-jerez-2015
 
Desplegando Drupal con Capistrano
Desplegando Drupal con CapistranoDesplegando Drupal con Capistrano
Desplegando Drupal con Capistrano
 
Introducción a Node.js
Introducción a Node.jsIntroducción a Node.js
Introducción a Node.js
 
Ansible para Gestión de la configuración y Automatización
Ansible para Gestión de la configuración y AutomatizaciónAnsible para Gestión de la configuración y Automatización
Ansible para Gestión de la configuración y Automatización
 
Casper JS - Asegurando la calidad en front-end Drupal
Casper JS - Asegurando la calidad en front-end DrupalCasper JS - Asegurando la calidad en front-end Drupal
Casper JS - Asegurando la calidad en front-end Drupal
 
Introduccion a Node.js
Introduccion a Node.jsIntroduccion a Node.js
Introduccion a Node.js
 
PDO: Capa de abstracción de base de datos con PHP
PDO: Capa de abstracción de base de datos con PHPPDO: Capa de abstracción de base de datos con PHP
PDO: Capa de abstracción de base de datos con PHP
 
Workshop docker: Iniciando en el Mundo de los Contenedores
Workshop docker: Iniciando en el Mundo de los ContenedoresWorkshop docker: Iniciando en el Mundo de los Contenedores
Workshop docker: Iniciando en el Mundo de los Contenedores
 
Introduccion a Nodejs
Introduccion a NodejsIntroduccion a Nodejs
Introduccion a Nodejs
 
Node JS (Francisco Cerdas)
Node JS (Francisco Cerdas)Node JS (Francisco Cerdas)
Node JS (Francisco Cerdas)
 
Introducción a Node.js
Introducción a Node.jsIntroducción a Node.js
Introducción a Node.js
 
Curso node.js
Curso node.js Curso node.js
Curso node.js
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015
 
Symfony2 Introducción
Symfony2 IntroducciónSymfony2 Introducción
Symfony2 Introducción
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
DevOps & Infraestructura como código: Promesas Rotas
DevOps & Infraestructura como código: Promesas RotasDevOps & Infraestructura como código: Promesas Rotas
DevOps & Infraestructura como código: Promesas Rotas
 

Destacado

Matematica bibliografia ligouras-panagiote-takis_2016_07-29.00
Matematica bibliografia ligouras-panagiote-takis_2016_07-29.00Matematica bibliografia ligouras-panagiote-takis_2016_07-29.00
Matematica bibliografia ligouras-panagiote-takis_2016_07-29.00Panagiote Ligouras
 
업사이틀링 최종
업사이틀링 최종업사이틀링 최종
업사이틀링 최종khaki0107
 
Up and Running Software, Inc. - What 500 Clients Taught Me - Peter Hanson - A...
Up and Running Software, Inc. - What 500 Clients Taught Me - Peter Hanson - A...Up and Running Software, Inc. - What 500 Clients Taught Me - Peter Hanson - A...
Up and Running Software, Inc. - What 500 Clients Taught Me - Peter Hanson - A...Pete Hanson
 
Confusion de Autos???
Confusion de Autos???Confusion de Autos???
Confusion de Autos???bebocuriel
 
Vulcão submarino da serreta
Vulcão submarino da serretaVulcão submarino da serreta
Vulcão submarino da serretafilipe_gordinho
 
Types of Tests_Dessler
Types of Tests_DesslerTypes of Tests_Dessler
Types of Tests_Desslerpascastpt
 
chuyên bán đồng hồ casio 6 kim
chuyên bán đồng hồ casio 6 kimchuyên bán đồng hồ casio 6 kim
chuyên bán đồng hồ casio 6 kimjaime351
 
Work Samples and Simulations New
Work Samples and Simulations NewWork Samples and Simulations New
Work Samples and Simulations Newpascastpt
 
Carta al Gobernador Provincia de Llanquihue 26.08.10
Carta al Gobernador Provincia de Llanquihue 26.08.10Carta al Gobernador Provincia de Llanquihue 26.08.10
Carta al Gobernador Provincia de Llanquihue 26.08.10Walter Velasquez
 
P4: Kiwibot Basic Shield: Interruptor crepuscular
P4: Kiwibot Basic Shield: Interruptor crepuscularP4: Kiwibot Basic Shield: Interruptor crepuscular
P4: Kiwibot Basic Shield: Interruptor crepuscularJosé Pujol Pérez
 

Destacado (15)

Matematica bibliografia ligouras-panagiote-takis_2016_07-29.00
Matematica bibliografia ligouras-panagiote-takis_2016_07-29.00Matematica bibliografia ligouras-panagiote-takis_2016_07-29.00
Matematica bibliografia ligouras-panagiote-takis_2016_07-29.00
 
업사이틀링 최종
업사이틀링 최종업사이틀링 최종
업사이틀링 최종
 
Up and Running Software, Inc. - What 500 Clients Taught Me - Peter Hanson - A...
Up and Running Software, Inc. - What 500 Clients Taught Me - Peter Hanson - A...Up and Running Software, Inc. - What 500 Clients Taught Me - Peter Hanson - A...
Up and Running Software, Inc. - What 500 Clients Taught Me - Peter Hanson - A...
 
Confusion de Autos???
Confusion de Autos???Confusion de Autos???
Confusion de Autos???
 
Ligouras mate v_intnum_01
Ligouras mate v_intnum_01Ligouras mate v_intnum_01
Ligouras mate v_intnum_01
 
Webinar logitech
Webinar logitechWebinar logitech
Webinar logitech
 
Thomas (TJ) Chamberlin Resume
Thomas (TJ) Chamberlin ResumeThomas (TJ) Chamberlin Resume
Thomas (TJ) Chamberlin Resume
 
Vulcão submarino da serreta
Vulcão submarino da serretaVulcão submarino da serreta
Vulcão submarino da serreta
 
Types of Tests_Dessler
Types of Tests_DesslerTypes of Tests_Dessler
Types of Tests_Dessler
 
chuyên bán đồng hồ casio 6 kim
chuyên bán đồng hồ casio 6 kimchuyên bán đồng hồ casio 6 kim
chuyên bán đồng hồ casio 6 kim
 
Work Samples and Simulations New
Work Samples and Simulations NewWork Samples and Simulations New
Work Samples and Simulations New
 
Carta al Gobernador Provincia de Llanquihue 26.08.10
Carta al Gobernador Provincia de Llanquihue 26.08.10Carta al Gobernador Provincia de Llanquihue 26.08.10
Carta al Gobernador Provincia de Llanquihue 26.08.10
 
Data Quality Control
Data Quality ControlData Quality Control
Data Quality Control
 
Foxtail Website Audit
Foxtail Website AuditFoxtail Website Audit
Foxtail Website Audit
 
P4: Kiwibot Basic Shield: Interruptor crepuscular
P4: Kiwibot Basic Shield: Interruptor crepuscularP4: Kiwibot Basic Shield: Interruptor crepuscular
P4: Kiwibot Basic Shield: Interruptor crepuscular
 

Similar a Creación cartridge Grails Openshift

Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Francisco Javier Toscano Lopez
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Restorando
 
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de desplieguesSecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de desplieguesJose Luis Soria
 
Desarrollo de apps móviles con Apache Cordova
Desarrollo de apps móviles con Apache CordovaDesarrollo de apps móviles con Apache Cordova
Desarrollo de apps móviles con Apache CordovaSoftware Guru
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualizaciónMarcelo Ochoa
 
Alta disponibilidad con Pacemaker
Alta disponibilidad con PacemakerAlta disponibilidad con Pacemaker
Alta disponibilidad con PacemakerNelson Calero
 
Sistema de Monitoreo Nagios Core
Sistema de Monitoreo Nagios CoreSistema de Monitoreo Nagios Core
Sistema de Monitoreo Nagios CoreYeider Fernandez
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicasGerardo Linares
 

Similar a Creación cartridge Grails Openshift (20)

Offering Cloud Solutions
Offering Cloud Solutions Offering Cloud Solutions
Offering Cloud Solutions
 
Turbogears
TurbogearsTurbogears
Turbogears
 
Terraform Ansible v3.0
Terraform Ansible v3.0Terraform Ansible v3.0
Terraform Ansible v3.0
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
 
Paralela9
Paralela9Paralela9
Paralela9
 
Kubernetes workshop
Kubernetes workshopKubernetes workshop
Kubernetes workshop
 
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de desplieguesSecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
 
Framework Catalyst
Framework CatalystFramework Catalyst
Framework Catalyst
 
Desarrollo de apps móviles con Apache Cordova
Desarrollo de apps móviles con Apache CordovaDesarrollo de apps móviles con Apache Cordova
Desarrollo de apps móviles con Apache Cordova
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
Kubernetes para developers
Kubernetes para developersKubernetes para developers
Kubernetes para developers
 
NcN_CSUC_CSIRT
NcN_CSUC_CSIRTNcN_CSUC_CSIRT
NcN_CSUC_CSIRT
 
CERT/CSIRT's tools: Con las manos en la masa
CERT/CSIRT's tools: Con las manos en la masaCERT/CSIRT's tools: Con las manos en la masa
CERT/CSIRT's tools: Con las manos en la masa
 
Alta disponibilidad con Pacemaker
Alta disponibilidad con PacemakerAlta disponibilidad con Pacemaker
Alta disponibilidad con Pacemaker
 
Funkschau 2013-español
Funkschau 2013-españolFunkschau 2013-español
Funkschau 2013-español
 
Webinar Migración de Forms & Reports a Oracle Cloud
Webinar Migración de Forms & Reports a Oracle CloudWebinar Migración de Forms & Reports a Oracle Cloud
Webinar Migración de Forms & Reports a Oracle Cloud
 
Sistema de Monitoreo Nagios Core
Sistema de Monitoreo Nagios CoreSistema de Monitoreo Nagios Core
Sistema de Monitoreo Nagios Core
 
Exposicion nagios core
Exposicion nagios coreExposicion nagios core
Exposicion nagios core
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicas
 

Creación cartridge Grails Openshift

  • 1. Creación de un Cartridge para Openshift Construyendo un cartridge para GRAILS Alex Irmel Oviedo Solis PRESENTADO POR: Embajador y empaquetador de Fedora por Perú
  • 2. Acerca de mí ... Alex Irmel Oviedo Solis Fedora Ambassador for Peru Ingeniero Informático y de Sistemas - UNSAAC Openshift Acelerator - LATAM SysAdmin - Gobierno Regional del Cusco
  • 3. Agenda · Nociones básicas del Cloud Computing. · ¿Qué es OpenShift? · Términos referidos a Openshift. · Workflow de un cartridge. · Estructura de un cartridge. · Proceso de creación del cartridge. · Proceso de prueba del cartridge. · Documentación complementaria.
  • 5. Términos básicos · Cloud Computing · Es un paradigma que permite ofrecer SERVICIOS de computación a través de Internet. · Posibilita el acceso a los servicios sin ser expertos en estos, al menos en los servicios diseñados para los usuarios.
  • 8. ¿Qué es OpenShift? · OpenShift es un producto de computación en la nube de plataforma como servicio de Red Hat. · Este software funciona como un servicio que es de código abierto bajo el nombre de "OpenShift Origin", y está disponible en GitHub. · Los desarrolladores pueden usar Git para desplegar sus aplicaciones Web en los diferentes lenguajes de la plataforma.
  • 9. ¿Qué es OpenShift? origin Public Cloud Service On- premise or Private Cloud Software Open Source Project
  • 10. ¿Qué es OpenShift? · OpenShift también soporta programas binarios que sean aplicaciones Web, con tal de que se puedan ejecutar en RHEL Linux. Esto permite el uso de lenguajes arbitrarios y frameworks. · OpenShift se encarga de mantener los servicios subyacentes a la aplicación y la escalabilidad de la aplicación como se necesite.
  • 13. Términos referidos a Openshift ● Gears o Engranajes ● Un engranaje representa una porción de CPU, memoria RAM y la base de almacenamiento del nodo que se pondrá a disposición de cada aplicación. Una aplicación no puede utilizar más recursos de los que le ha sido asignados, con la excepción de almacenamiento. ● Cartridge o Cartuchos ● Cartuchos representan componentes enchufables que se pueden combinar en una sola aplicación. ● Estos incluyen los lenguajes de programación, motores de bases de datos, y varias herramientas de gestión.
  • 15. Workflow de un cartridge 1.- Creación del Gear 2.- Copia del cartridge dentro del gear. 3.- Ejecución del script “setup” 4.- Ejecución de “hooks” 5.- Inicio del cartridge vía “control start”
  • 17. Estructura de un cartridge
  • 18. Estructura de un cartridge
  • 20. Proceso de creación del cartridge ● Crear y editar “bin”: ● “bin/build” -> Construccion de la App ● “bin/control” -> Inicio, Parada, Reinicio ● “bin/deploy” -> Despliegue de la aplicación ● “bin/install” -> Instalar template en workspace ● “bin/setup” -> Instalar cartridge en Openshift ● “bin/upgrade” -> Actualización del cartridge
  • 21. Proceso de creación del cartridge ● Crear y editar “env”: ● Archivos con variables de entorno principal. ● Crear y editar “metadata”: ● manifest-yml -> Archivo de manifiesto principal ● managed_files.yml -> Archivos para archivos protegidos ● Crear y editar “template”: ● Organización inicial del proyecto.
  • 23. Proceso de prueba del cartridge ● Subir archivos a un lugar de internet como github. ● Utilizando la interface web, debería ser más o menos asi:
  • 24. Proceso de prueba del cartridge
  • 25. Proceso de prueba del cartridge ● Usando la linea de comandos: Manifest URL RHC command
  • 26. Proceso de prueba del cartridge
  • 30. Documentación complementaria ● https://www.openshift.com/blogs/new-openshift- cartridge-format-part-1 ● https://www.openshift.com/blogs/new-openshift- cartridge-format-part-2 ● https://www.openshift.com/blogs/new-openshift- cartridge-format-part-3 ● http://openshift.github.io/documentation/oo_cartridg e_developers_guide.html ● https://github.com/mmcgrath-openshift/openshift- httpd-cartridge-broken
  • 31. ¿Preguntas? Ing Alex Irmel Oviedo Solis alexove@fedoraproject.org http://fb.com/alex.oviedosolis @alexove_pe http://alexove.me Descarga el codigo fuente en: https://github.com/alexove/openshift-grails-cartridge