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