🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# gitlab部署和使用 [TOC] ## 一、部署 ### 1. 简介 gitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。可通过Web界面进行访问公开的或者私人项目。 它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。 团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。 ### 2. 安装 由于gitlab自带服务较多,因此建议使用全新服务器进行安装,生产环境内存4G起 1) 站点 官网: https://about.gitlab.com/ 国内镜像站:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum 2) 安装依赖和软件 安装依赖 ```sh yum install curl policycoreutils openssh-server openssh-clients policycoreutils-python ``` 上传gitlab压缩包并用rpm安装 ```sh ls /server/tools/gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm /server/tools/gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm rpm -ivh gitlab-ce-10.7.0-ce.0.el7.x86_64.rpm ``` 3) 修改配置文件 修改配置文件中的url部分,使用本机IP地址.命令和结果如下 ```sh sed -i '/^external_url/ s#http.*com#http://10.0.0.131#g' /etc/gitlab/gitlab.rb cat /etc/gitlab/gitlab.rb|grep "^external_url" external_url 'http://10.0.0.13' ``` 4) 初始化 ```sh gitlab-ctl reconfigure gitlab-ctl start ``` > 每次修改了配置文件后,都要用gitlab-ctl reconfigure命令激活配置 > 初始化完成后,可以通过浏览器进行访问了,默认是80端口 > > ### 3. gitlab常用命令 ```sh gitlab-ctl start 启动全部服务 gitlab-ctl restart 重启全部服务 gitlab-ctl stop 停止全部服务 gitlab-ctl reconfigure 使配置文件生效 gitlab-ctl show-config 验证配置文件 gitlab-ctl uninstall 删除gitlab(保留数据) gitlab-ctl cleanse 删除所有数据,从新开始 gitlab-ctl tail <service name> 查看服务的日志 ``` ## 二、gitlab基础操作 ### 1. 基础配置 1) 取消自动注册功能 在管理员配置中,点击最下面的settings,然后找到图上所指位置,取消掉自动注册功能 ![mark](http://noah-pic.oss-cn-chengdu.aliyuncs.com/pic/20200308/183927200.png) 2) 添加ssh-key 当需要gitlab和其他服务器做免秘钥认证的时候,就需要在gitlab中添加ssh私钥 ![mark](http://noah-pic.oss-cn-chengdu.aliyuncs.com/pic/20200308/183936827.png) 3) 创建group 略 4) 创建用户 略 5) 用户授权 略 ### 2. 创建项目 1) 创建空项目 在首页点击创建项目,输入如下信息创建一个项目 ![mark](http://noah-pic.oss-cn-chengdu.aliyuncs.com/pic/20200308/183950444.png) 2) 导入公有库项目 ![mark](http://noah-pic.oss-cn-chengdu.aliyuncs.com/pic/20200308/183959603.png) 3) 与git联动 项目创建好以后,会提示你git命令行操作方式,如下 Command line instructions ```sh Git global setup git config --global user.name "Administrator" git config --global user.email "admin@example.com" ``` Create a new repository ```sh git clone git@10.0.0.13:root/test-job.git cd test-job touch README.md git add README.md git commit -m "add README" git push -u origin master ``` Existing folder ```sh cd existing_folder git init git remote add origin git@10.0.0.13:root/test-job.git git add . git commit -m "Initial commit" git push -u origin master ``` Existing Git repository ```sh cd existing_repo git remote rename origin old-origin git remote add origin git@10.0.0.13:root/test-job.git git push -u origin --all git push -u origin --tags ``` ## 三、目录和备份 ### 1. 目录 ```sh /var/opt/gitlab/git-data/repositories: 库默认存储目录 /opt/gitlab: 应用代码和相应的依赖程序 /var/opt/gitlab: reconfigure命令编译后的应用数据和配置文件,不需要人为修改 /etc/gitlab: 配置文件目录 /var/log/gitlab: 此目录下存放了gitlab各个组件产生的日志 /var/opt/gitlab/backups/: 备份文件生成的目录 ``` ### 2. 配置变更 1. 修改配置文件 2. `gitlab-ctl reconfigure` 重置配置文件 3. `gitlab-ctl show-config` 验证配置文件 4. `gitlab-ctl restart` 重启gitlab服务 ### 3. gitlab备份管理 1) 在配置文件中加入如下内容 ```sh cat >>/etc/gitlab/gitlab.rb <<'EOF' gitlab_rails['backup_path'] = '/data/backup/gitlab' gitlab_rails['backup_keep_time'] = 604800 EOF ``` 2) 如果自定义备份目录需要赋予git权限 ```sh mkdir /data/backup/gitlab chown -R git.git /data/backup/gitlab /usr/bin/gitlab-rake gitlab:backup:create #执行备份 ``` 3) 定时任务Crontab中加入 ```sh 0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create ``` ### 4. GITLAB数据恢复 如果要恢复gitlab数据库,需要先停止数据写入服务,在进行恢复操作 ```sh gitlab-ctl stop unicorn gitlab-ctl stop sidekiq gitlab-rake gitlab:backup:restore BACKUP=1512811475_2017_12_09_10.2.2 gitlab-ctl restart ``` 注意:要恢复的文件,存放在前面定义的备份目录中,但恢复时不需要写全路径,也不需要写全名,只需要向上面一样写出备份日期的相关特征即可