jenkins持续部署

安装Jenkins

安装执行如下命令,参考

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins

启动

service jenkins restart

 配置

权限问题,设置root启动 如果使用ssh部署,可以不需要root权限

修改/etc/sysconfig/jenkins文件中,

# user id to be invoked as (otherwise will run as root; not wise!)
JENKINS_USER="root"
JENKINS_GROUP="root"

#内存占用问题 /etc/sysconfig/jenkins 添加配置
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xms256m -Xmx512m -XX:MaxNewSize=256m"

重启Jenkins

service jenkins restart

如果需要远程执行ssh命令,安装 SSH plugin 然后进入系统全局设置 => remote ssh

权限设置

如果远程触发出现403 在安全设置 取消 防止跨站点请求伪造

允许匿名触发构建需要设置权限(Configure Global Security) 授权策略=>安全矩阵 管理员给 Overall 权限 匿名用户给Overall read权限和 job read权限,  此处注意先添加管理员并给所有权限,不然会导致无法登录, 设置完成后匿名用户可以触发,但是也能查看到触发结果


或者使用登录用户权限触发

curl -s -u userxxx:password -X POST http://10.0.32.10:8080/job/wft-test/build?token=123456
http://blog.sctux.com/?p=549

 

#部署代码:

CODE_PATH=/work/backup/code/www.test.com
WWW_PATH=/work/www/www.test.com
\cp -rf ${CODE_PATH}/$(($BUILD_NUMBER-1)) ${CODE_PATH}/${BUILD_NUMBER}
\cp -rf ${WORKSPACE}/* ${CODE_PATH}/${BUILD_NUMBER}/
chown www:www ${CODE_PATH}/${BUILD_NUMBER} -R
ln -sfn ${CODE_PATH}/${BUILD_NUMBER} ${WWW_PATH}


#回滚
http://www.itdadao.com/articles/c15a556417p0.html

url="${VersionName}"
last_id=0;
url=${url//\// }
for element in $url
do
last_id=$element
done
CODE_PATH=/work/backup/code/www.test.com/${last_id}
WWW_PATH=/work/www/www.test.com
if [ ! -d "${CODE_PATH}" ]; then
exit 1
fi
ln -sfn ${CODE_PATH} ${WWW_PATH}

#处理只保留指定个数的版本 删除 job-N 的目录

 

build 邮件通知
http://blog.csdn.net/songjiaping/article/details/51496977
nginx 缓存路径问题处理
把 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
改成 fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;