Git创建公共服务舱并自动同步到目标版本库

来源:互联网 发布:台湾省政府 知乎 编辑:程序博客网 时间:2024/05/17 04:03
0.安装git
1.创建一个专门用于git服务的用户名,并要有密码,如起名:git
命令:useradd git
命令:passwd git
2.切换到该用户 命令:su git
3.找一个地方生成公共服务舱
命令:cd
命令:git init --bare 舱名.git
4.现在要准备收集SSH秘钥了,让所有要使用该舱 的用户远程克隆 该舱 要求他们生成秘钥:
命令:ssh-keygen -t rsa -C “验证用的邮箱"
收集各用户 id_rsa.pub 文件中的内容
5.创建 git服务控制中枢的秘钥集控制文件( 放置于git服务用户名下 ) 路径及文件:
用命令生成: /home/git服务的用户名/.ssh/authorized_keys
在 authorized_keys 文件中 填入收集到的 id_rsa.pub 文件中的内容(每个key新起一行)
更改 .ssh 文件夹权限,命令: chmod 700 .ssh
更改 authorized_keys 文件权限,命令: chmod 640 authorized_keys
检测 authorized_keys 文件是否生效:让所有用户
使用 命令:ssh 该舱服务用户名@服务机IP 测试,如果生效将显示地址
6.如果以上步骤成功,用户们克隆不再需要密码

7.现在配置对服务器中的目标版本库自动进行同步 先在目标目录克隆出一个该服务舱对应的版本库,
重复第4,5步,将对应SSH秘钥放入 authorized_keys 文件

现在回到服务舱内的 hooks 文件夹,复制post-update.sample 文件为 post-update 文件:
命令:cp post-update.sample post-update
vim打开 post-update,保留第一行shell执行识别码,其他全部删除,写入以下操作命令

cd /目标目录版本库对应位置/
unset GIT_DIR
git checkout master
git pull

10.现在可以测试同步功能了
11.如果测试成功,可以考虑禁用该舱服务的用户名的除git-shell外的权限:
命令:vim /etc/passwd
git:x:1001:1001:,,,:/home/git:/bin/bash
改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
0 0
原创粉丝点击