¡Esta es una revisión vieja del documento!
Jenkins es lo que se llama un "Servidor de automatización".
Hay abundante documentación sobre él , en los siguientes enlaces:
Aunque Jenkins pueda parecer sencillo o superfluo, usar Jenkins es el camino para hacer software de calidad.:
En ejercicios de temas anteriores hemos visto como instalar Jenkins.Ahora vamos a ejecutar un Script desde Jenkins en la máquina real.
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" en la máquina real y para ello necesitamos ser root.
Para permitirlo hay que lanzar las siguientes órdenes:
sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config sudo systemctl restart ssh.service
Despues habrá que cambiar la contraseña a root con la siguiente orden:
sudo passwd root
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.
Vamos ahora a crear una tarea para poder ejecutar un script desde Jenkins en la máquina real.
http://jenkinslorenzo.daw2.pve2.fpmislata.com/job/Desplegar/build?token=53453453453453acd353453efa34534554
cd /carpeta del proyecto git fetch --prune git checkout master git merge --ff-only origin/master npm run deploy
Ahora vamos a ver con configurar Jenkins y GitHub para que al hacer un cambios en "main" se ejecute el Job que despliega la aplicación.
En Jenkins vamos a creara un API Token (Es como una contraseña del usuario)
Ves al Job y en "configurar"
En el código fuente del proyecto , añade el fichero .github/workflows/main.yml
con el siguiente contenido:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
name: deploy on: push: branches: - main jobs: build: name: desplegar runs-on: ubuntu-latest steps: - name : trigger single Job uses: appleboy/jenkins-action@master with: url: "URL del servidor de Jenkins" user: "system_builder" token: "La API KEY que has generado antes" job: "Desplegar" |
Ahora vamos a automatizar la ejecución del Script anterior usando Jenkins
/var/jenkins_home
se almacene dentro de /opt/tuNombre/docker/jenkins
alumno
.Desplegar
que ejecute lo siguiente en la máquina realcd /opt/tuNombre/ejemplodaw git fetch --prune --force git checkout master git merge --ff-only origin/master 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 http://tuNombre.daw2.pve2.fpmislata.com y se verán los cambios. Ahora haz un cambio en el HTML en master , súbelos a GitHub y ejecuta el Job de Jenkins.Prueba a navegar a http://tuNombre.daw2.pve2.fpmislata.com y se verán los cambios.
Lo último que vamos a hacer para automatizar todo el proceso de despliegue es hacer que cuando haya un cambio en master que se despliegue automáticamente el código.
Para hacerlo deberás: