Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
clase:daw:daw:2eval:tema09 [2020/12/18 09:27] admin |
clase:daw:daw:2eval:tema09 [2021/01/24 08:12] admin [Crear un Job] |
||
---|---|---|---|
Línea 26: | Línea 26: | ||
En ejercicios de temas anteriores hemos visto como instalar Jenkins.Ahora vamos a ejecutar un Script desde Jenkins | En ejercicios de temas anteriores hemos visto como instalar Jenkins.Ahora vamos a ejecutar un Script desde Jenkins | ||
- | ==== root por SSH ==== | + | ===== root por SSH ===== |
Antes que nada debemos permitir que se pueda acceder por SSH como root desde la máquina real. Esto lo vamos a necesitar ya que desde Jenkins vamos a ejecutar "npm run deploy" | Antes que nada debemos permitir que se pueda acceder por SSH como root desde la máquina real. Esto lo vamos a necesitar ya que desde Jenkins vamos a ejecutar "npm run deploy" | ||
Línea 42: | Línea 42: | ||
</ | </ | ||
- | ==== SSH2 Easy ==== | + | ===== Plugin |
Otra cosa que necesitamos hacer es instalar y configurar el plugin "SSH2 Easy" para poder acceder por SSH a la máquina real y así lanzar las órdenes en la máquina real. | Otra cosa que necesitamos hacer es instalar y configurar el plugin "SSH2 Easy" para poder acceder por SSH a la máquina real y así lanzar las órdenes en la máquina real. | ||
Línea 68: | Línea 68: | ||
* Server IP: La IP de la máquina real. | * Server IP: La IP de la máquina real. | ||
- | ==== Crear un Job ==== | + | |
+ | ===== Crear un Job ===== | ||
Vamos ahora a crear una tarea para poder ejecutar un script desde Jenkins en la máquina real. | Vamos ahora a crear una tarea para poder ejecutar un script desde Jenkins en la máquina real. | ||
- | * Pulsa en "Nueva Tarea" , escribe "Tarea de Prueba" , selecciona "Crear un proyecto de estilo libre" y luego pulsa el botón " | + | * Pulsa en "Nueva Tarea" , escribe "Desplegar" , selecciona "Crear un proyecto de estilo libre" y luego pulsa el botón " |
* Ves al apartado de " | * Ves al apartado de " | ||
- | * El el campo " | + | * El el campo " |
+ | * Pulsa el botón de " | ||
+ | * Pulsa en " | ||
- | mkdir / | ||
- | * Pulsa el botón de " | ||
- | * Pulsa en " | ||
- | * Si todo ha ido bien, en tu máquina real ahora tendrás la carpeta ''/ | ||
+ | <note tip> | ||
+ | Los Script que querremos ejecutar lo normal es que sean los siguientes: | ||
+ | |||
+ | cd /carpeta del proyecto | ||
+ | git fetch --prune | ||
+ | git checkout master | ||
+ | git merge --ff-only origin/ | ||
+ | npm run deploy | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ===== GitHub Actions ===== | ||
+ | Ahora vamos a ver con configurar Jenkins y GitHub para que al hacer un cambios en " | ||
+ | |||
+ | |||
+ | En Jenkins vamos a creara un Token (Es como una contraseña del usuario) | ||
+ | * Pulsa en nuestro nombre de usuario en la parte superior derecha. | ||
+ | * En el menu lateral, ves a " | ||
+ | * Pulsa en el botón de "Add new Token" y en el botón " | ||
+ | * Copia en algún lugar seguro el Token generado | ||
+ | * Pulsa en el botón " | ||
+ | |||
+ | Ves al Job y en " | ||
+ | * Ves al apartado " | ||
+ | * Marca la opción " | ||
+ | * Escribe el Token que habías generado antes. | ||
+ | |||
+ | En el código fuente del proyecto , añade el fichero '' | ||
+ | |||
+ | <sxh yml> | ||
+ | name: deploy | ||
+ | on: | ||
+ | push: | ||
+ | branches: | ||
+ | - main | ||
+ | jobs: | ||
+ | build: | ||
+ | name: desplegar | ||
+ | runs-on: ubuntu-latest | ||
+ | steps: | ||
+ | - name: trigger single Job | ||
+ | uses: appleboy/ | ||
+ | with: | ||
+ | url: "URL del servidor de Jenkins" | ||
+ | user: " | ||
+ | token: "El Token que has generado antes" | ||
+ | job: " | ||
+ | </ | ||
+ | |||
+ | Ahora al hacer cualquier cambio en la rama '' | ||
+ | ===== Ejercicios ===== | ||
+ | |||
+ | ==== Ejercicio 1 ==== | ||
+ | Ahora vamos a automatizar la ejecución del Script anterior usando Jenkins | ||
+ | |||
+ | * Crea un nuevo contenedor de Jenkins de forma que la carpeta ''/ | ||
+ | * Instala Jenkins | ||
+ | * Instala el plugin de SSH2 Easy sabiendo que la IP es la de la máquina real de Linux de Francia. La contraseña es la misma que la del usuario '' | ||
+ | * Crea un Job llamado '' | ||
+ | |||
+ | cd / | ||
+ | git fetch --prune --force | ||
+ | git checkout master | ||
+ | git merge --ff-only origin/ | ||
+ | npm run deploy | ||
+ | |||
+ | Ahora haz un cambio en el SASS en master , súbelos a GitHub y ejecuta el Job de Jenkins.Prueba a navegar a < | ||
+ | Ahora haz un cambio en el HTML en master , súbelos a GitHub y ejecuta el Job de Jenkins.Prueba a navegar a < | ||
+ | |||
+ | ==== Ejercicio 2 ==== | ||
+ | Ahora vamos a automatizar todo el proceso de despliegue de forma que cuando haya un cambio en master que se despliegue automáticamente el código. | ||
+ | |||
+ | |||
+ | ==== Ejercicio 3 ==== | ||
+ | Mira lo que son en GitHub los " | ||
+ | |||
+ | Ahora modifica el fichero '' | ||