您的位置:首页 > 其它

使用Jenkins+Rsync+Git+LDAP部署WEB应用

2016-09-06 16:25 513 查看
        用途说明:

                Jenkins:持续集成工具。

                Rysnc:远程数据同步工具。

                Git:版本管理工具。

                LDAP:轻量目录访问协议,可以用来做轻量级数据库,一般用来存储、管理员工信息。

        Jenkins安装与配置,可以见这一系列的前两篇文章。

        Rsync安装与配置。

        安装:查看服务器是否已安装Rysnc,rpm -qa | grep rsync,一般情况,都已安装,会返回“rsync-3.0.6-12.el6.x86_64”。若没有安装,去官网下载安装

wget https://download.samba.org/pub/rsync/rsync-3.1.2.tar.gz tar xf rsync-3.1.2.tar.gz
cd rsync-3.1.2
./configure --prefix=/usr/local/rsync
make
make install


        配置:

vim /etc/rsyncd.conf

# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help

# GLOBAL OPTIONS 目录权限,这里是WEB应用,nginx的所属用户和组都为www
uid = www
gid = www

use chroot = no

read only = yes

#limit access to private LANs
hosts allow=192.168.1.1,192.168.1.2
hosts deny=*
max connections = 5

pid file = /var/run/rsyncd.pid

secrets file = /etc/rsyncd/rsyncd.secrets
#lock file = /var/run/rsync.lock

motd file = /etc/rsyncd/rsyncd.motd

#This will give you a separate log file
log file = /var/log/rsync.log

#This will log every file transferred - up to 85,000+ per user, per sync
transfer logging = yes

log format = %t %a %m %f %b
syslog facility = local3
timeout = 300

# MODULE OPTIONS
[test]
path = /www/web/test/
read only = no
list=yes
ignore errors
exclude = important/

        在项目里,增加构建步骤里选择“Excute Shell”

if [  -n $GIT_VERSION ];then
cd $WORKSPACE
git reset --hard $GIT_VERSION
echo "指定版本:"$GIT_VERSION
fi

WEB_SERVER_IP=192.168.1.1

rsync -arqz --delete $WORKSPACE/ $WEB_SERVER_IP::test --exclude ".git"

        这里得注意下,比如test上级目录为web,那么web目录的所属用户和组得为www和www,否则同步时会报“rsync: failed to set times on “directory” Operation not permitted (1)”。

        服务器和客户端安装都一样,配置稍有不同,客服端的“host allow”需要填写容许访问的服务器ip,也就是rsync服务器的ip。启动“rsync --daemon --config=/etc/rsyncd.conf”,查看“netstat -tunlp | grep 873”,默认情况下rsync占用的是873端口。

        还可以以xinetd方式启动,安装xinetd,“yum -y install xinetd”,配置rsync为启动,把“/etc/xinetd.d/rsync”里面的disable右侧的yes改为no,启动xinetd,“service xinetd start”,在看看“netstat -tunlp | grep 873”,发现rsync已经启动。

        Git,这个和Jenkins一样,只需在服务器安装即可,可以在Jenkins里已插件形式的或是直接下载Git,再到“系统管理-系统设置”页面,找到Git设置项,在“Path to Git executable”填写Git的地址



        这里可以再安装个Git Parameter Plug-In插件,此插件可以实现代码回滚。点击项目-配置





        效果如下



        LDAP,这项设置是选填的,如果公司有,则接入,没有可以不选。在“系统管理-Configure Global Security”,找到“访问控制-安全域”,选择LDAP,如果找不到则需要到“系统管理-插件管理”,在可选插件里找到“LDAP Plugin”勾选并下载,其中服务器IP、root DN、Manger DN、管理密码,需要找相关部门获取。



        权限管理策略,可以选择“Role-based Authorization Strategy”,Manage and Assign Roles需要在插件管理里下载。下载完成后,在“系统管理-Configure Global Security”,找到“访问控制-授权策略”,选择Role-Based Strategy。保存后,再到系统管理页面中找到“Manage and Assign Roles”,点进去





        其中“Manage and Assign Roles”是管理全局权限和项目权限的,“Assign Role”是管理用户全局权限和用户项目权限的。要强调的是,用户一定得先属于全局权限,然后再属于项目权限,否则用户登录后,压根啥也干不了,比如,建了个develop全局权限的,配置好了权限,但用户没有属于该权限,那么用户登录后,会发现页面上提示“没有Overall/Read权限”。





        这里得注意一下,如果在“Configure Global Security-授权策略”里选择了“Role-Based Strategy”之后,立马退出了,然后用LDAP里的用户登录,那么会提示“没有Overall/Read权限”,并且然来的admin用户也登录不进去了,因为这时走的LDAP登录流程。到这里了,别慌,去Jenkins目录,找到config.xml,把“authorizationStrategy”和“securityRealm”节点的数据都删除,再重新走遍上述的权限设置流程。权限设置这里,得把Anoymous(匿名)用户给去掉,否则匿名用户也可以看到相关的页面了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: