0

我正在使用 ISPConfig 为我的客户提供多个域。现在,我让 Jenkins 来部署一个特定的项目。

Jenkins 已在 /var/www/myproject/web 上分配了工作目录,它是 ISPConfig 上的 VirtualHost。

手动我必须:

chown -R jenkins:nogroup /var/www/myproject/web
> Build Jenkins project
chown -R web38:client17 /var/www/myproject/web

问题:

  • 如果我向 Jenkins 授予 sudo 权限可以吗?
  • 相反,我应该创建一个具有 sudo 权限的 bash 脚本吗?
  • 是否有任何我没有注意到的权限角色可以正确执行此操作?

谢谢

4

1 回答 1

0

这是我找到的解决方案。

在 Jenkins 上安装“批处理任务”模块。

使用 /var/www/your_domain.com/jenkins-post-build.sh 上的 root:root 权限创建如下脚本

#!/bin/bash
SOURCE=$1
TARGET=$2

echo Moving $SOURCE to $TARGET

rm -rf $TARGET
cp -R $SOURCE $TARGET
ln -s $TARGET/build $TARGET/public/build
chown -R web39:client11 $TARGET

使用“Invoke batch tastsk”添加构建后操作

sudo /var/www/your_domain.com/jenkins-post-build.sh ${WORKSPACE} /var/www/your_domain.com/web

添加此脚本对 sudo 权限

Cmnd_Alias HIPER_DEV    = /var/www/your_domain.com/jenkins-post-build.sh
jenkins ALL=(ALL) NOPASSWD:HIPER_DEV
于 2013-05-15T21:30:41.280 回答