Herramientas de usuario

Herramientas del sitio


clase:daw:daw:1eval:tema03

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
clase:daw:daw:1eval:tema03 [2024/12/19 10:38]
admin [Ejercicios]
clase:daw:daw:1eval:tema03 [2025/01/12 20:57] (actual)
admin [Ejercicios]
Línea 354: Línea 354:
  
  
-Para cargar un fichero de varaibles se usa el comando ''source''.+Para cargar un fichero de variables se usa el comando ''source''.
  
   * Ejemplo de cargar las variables de ''config.env''   * Ejemplo de cargar las variables de ''config.env''
Línea 379: Línea 379:
 </sxh> </sxh>
  
-===== Instalar OpenJDK ===== +===== Interpretar las Variables de Bash ===== 
-Vamos ver como instalar y usar el JDK:+Al pasar argumentos un script se puede hacer de varias maneras. 
  
-Para instalar el JDK+  * Imaginemos el script ''test.sh'', que muestra por pantalla el primer argumento 
-  * Descargar el fichero tar.gz desde [[https://adoptium.net/es/temurin/releases/?os=linux&arch=x64&package=jdk|Temurin download]] +<sxh bash;title:test.sh> 
-  * Descomprime el fichero ''tar.gz'' en la carpeta actual y se creará una carpeta con el JDK:+#!/bin/bash 
 +echo $1 
 +</sxh> 
 + 
 +Y ahora lo vamos a ejecutar de 3 formas distintas: 
 + 
 +<sxh bash> 
 +a=Hola 
 +b=Adios 
 +./test.sh $a $b 
 +./test.sh '$a $b' 
 +./test.sh "$a $b" 
 +./test.sh "$a \$b" 
 +</sxh> 
 + 
 +¿Va a mostrar siempre ''Hola''? 
 + 
 +Veamos el resultado: 
 + 
 +<sxh text> 
 +Hola 
 +$a $b 
 +Hola Adios 
 +Hola $b 
 +</sxh> 
 + 
 +¿Qué es lo que ha pasado? 
 + 
 +^ Parametros    Resultados  ^  Explicación 
 +|  ''$a $b''  |  ''Hola''  | Lo toma como 2 argumentos separados y solo muestra ''Hola'' porque solo se muestra el primer argumento 
 +|  ''%%'%%$a $b%%'%%''  |  ''$a $b''  | Todo ahora es un único argumento, pero con la peculiaridad de que **no** interpreta las variables (y otras cosas) de BASH | 
 +|  ''%%"%%$a $b%%"%%''  |  ''Hola Adios''  | Todo ahora es un único argumento, pero si que se interpretan las variables de bash | 
 +|  ''%%"%%$a \$b%%"%%''  |  ''Hola $b''  | Todo ahora es un único argumento, pero si que se interpretan las variables de bash aunque no se evalúa la variable ''$b'' ya que está escapada con ''\''. | 
 + 
 + 
 +===== Instalar Java JRE ===== 
 +Vamos a ver como instalar y usar el JRE: 
 + 
 +Para instalar el JRE
 +  * Descargar el fichero tar.gz desde [[https://adoptium.net/es/temurin/releases/?os=linux&arch=x64&package=jre|Temurin download]] 
 +  * Descomprime el fichero ''tar.gz'' en la carpeta actual y se creará una carpeta con el JRE:
 <sxh bash> <sxh bash>
-tar -xf OpenJDK21U-jdk_x64_linux_hotspot_21.0.5_11.tar.gz  -C .+tar -xf OpenJDK21U-jre_x64_linux_hotspot_21.0.5_11.tar  -C .
 </sxh> </sxh>
  
Línea 394: Línea 434:
   * Crea la variable de entorno ''JAVA_HOME'':   * Crea la variable de entorno ''JAVA_HOME'':
 <sxh bash> <sxh bash>
-export JAVA_HOME=$(pwd)/jdk-21.0.5+11+export JAVA_HOME=$(pwd)/jdk-21.0.5+11-jre
 </sxh> </sxh>
  
Línea 406: Línea 446:
  
 <sxh bash> <sxh bash>
-export JAVA_HOME=$(pwd)/jdk-21.0.5+11 && $JAVA_HOME/bin/java -jar mi_app.jar+export JAVA_HOME=$(pwd)/jdk-21.0.5+11-jre 
 +$JAVA_HOME/bin/java -jar mi_app.jar
 </sxh> </sxh>
  
 <note tip> <note tip>
-El nombre del fichero ''OpenJDK21U-jdk_x64_linux_hotspot_21.0.5_11.tar.gz'' y de la carpeta ''jdk-21.0.5+11'' será distintas según la versión de java que estés usando.+El nombre del fichero ''OpenJDK21U-jre_x64_linux_hotspot_21.0.5_11.tar.gz'' y de la carpeta ''jdk-21.0.5+11-jre'' será distintas según la versión de java que estés usando.
 </note> </note>
  
 <note tip> <note tip>
-Si en GitHub no deja subir el ''OpenJDK21U-jdk_x64_linux_hotspot_21.0.5_11.tar.gz'' porque es un fichero demasiado grande, se puede partir en pequeños ficheros.+Si en GitHub no deja subir el ''OpenJDK21U-jre_x64_linux_hotspot_21.0.5_11.tar.gz'' porque es un fichero demasiado grande, se puede partir en pequeños ficheros.
  
   * Para dividir un fichero en trozos se usa esta orden:   * Para dividir un fichero en trozos se usa esta orden:
Línea 578: Línea 619:
   - Se usa ''$HOME/.ssh/id_rsa''   - Se usa ''$HOME/.ssh/id_rsa''
   - La clave añadida con ''ssh-agent'' (No explicada)   - La clave añadida con ''ssh-agent'' (No explicada)
 +
 +</note>
 +
 +<note tip>
 +El fichero con la clave privadas obligatoriamente deben solo puede tener permisos el propio usuario por lo que hay que ejecutar:
 +
 +<sxh bash>
 +chmod 600 id_rsa.pub
 +</sxh>
  
 </note> </note>
Línea 733: Línea 783:
       * Borrar la carpeta ''../Facturas''       * Borrar la carpeta ''../Facturas''
       * Descargar el código fuente de la app en ''../Facturas'' desde la URL ''${URL_SOURCE_GIT}''       * Descargar el código fuente de la app en ''../Facturas'' desde la URL ''${URL_SOURCE_GIT}''
-      * Realizar todo el proceso de despliegue. +      * Cambiar a la rama de git adecuada 
-        Copiar el ''OpenJDK21U-jdk_x64_linux_hotspot_21.0.5_11.tar.gz'' en la máquina de despliegue +      Generar el ''AppFacturas-0.0.1-SNAPSHOT.jar'' (incluyendo generar el CSS) 
-        * Descomprimir el ''OpenJDK21U-jdk_x64_linux_hotspot_21.0.5_11.tar.gz'' en la máquina de despliegue  +      * Copiar los siguientes ficheros en el servidor de despliegue 
-        * Cambiar a la rama de git adecuada y generar el ''AppFacturas-0.0.1-SNAPSHOT.jar'' (incluyendo generar el CSS) +        * ''OpenJDK21U-jre_x64_linux_hotspot_21.0.5_11.tar.gz'' 
-        * Copiar el ''AppFacturas-0.0.1-SNAPSHOT.jar'' en la máquina de despliegue +        * ''AppFacturas-0.0.1-SNAPSHOT.jar'' 
-        * Ejecutar el ''AppFacturas-0.0.1-SNAPSHOT.jar'' +        * ''server.sh'' 
-        * Abrir el puerto del cortafuegos +      * Borrar la carpeta ''../Facturas''  
-      * Borrar la carpeta ''../Facturas''+      * Ejecutar en el servidor el script ''server.sh'' el cual hace lo siguiente: 
 +        * Descomprimir el ''OpenJDK21U-jre_x64_linux_hotspot_21.0.5_11.tar.gz'' 
 +        * Abrir el puerto del cortafuegos  
 +        * Crear la variable de entorno ''JAVA_HOME'' 
 +        * Ejecutar el ''AppFacturas-0.0.1-SNAPSHOT.jar'' indicando el puerto con la variable ''server.port'' 
 + 
  
  
Línea 779: Línea 835:
       build.sh       build.sh
     /target                 /target            
-      AppFacturas-0.0.1-SNAPSHOT.jar+      Facturas-0.0.1-SNAPSHOT
     package.json     package.json
     pom.xml     pom.xml
Línea 786: Línea 842:
       id_rsa       id_rsa
       id_rsa.pub       id_rsa.pub
 +    /global
 +      app.env
     /entornos     /entornos
       pruebas.env       pruebas.env
Línea 794: Línea 852:
     /scripts     /scripts
       deploy.sh       deploy.sh
 +      server.sh
     package.json     package.json
-    app.env 
  
   * Maquina remota en la que se despliega   * Maquina remota en la que se despliega
  
-  /home/alumno+  /home/deployer
     /.ssh     /.ssh
       authorized_keys       authorized_keys
-    /nombreAlumno +    /jdk-21.0.5+11 
-      /jdk-21.0.5+11 +      /bin 
-        /bin +        java 
-          java +    server.sh 
-      OpenJDK21U-jdk_x64_linux_hotspot_21.0.5_11.tar.gz +    OpenJDK21U-jdk_x64_linux_hotspot_21.0.5_11.tar.gz 
-      AppFacturas-0.0.1-SNAPSHOT.jar+    Facturas-0.0.1-SNAPSHOT.jar 
 +     
 +     
 +La solución a estos ejercicio está en: 
 +  * [[https://github.com/lgonzalezmislata/Facturas]] 
 +  * [[https://github.com/lgonzalezmislata/DesplegarFacturas]] 
clase/daw/daw/1eval/tema03.1734601125.txt.gz · Última modificación: 2024/12/19 10:38 por admin