一.代碼的自動化部署方法:git
1.搭建svn倉庫編寫hooks腳本,實現自動化部署。
2.jenkins與git結合實現代碼的自動化部署。
3.結合ftp和rsync以及定時任務實現代碼的自動化部署。bash
2、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
[/] -->添加權限tcp
= 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-commitide
#!/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/
donesvn
這就是svn的簡單操做,因爲我不經常使用git我就不說這種了
3、ftp+rsync+定時任務實現代碼的自動部署這裏選擇pureftp這個ftp工具,我習慣編譯安裝
1.軟件包下載《比較細緻》
http://www.javashuo.com/article/p-rusuftwr-gv.html
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
四、配合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工具