Privilegios para jenkins en la carpeta de apache

Privilegios para jenkins en la carpeta de apache

Tengo un problema similar a este: Cómo copiar archivos como acción "posterior a la compilación" de Jenkins si no tengo privilegios para el directorio de destino

Estoy dispuesto a mover/copiar/rsync archivos desde el espacio de trabajo de jenkins a

/var/www/aplicación

con derechos fijados en

apache:apache

Agregué jenkins al grupo apache, pero la instancia de jenkins no puede copiar archivos a /var/www/app.

También intenté configurar los privilegios de /var/www/app en apache:jenkins pero aún así, Jenkins sigue arrojando el error: Permiso denegado u Operación no permitida.

PD: Olvidé agregar el sistema operativo centOS;)

EDITAR 1: Este es el registro de la ejecución del script jenkins:

[espacio de trabajo] $ /bin/sh -xe /tmp/hudson1379987233097some_more_numbers.sh + sh /path_to_sh_script/script.sh enviando lista de archivos incrementales

solicitud/

rsync: no se pudieron establecer permisos en "/var/www/app/application": operación no permitida (1)

Y este es el guión en sí :)

#!/bin/bash

rsync -avzh /ruta/a/jenkins/jobs/app/workspace/default/application /var/www/app;

rsync -avzh /ruta/a/jenkins/jobs/app/workspace/default/library /var/www/app;

rsync -avzh /ruta/a/jenkins/jobs/app/workspace/default/public /var/www/app;

Respuesta1

Después de una larga y fructífera discusión en los comentarios, y siguiendoeste enlaceel usuario logró solucionar el problema añadiendo

--no-perms --omit-dir-times

a las rsyncopciones.

Intentos preliminares de resolver el problema:

Supongo que si la seguridad no te preocupa durante un breve periodo de tiempo, puedes intentarlo.

chmod a+rwx /var/www/app 

y luego intente escribir en este directorio. Ten en cuenta que si hay subdirectorios debes hacerlo de forma recursiva con:

chmod --recursive a+rwx /var/www/app 

Si tiene éxito, puede comenzar a eliminar permisos gradualmente y esto le ayudará a identificar el problema.

Verifique que el usuario jenkins ya sea miembro del grupo apache con

groups apache

Respuesta2

Tuve un problema similar. Quería escribir en /var/www en localhost en Jenkins. En mi servidor, /var/www es propiedad de www-data, así que agregué jenkins al grupo www-data e hice que el grupo /var/www pudiera escribirse, pero seguía recibiendo un error de permiso denegado. Simplemente reiniciar el servicio jenkins solucionó el problema.

Respuesta3

Primero agregue su servidor Linux o Apache al servidor Jenkin con SSH con intercambio de claves ssh. Y cree un usuario en el servidor Linux/Apache con un usuario como jenkin (usuario de Unix). Porque si haces ssh para extraer/enviar archivos, jenkin usa 'jenkin' como usuario estándar.

Puede resultar útil agregar un usuario de Apache al grupo jenkin en Unix.

información relacionada