一.代码的自动化部署方法:

1.搭建svn仓库编写hooks脚本,实现自动化部署。 2.jenkins与git结合实现代码的自动化部署。 3.结合ftp和rsync以及定时任务实现代码的自动化部署。

二、SVN部署简述: [root@e /]# yum install -y subversion --> 下载 [root@e /]# cd /data/
[root@e data]# mkdir testsvn -->创建仓库 [root@e testsvn]# svnadmin create /data/testsvn
[root@e testsvn]# ls conf db format hooks locks README.txt [root@e testsvn]# cd conf/ [root@e conf]# ls authz passwd svnserve.conf [root@e conf]# vi svnserve.conf anon-access = read #匿名用户可读 auth-access = write #授权用户可写 password-db = passwd #使用哪个文件作为账号文件 authz-db = authz #使用哪个文件作为权限文件 realm = data/testsvn# 认证空间名,版本库所在目录 [root@e conf]# vi passwd lb = lb --> 添加用户 密码 [root@e conf]# vi authz
[/] -->添加权限

  • = r [root@e conf]# svnserve -d -r /data/testsvn/ 启动 [root@e conf]# netstat -luntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 0.0.0.0:3690 0.0.0.0: LISTEN 18463/svnserve
    [root@e conf]# cd ../hooks/ -->钩子脚本位置 [root@e hooks]# ls post-commit.tmpl post-revprop-change.tmpl pre-commit.tmpl pre-revprop-change.tmpl start-commit.tmpl post-lock.tmpl post-unlock.tmpl pre-lock.tmpl pre-unlock.tmpl [root@e hooks]# cp post-commit.tmpl post-commit [root@e hooks]# chmod +x post-commit [root@e hooks]# vi post-commit

#!/bin/bash . /etc/profile REPOPATH="$1" REV="$2" TRANS="$3" repo_name="testsvn" svn_url="svn://127.0.0.1:3690/" local_co_path="/data/svn_push_dir/" repo_url=$svn_url$repo_name repo_co_path=$local_co_path$repo_name /usr/bin/test -d $local_co_path || /bin/mkdir $local_co_path /usr/bin/svn --username lb --password 'lb' co $repo_url $repo_co_path --no-auth-cache remote_dir="/data/www/code/" for host in intf-01 intf-02;do /usr/bin/rsync -az --timeout=300 --exclude ".svn" --exclude "tmp" $repo_co_path"/" www@$host:/data/www/code/ done

这就是svn的简单操作,由于我不常用git我就不说这种了

三、ftp+rsync+定时任务实现代码的自动部署这里选择pureftp这个ftp工具,我习惯编译安装 1.软件包下载《比较细致》 https://blog.51cto.com/865516915/2064503 2.安装 [root@e ~]# tar zxvf lnmp1.5.tar.gz [root@e ~]# cd lnmp1.5 [root@e lnmp1.5]# ls addons.sh conf init.d License pureftpd.sh src uninstall.sh upgrade.sh ChangeLog include install.sh lnmp.conf README tools upgrade1.x-1.5.sh [root@e lnmp1.5]# ./pureftpd.sh -->编译安装 [root@e lnmp1.5]# cd /usr/local/pureftpd/ [root@e pureftpd]# ls bin etc sbin share [root@e pureftpd]# vi etc/pure-ftpd.conf -->配置文件可以修改端口 ... Bind 127.0.0.1,21 -->ip,port ... [root@e pureftpd]# service pureftpd restart 注意: iptbables要放行端口 3.使用: a、添加用户权限 ①。编译安装可以使用lnmp ftp add 添加用户和权限 [root@e pureftpd]# lnmp ftp add +-------------------------------------------+ | Manager for LNMP, Written by Licess | +-------------------------------------------+ | https://lnmp.org | +-------------------------------------------+ Enter ftp account name: lb --> 用户名 Enter password for ftp account lb: lb -->密码 Enter directory for ftp account lb: /data --> 权限 Password: Enter it again: Created FTP User: lb Sucessfully. ②。使用pure-pw命令添加 [root@e bin]# cd /usr/local/pureftpd/bin/ [root@e bin]# ls pure-pw pure-pwconvert pure-statsdecode [root@e bin]# ./pure-pw useradd lblb -u www -d /data/ Password: Enter it again: 注: lblb为用户 -u为系统中存在的用户 -d 权限 b、删除用户 ①。lnmp ftp del lb ②。./pure-pw userdel lblb c、查看用户 ①。lnmp ftp list ②。./pure-pw list 4、配合rsync rsync的安装我就不细说了,大家可以按照此篇文档进行安装 https://blog.csdn.net/u011017575/article/details/52456645 5,启动rsync之后就可以写定时任务了 客户端 #*/1 * * * * rsync -avzP --timeout=300 --password-file=/tmp/lmpasswd.txt lb@ip::data /data/www/ 2>&1 >/dev/null