生产环境中版本控制和文件分发
2012-05-05 17:25
302 查看
总体如下图
svn服务器也是程序的开发测试服务器,文件分发服务器从svn服务器上拿到文件然后分发到线上各个web服务器(具体视公司服务器架构而定)。
##svn服务器的搭建##
在这里模拟开发测试环境(依据实际情况不同),测试后需要分发的文件都提交的svn服务器上,由文件分发服务器来取然后分发到各个在线服务器。yum -y install xinetd
yum -y install subversion
cd /etc/xinetd.d vim subversion ,添加如下内容
service svn
{
disable = no
port = 3690
socket_type = stream
protocol = tcp
wait = no
user = svn
server = /usr/bin/svnserve
server_args = -i -r /opt/svnroot
}
建立svn仓库
mkdir -p /opt/svnroot
svnadmin create /opt/svnroot/www.gaby.com
cd /opt/svnroot/www.gaby.com/confvim svnserve.conf ,修改如下内容
anon-access = none
auth-access = write
password-db = passwd
#authz-db = authz
realm = My First Repositoryps:#authz-db = authz这项不要开,不然会报认证失败错误
vim passwd ,修改如下内容
[users]
# harry = harryssecret
# sally = sallyssecret
gaby = redhat然后执行下面两条命令
chmod 400 passwd
service xinetd restart###同步分发服务器设置###yum -y install xinetd
yum -y install rsync
yum -y install subversion
cd /etc/xinetd.dvim rsync,修改内容如下service rsync
{
disable = no
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
设置rsync密码文件
vim /etc/rsyncd.pwd,添加redhat注意,rsync服务器端只需要一个密码文件,并且密码文件里不能有用户账户如果写成gaby:redhat会报如下错误(@ERROR: auth failed on module gabyhtml
rsync error: error starting client-server protocol (code 5) at main.c(1530) [sender=3.0.6]
),权限是600
service xinetd restart
分发同步脚本(可以根据实际情况,进行不同修改)wwwdir=/data0/htdocs/www/www.gaby.com
website="192.168.2.100"
[ $1 = gaby ] || exit 10
[ $2 = html ] || exit 11
if [[ $3 = -r ]];then
#回滚功能
svn up $3 $4 $svndir --username gaby --password redhat
svn export --force $svndir $wwwdir
chown -R www:www $wwwdir
chmod -R 700 $wwwdir
find /data0/htdocs/www/*gaby.com -name "Thumbs.db" -exec rm -rf {} \;
else
svn up $svndir --username gaby --password redhat
svn export --force $svndir $wwwdir
chown -R www:www $wwwdir
chmod -R 700 $wwwdir
find /data0/htdocs/www/*gaby.com -name "Thumbs.db" -exec rm -rf {} \;
fi
for I in $website;do
rsynchtml=gaby@$website::gabylinuxhtml
rsync -avz --delete --password-file=/etc/rsyncd.pwd $svndir/ $rsynchtml
echo "the sever $website is rsynced."
done注意为了使这个分发脚本正常运行,需要做下面工作website="192.168.2.65" ,有多台服务器只需要把ip添加到这里website="192.168.2.100,192.168.2.101"
把svn的内容拿的本地来/data0/htdocs/svn.www
mkdir -p /data0/htdocs/svn.www
mkdir -p /data0/htdocs/www/www.gaby.com
svn co svn://192.168.2.65/www.gaby.com --username gaby --password redhat脚本使用方法如下:更新
./upload.sh gaby html回滚
./upload.sh gaby html -r n(n表示版本号)###web上rsync客户端配置###yum -y install xinetd
yum -y install rsync
vim rsync,修改内容如下service rsync
{
disable = no
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
设置rsync配置文件和密码文件
vim /etc/rsyncd.conf 添加如下内容uid=root
gid=root
max connections=4
use chroot=no
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
#auth users=root
secrets file=/etc/rsyncd.pwd
[gabyhtml]
path=/www/www.gaby.com
#comment =
ignore errors
read only = no
list = no
auth users = gabyvim /etc/rsyncd.pwd添加如下内容gaby:redhatchmod 400 /etc/rsyncd.pwd到此一个完整的同步分发加版本控制应用实现。
本文出自 “面对自己” 博客,转载请与作者联系!
svn服务器也是程序的开发测试服务器,文件分发服务器从svn服务器上拿到文件然后分发到线上各个web服务器(具体视公司服务器架构而定)。
##svn服务器的搭建##
在这里模拟开发测试环境(依据实际情况不同),测试后需要分发的文件都提交的svn服务器上,由文件分发服务器来取然后分发到各个在线服务器。yum -y install xinetd
yum -y install subversion
cd /etc/xinetd.d vim subversion ,添加如下内容
service svn
{
disable = no
port = 3690
socket_type = stream
protocol = tcp
wait = no
user = svn
server = /usr/bin/svnserve
server_args = -i -r /opt/svnroot
}
建立svn仓库
mkdir -p /opt/svnroot
svnadmin create /opt/svnroot/www.gaby.com
cd /opt/svnroot/www.gaby.com/confvim svnserve.conf ,修改如下内容
anon-access = none
auth-access = write
password-db = passwd
#authz-db = authz
realm = My First Repositoryps:#authz-db = authz这项不要开,不然会报认证失败错误
vim passwd ,修改如下内容
[users]
# harry = harryssecret
# sally = sallyssecret
gaby = redhat然后执行下面两条命令
chmod 400 passwd
service xinetd restart###同步分发服务器设置###yum -y install xinetd
yum -y install rsync
yum -y install subversion
cd /etc/xinetd.dvim rsync,修改内容如下service rsync
{
disable = no
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
设置rsync密码文件
vim /etc/rsyncd.pwd,添加redhat注意,rsync服务器端只需要一个密码文件,并且密码文件里不能有用户账户如果写成gaby:redhat会报如下错误(@ERROR: auth failed on module gabyhtml
rsync error: error starting client-server protocol (code 5) at main.c(1530) [sender=3.0.6]
),权限是600
service xinetd restart
分发同步脚本(可以根据实际情况,进行不同修改)wwwdir=/data0/htdocs/www/www.gaby.com
website="192.168.2.100"
[ $1 = gaby ] || exit 10
[ $2 = html ] || exit 11
if [[ $3 = -r ]];then
#回滚功能
svn up $3 $4 $svndir --username gaby --password redhat
svn export --force $svndir $wwwdir
chown -R www:www $wwwdir
chmod -R 700 $wwwdir
find /data0/htdocs/www/*gaby.com -name "Thumbs.db" -exec rm -rf {} \;
else
svn up $svndir --username gaby --password redhat
svn export --force $svndir $wwwdir
chown -R www:www $wwwdir
chmod -R 700 $wwwdir
find /data0/htdocs/www/*gaby.com -name "Thumbs.db" -exec rm -rf {} \;
fi
for I in $website;do
rsynchtml=gaby@$website::gabylinuxhtml
rsync -avz --delete --password-file=/etc/rsyncd.pwd $svndir/ $rsynchtml
echo "the sever $website is rsynced."
done注意为了使这个分发脚本正常运行,需要做下面工作website="192.168.2.65" ,有多台服务器只需要把ip添加到这里website="192.168.2.100,192.168.2.101"
把svn的内容拿的本地来/data0/htdocs/svn.www
mkdir -p /data0/htdocs/svn.www
mkdir -p /data0/htdocs/www/www.gaby.com
svn co svn://192.168.2.65/www.gaby.com --username gaby --password redhat脚本使用方法如下:更新
./upload.sh gaby html回滚
./upload.sh gaby html -r n(n表示版本号)###web上rsync客户端配置###yum -y install xinetd
yum -y install rsync
vim rsync,修改内容如下service rsync
{
disable = no
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
设置rsync配置文件和密码文件
vim /etc/rsyncd.conf 添加如下内容uid=root
gid=root
max connections=4
use chroot=no
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
#auth users=root
secrets file=/etc/rsyncd.pwd
[gabyhtml]
path=/www/www.gaby.com
#comment =
ignore errors
read only = no
list = no
auth users = gabyvim /etc/rsyncd.pwd添加如下内容gaby:redhatchmod 400 /etc/rsyncd.pwd到此一个完整的同步分发加版本控制应用实现。
本文出自 “面对自己” 博客,转载请与作者联系!
相关文章推荐
- linux环境下批量删除SVN未加入版本控制的文件
- CruiseControl.NET配置文件(生产环境版本,与SVN结合自动部署)
- SVN本地开发、测试环境版本控制-自动发布生产环境
- 如何使用SSDT进行SQL数据库的自动化部署到生产环境和版本控制
- Zend Studio配置SVN版本控制开发环境—文件在不锁的时候就不能编辑
- svn中去掉对 *.csproj.user 类型文件的版本控制,怎么实现?
- 用 Subversion 构建版本控制环境
- IDEA版本控制的文件颜色
- Git 忽略一些文件不加入版本控制
- 管道符和作业控制、shell变量和环境变量配置文件
- Spring使用环境变量控制配置文件加载
- 用 Apache 和 Subversion 搭建安全的版本控制环境
- Mac下使用svnx进行版本控制,并解决无法上传.a库文件的问题
- 57.解决版本控制中 UserInterfaceState.xcuserstate 文件频繁变动
- flume配置-生产环境下从文件目录下将日志上传到s3
- JAVA_OPTS 配置开发环境、生产环境等不同环境加载配置文件
- Git 取消跟踪已版本控制的文件(亲测可行)
- Apache2.2和SVN1.4.4搭建svn版本控制平台(windows环境)
- idea 使用总结(svn版本控制修改文件颜色改变,自定义字体颜色)
- 【转】Git 忽略一些文件不加入版本控制