day78 gitlab私有仓库的搭建
day78 gitlab 私有仓库的搭建
为什么要搭建gitlab仓库
# 对于中小型公司
例如 3套业务,3套系统需要的部署
1个运维 + 10台阿里云机器 + shell脚本发布 就能实现
git + 远程仓库 + shell脚本 就能实现更新发布
git + 远程仓库(gitee国内的代码仓库 , github 一样)
伪代码的思路
1. 代码的上传
开发 上传 》 公司使用的远程的仓库(gitee,github)
2. 代码的运行,启动
运维 + shell脚本
ssh 进入部署的服务器
git clone 代码仓库下载
解压下载,进入指定的仓库,设置项目运行的环境,python php Java
3. 代码的更新,重启
运维 + shell 脚本
ssh 进入目标的服务器
进入已经存在代码仓库 /www/my_code/
# 下载新的代码,更新到本地仓库源码
git pull -u origin master
最后干掉旧的进程,重启进程即可。
对于大型的公司
都是自己买的服务器,搭建自己的代码的仓库,企业内部所有的资料全都是私有的代码。
就需要运维去部署私有的仓库 gitlub 就和(github , gitee 一样的。)
Gitlab介绍
我们了解git是以个人为中心,人人都得交互数据
数据交互的方式
-
使用github或者gitee公有的代码的仓库,托管的地方谁都可以看。
-
公司内部使用gitlab私有仓库
github 和gitlab的区别 -
github国外公共的仓库不安全,国内gitee代码仓库,可能会暴露公司的代码秘密
-
自建的gitlab私有的仓库,更加的安全
-
从代码私有性来看,公司不希望员工能随意的获取全部的代码,使用gitlab是一个更好的选择,
-
若是一个开源的项目,Github是一个不错的开源平台
Gitlab 是一个开源的分布式版本控制系统,由Ruby语言开发,gitlab主要实现的功能,管理项目源代码,对源代码进行版本的控制,以及源代码的复用和查找
Gitlab优势和使用的场景
-
开源免费,简单的搭建,维护的成本较低,适合小型的公司。
-
权限的管理,实现代码对部分人可见,确保安全性
gitlab 也分社区版和商业版本
gitlab 部署的实践
yum install curl policycoreutils-python openssh-server postfix wget -y
\获取gitlab源码包
选择各种yum源去安装
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.0.3-ce.0.el7.x86_64.rpm
# 可以用2种的方法进行安装
建议使用yum安装,以便后期的统一的管理
yum localinstall gitlab-ce-12.0.3-ce.0.el7.x86_64.rpm
rpm -ivh
# 也可以在本地下载推到机器上
gitlab 基础的设置
# 配置gitlab服务,修改域名和邮箱
设置参数如下
[root@gitlab-99 ~]#grep -E '^[a-Z]' /etc/gitlab/gitlab.rb
external_url 'http://10.0.0.99'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '877348180@qq.com'
gitlab_rails['gitlab_email_display_name'] = 'linux0224'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "877348180@qq.com"
gitlab_rails['smtp_password'] = "pvthquniqpjvbbch"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
修改了gitlab的配置,务必要重新加载gitlab配置
#重新配置gitlab,首次执行会很慢
gitlab-ctl reconfigure
执行命令,测试是否可以发邮件
#执行命令是否可以发邮件即可
gitlab-rails console
执行如下命令测试发邮件即可
Notify.test_email('18985844336@163.com','美好的一天','hello linux0224').deliver_now

确定可以发送邮件后,就可以使用gitlab图形化的配置了
gitlab 命令的管理
gitlab-ctl start 启动所有的服务
gitlab-ctl stop 停止所有的服务
gitlab-ctl restart
gitlab-ctl status
gitlab-ctl reconfigure 重新读取配置
gitlab-ctl tail 查看服务运行的状态
gitlab-ctl tail redis 只看某个服务的状态
检查gitlab的nginx状态
[root@web-9 ~]# netstat -tunlp | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6818/nginx: master
tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 6818/nginx: master
[root@web-9 ~]# gitlab-ctl tail nginx
==> /var/log/gitlab/nginx/current <==
==> /var/log/gitlab/nginx/error.log <==
==> /var/log/gitlab/nginx/gitlab_access.log <==
==> /var/log/gitlab/nginx/gitlab_error.log <==
==> /var/log/gitlab/nginx/access.log <==
访问gitlab ,查看日志
[root@web-9 ~]# awk -F \" '{print $2 }' /var/log/gitlab/nginx/gitlab_access.log
----用的是正则的提取
#出现问题排除错误的步骤,1,访问具体的url,查看日志加载了那些的资源,提取日志的资源的路径,状态码,判断的网页运行的状态。

默认先修改密码
然后登陆
root
yzk666linux

gitlab 关闭注册功能


gitlab 发邮件的功能

填写好以后系统就自动发送一个邮件
gitlab 用户的管理
1. 先创建一个组
Gitlab 是通过组(group)的概念来管理仓库
(project)和 用户(user) 通过创建组,在组下创建仓库,在将用户加入组。

创建halo项目,私有组内项目



创建用户的操作
chaoge 用户的管理人员
wenjie 开发者


创建好项目以后,关联用户(身份设置)
目前chaoge,wenjie用户都还是单个用户,没加入组
目的是:让chaoge,wenjie用户都能看到my_halo的项目


测试,分别用chaoge,wenjie 登录系统,分别查看项目。

看到这里配置就完事了
浙公网安备 33010602011771号