实现代码的自动部署

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现代码的自动部署相关的知识,希望对你有一定的参考价值。

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

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

以上是关于实现代码的自动部署的主要内容,如果未能解决你的问题,请参考以下文章

如何用Jenkins实现自动化部署svn更新代码

php + Laravel 实现部署自动化

如何用Jenkins实现自动化部署svn更新代码

[原] php + Laravel 实现部署自动化

Jenkins与Gitlib实现自动化部署与持续构建

Jenkins环境搭建部署实现代码自动化发布