Gitlab
Gitlab作为一个开源项目开始帮助团队在团建开发上进行合作。通过以业界领先的步伐交付新的功能为整个软件开发和操作生命周期提供了一个单独的应用平台。Gitlab提供了管理、计划、创建、验证、打包、发布、发布、配置、监视和保护应用程序所需的一切。Gitlab是一个基于git实现的在线代码仓库托管软件,一般用于企业、学校等内部网络搭建git私服。Gitlab是一个提供代码托管、提交审核和问题跟踪的代码管理平台。Gitlab分社区版(CE)和企业版(EE)。 Svn github gitlab 配置建议CPU2核心,内存4G及以上
Git gitlab github简单区别
Git是一种基于命令的版本控制系统,全命令操作,没有可视化界面。 Gitlab 是一个基于git实现的在线代码仓库软件,提供web可视化管理界面,通常用于企业团队内部协作开发。 Github 是一个基于git实现的在线代码托管仓库,亦提供可视化管理界面,同时免费账户和提供付费账户,提供开放和私有的仓库,大部分的开源项目都选择github作为代码托管仓库。
服务组成部分
Nginx 静态web服务器 Gitlab-shell 用于处理git命令和修改authorized keys列表(ruby) Gitlab-workhorse 轻量级反向代理服务器(go) 它会处理一些大的http请求,比如文件上传、文件下载、git push/pull 和git包下载,其他请求会反向代理到gitlab rails应用,即反向代理给后端的unicorn Logtotate 日志文件管理工具 Postgresql 数据库 Redis 缓存数据库 Sidekiq 用于在后台执行队列任务(异步执行)(ruby) Unicorn 用ruby编写的一个http服务器,gitlab rails应用是托管在这个服务器上
基础环境
IP | 运行内存 |
---|---|
192.168.1.10 | 4G |
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.3.0-ce.0.el7.x86_64.rpm
修改配置文件(默认没有url)
写当前主机的域名或ip,域名的情况下需要解析
重新编译
(只要修改配置文件,必须执行)
首次访问需要设置密码
Gitlab-ctl start | stop | restart 开启、关闭、重启gitlab Gitlab-ctl start nginx 启动组件nginx也可以使用stoop…… Gitlab-ctl tail 查看gitlab的所有日志 Gitlab-ctl tail nginx 查看组件nginx的日志 Gitlab-ctl reconfigure 重新编译 修改配置后必须执行 Gitlab-rails console (production) 进入gitlab的shell
日常维护
配置报警邮件 Smpt的方式(调用自己的邮箱发送邮件)—> spring cloud
Gitlab的发件人
是否启用smtp的方式
Smtp服务器的地址
Smtp服务器的端口
发送邮件的用户名
邮箱授权码
Smtp服务器的域名
Smtp服务器的授权信息
邮箱安全加密
重新编译
进入gitlab的shell
(检测邮箱配置是否从成功)
查看邮箱
Gitlab备份和恢复
备份 Gitlab所有的数据进行备份
备份文件的存放目录
1575249416_2019_12_02_12.3.0_gitlab_backup.tar 时间戳 日期 版本 每个gitlab包备份的名字
恢复
注意:1 数据备份的时候不产生新的数据(1 服务不能工作(应用管理平台(unicorn)停止)) 2 消息队列的消息停止
在恢复之前先停止
恢复
组件开启
Root用户忘记密码
进入Gitlab的shell环境
切换用户
修改密码
强制保存
Web界面
添加用户
添加账户信息
Projects limit 当前用户可以创建多少个项目 个人的介绍
Avatar头像
再添加一个用户
两个用户的email不能一样 创建组
将用户添加到组,并分配角色
创建项目
空白项目
生成密钥
代码语言:javascript复制[root@localhost ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:o3iqA8smT/j7NDxiJBRGM9uJEsc0X1Pf9IXJ9XkFryE root@localhost.localdomain
The key's randomart image is:
---[RSA 2048]----
|oO o.. ...= |
|.oOo.. . . o . o |
|. o. . E o. |
|o . o.|
|. . S . |
|. . . . . |
|oo * o |
|o*.o = |
|o.==o |
----[SHA256]-----
[root@localhost ~]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOSaCz6a/EsxYdeKN9jYMH8k3tP21yervtPB2jlarGH88IUE /iKqkTgi65pRU11D56WxRMz3xPILUrU6ohHjPZJpZRbG1Tfpy0ZtYTw6U1 qrsPKYxqHyRp44K0YJnt5gZaHAVpIsC9qIfHfmwo8Looh1e8KcMIJLSu4ZzAr8OgmPML/Xrf70tfMIdcmJqiteMnYusdklr3kVCP8LGP/kEIxdtwkXVNkRgjTaEyBxZuMCneCQZHVgMXBi7Ln2R8PWsu4xOj3AIGeZHjrEU1aLd GrqEpZhlBYwUXWfbpKtycjiJlDj4VjzsP Crj7AwM ADrWsXVdUG2IQwSjkXRD root@localhost.localdomain
复制公钥
测试(公钥上传是否成功)
代码语言:javascript复制[root@localhost ~]# ssh -T git@192.168.1.10
The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established.
ECDSA key fingerprint is SHA256:/OtoB97JsQT5QLHo0lPNYm443x1fDWgpw5XAwKmQFeo.
ECDSA key fingerprint is MD5:fe:28:b2:d3:d4:12:02:45:a7:4b:bb:55:77:ce:94:6d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.10' (ECDSA) to the list of known hosts.
Welcome to GitLab, @root!
上传测试
代码语言:javascript复制[root@localhost ~]# tar -zxf kgcweb.tar.gz
[root@localhost ~]# cd kgcweb
[root@localhost kgcweb]# git init
初始化空的 Git 版本库于 /root/kgcweb/.git/
[root@localhost kgcweb]# ls
pom.xml src
[root@localhost kgcweb]# git config --global user.name "root"
[root@localhost kgcweb]# git config --global user.email "root@kgc.cn"
[root@localhost kgcweb]# git remote add origin git@192.168.1.10:testgroup/kgcweb.git
[root@localhost kgcweb]# git add .
[root@localhost kgcweb]# git commit -m "kgcweb"
[master(根提交) 3dc6d2f] kgcweb
3 files changed, 33 insertions( )
create mode 100644 pom.xml
create mode 100644 src/main/webapp/WEB-INF/web.xml
create mode 100644 src/main/webapp/index.jsp
[root@localhost kgcweb]# git push -u origin master
Counting objects: 9, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (9/9), 984 bytes | 0 bytes/s, done.
Total 9 (delta 0), reused 0 (delta 0)
remote:
remote:
remote: The private project testgroup/kgcweb was successfully created.
remote:
remote: To configure the remote, run:
remote: git remote add origin git@192.168.1.10:testgroup/kgcweb.git
remote:
remote: To view the project, visit:
remote: http://192.168.1.10/testgroup/kgcweb
remote:
remote:
To git@192.168.1.10:testgroup/kgcweb.git
* [new branch] master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。
查看