Git服务器搭建及自动化部署

8 篇文章 0 订阅

Git 简单易用,为了方便自己,满足好奇心,我学习了下如何搭建git服务器并实现自动化部署,在这里将自己遇到的坑跟大家分享一下。

系统说明

· 服务器: 阿里云 ECS 服务器

· 操作系统: CentOS 7.2 64

· 操作说明:熟悉 linux 基本操作—— yum 安装,vim 编辑,chown 权限设置等.

搭建步骤

1. 

在服务器上安装 git

2. 

yum install git

3. 

注:如果权限不够,可加 sudo.

4. 

5. 

添加 git 用户

6. 

此处 git用户是指系统中的 git应用程序,而不是项目的组员。可执行命令:

7. 

sudo adduser git

8. 

也可添加用户密码

9. 

sudo passwd git

10. 

11. 

禁止 shell 登录

12. 

vim 打开 /etc/passwd 目录,修改

13. 

git:x:1000:1000::/home/git:/usr/bin/bash

14. 

改成

15. 

git:x:1000:1000::/home/git:/usr/bin/git-shell

16. 

说明:出于安全考虑,我们需要禁止他人登录shell,但我们的组员仍可通过ssh 正常使用git.

17. 

18. 

初始化 git 远程仓库

19. 

在你服务器上创建一个 git 远程仓库并初始化:

20. 

git init --bare test.git

21. 

例如,选择 /usr/src/app 文件夹 ,初始化创建仓库 test.git,结果如下:

22. 

23. 

修改远程仓库用户所有权
由于初始化创建的时候,文件所有权归属当前用户(如下图,我当前使用的是 root),为了是 git 程序有操作权限,我们将所有权改为 git 拥有.

24. 

sudo chown -R git:git test.git

25. 

结果如下:

26. 

 

27. 

28. 

添加用户 ssh 登录权限
将项目组员的 ssh 公钥依次存储到 /home/git/.ssh/authorized_keys 文件中,一行一个。如果人多的话,可以采用gitosis 进行管理,配置可参考官方文档,此处暂不作介绍。

29. 

30. 本地 clone 远程仓库
前面6步均在服务器上进行操作,这一步就可以在本地进行了,执行命令拉取代码:

git clone git@server:/usr/src/app/test.git

31. 

说明:server 是你服务器的公网 ip/usr/src/app/test.git 是上面创建的远程仓库路径.

32. 

自动化部署

git hook 会在接收到 push之后触发特定事件。我们可以利用该特性,使用 bash脚本来进行自动化部署。

1. 

创建脚本

2. 

现在我们进入 /usr/src/app/test.git 目录下的 hooks 文件夹,编辑脚本:

3. 

vim post-receive

4. 

具体内容如下:

5. 

#!/bin/sh# 删除 GIT_DIR 环境变量,避免干扰

unset GIT_DIR

# 增加生产环境项目路径环境变量

WORKPATH=/usr/share/nginx/test

# 进入生产目录

cd $WORKPATH

git add . -A && git stash

git pull origin master

 

echo 'done!!!'

6. 

说明:此处我将项目部署在 /usr/share/nginx/test 目录下,可先进入 `/usr/share/nginx 目录 clone 代码.

7. 

8. 修改权限

chown -R git:git post-receive

chmod +x post-receive

9. 

说明:chmod +x 用来增加执行权限

10. 

踩坑说明

期间遇到的坑大多是 权限 问题导致的,用 chown  chmod 修改所有权和操作权限即可。

git 在不同系统上的安装可以自行搜索,各类系统都有自己的包管理工具。


作者: 阳小猿
链接:http://www.imooc.com/article/18201
来源:慕课网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值