4. gitlab 安装、项目创建
官网:
https://docs.gitlab.com/omnibus/maintenance/README.html#get-service-status%20
https://docs.gitlab.com/omnibus/settings/configuration.html
参考:
https://blog.51cto.com/flyfish225/2145495
https://www.cnblogs.com/rexcheny/p/9464163.html
0. 相关知识
GitLab和GitHub相同点: 二者都是基于web的Git仓库,在很大程度上GitLab是仿照GitHub来做的,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。
不同点:
1、GitHub如果要使用私有仓库,是需要付费的。GitLab可以在上面创建私人的免费仓库。
2、GitLab让开发团队对他们的代码仓库拥有更多的控制,相比于GitHub,它有不少的特色:允许免费设置仓库权限;允许用户选择分享一个project的部分代码;允许用户设置project的获取权限,进一步的提升安全性;可以设置获取到团队整体的改进进度;通过innersourcing让不在权限范围内的人访问不到该资源。
从代码私有性方面来看,有时公司并不希望员工获取到全部的代码,这个时候GitLab无疑是更好的选择。但对于开源项目而言,GitHub依然是代码托管的首选。
git相关概念:
git 是一种版本控制系统,是一个命令,是一种工具
gitlib 是用于实现git功能的开发库,私用的 。
github 是一个基于git实现的在线代码托管仓库,包含一个网站界面,向互联网开放
gitlab 是一个基于git实现的在线代码仓库托管软件,一般用于在企业内网搭建git私服. 基于ruby on rails 开发的 。
注:gitlab-ce 社区版 ;gitlab-ee是企业版,收费
硬件要求
4 核 4G
否则服务起不来。
一、 安装基础服务
yum install -y curl openssh-server openssh-clients postfix cronie policycoreutils-python
二、 开启postfix
GitLab发送邮件需要用到
sudo systemctl enable postfix
sudo systemctl start postfix
三、更新 git yum源
yum 安装
[root@localhost ~]# cat /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache
[root@localhost ~]# yum install -y gitlab-ce
rpm 安装
最新下载安装
https://packages.gitlab.com/gitlab/gitlab-ce 官方
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ 清华镜像站
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.0.3-ce.0.el7.x86_64.rpm rpm -ivh gitlab-ce-11.0.3-ce.0.el7.x86_64.rpm
安装完成
组件介绍:
gitlab 中有许多的组件。都自动安装
nginx: 静态web服务器
gitlab-shell: 用于处理git 命令 和 修改authorized 列表
gitlab-workhorse:轻量级反代服务器
logrotate: 日志文件管理工具
postgresql:数据库
redis: 缓存数据库
sidekiq: 用于在后台执行队列任务(异步执行)
unicorn:GitLab Rails 应用是托管在这个服务器上面的
目录介绍:
/var/opt/gitlab/git-data/repositories/ :库默认存储目录
/opt/gitlab: 应用代码和相应的依赖程序
/var/opt/gitlab:gitlab-ctl reconfigure命令编译后的应用数据和配置文件,不需要人为修改配置
/etc/gitlab: 配置文件目录
/var/log/gitlab:此目录下存放了gitlab各个组件产生的日志
/var/opt/gitlab/backups/:备份文件生成的目录
修改配置文件
相关配置 可以参考:
https://docs.gitlab.com/omnibus/settings/nginx.html#service-specific-nginx-settings
vim /etc/gitlab/gitlab.rb
# 初次接触,不想搞很多的话,只要改个ip就够。
external_url 'http://test.example.com' # 如果是自己测试。 如果是自己测试需要绑定host
# external_url = '192.168.134.173' # 也可以使用ip 使用ip的话需注意,中间要加个 "=" 号
## 可以不配,默认gitlab监听127.0.0.1:8080
### Advanced settings
unicorn['listen'] = '0.0.0.0' # 默认是监听127.0.0.1的。这边需要修改地址。 否则外网监听不到。
unicorn['port'] = 8082 # 修改 gitlab运行端口
再次修改/opt/gitlab/etc/gitlab.rb文件。 两边修改的监听地址和端口需一致。
vim /opt/gitlab/etc/gitlab.rb
### Advanced settings
unicorn['listen'] = '0.0.0.0'
unicorn['port'] = 8082
加载配置。重启。
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab-ctl 主控命令
启动:gitlib-ctl start
关闭:gitlab-ctl stop
重启:gitlab-ctl restart
重载配置:gitlab-ctl reconfigure
验证配置文件 :gitlab-ctl show-config
查看状态:gitlab-ctl status
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION # 查看版本
查看日志指令
# 查看所有的logs; 按 Ctrl-C 退出
sudo gitlab-ctl tail # 查看nginx 日志
gitlab-ctl tail nginx # 若要知道有什么服务组件可以查看。 可以使用 gitlab-ctl status 查看组件服务的状态。 # 查看 gitlab-rails 日志
sudo gitlab-ctl tail gitlab-rails # 拉取某个指定的日志文件
sudo gitlab-ctl tail nginx/gitlab_error.log
日志路劲
/var/log/gitlab/
/var/log/gitlab/gitlab-rails # gitlab日志 主要可以看production.log
/var/log/gitlab/nginx # nginx日志在这个下面
然后可以看到工作目录下的 配置文件 也已经进行加载了,修改了。
cat /var/opt/gitlab/gitlab-rails/etc/unicorn.rb
查看端口。 可以看到 gitlab的 8280端口起来了。 同时他会默认起一个 nginx。 作为反向代理。
然后直接访问服务器的80端口就可以了
如果有host绑域名的话。 访问域名也是可以的
登陆。默认管理员:
root
123456789
gitlab 密码初始化流程
sudo gitlab-rails console production
指令在
/opt/gitlab/bin/
进入以下界面
输入指令,进行操作
irb(main):003:0> u=User.all # 查看所有用户id
=> #<ActiveRecord::Relation [#<User id:1 @root>]>
irb(main):004:0> u=User.where(id:1).first # 切换用户,根据用户id来切换。 用户id根据
=> #<User id:1 @root>
irb(main):005:0> u.password='' # 修改用户密码
=> ""
irb(main):006:0> u.password_confirmation='' # 再次确认密码
=> ""
irb(main):007:0> u.save! # 保存, 注意 “!”
Enqueued ActionMailer::DeliveryJob (Job ID: 86ba7806-bfcf-41c2-83e1-d16e55bfdabd) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", #<GlobalID:0x00007efc7433eee8 @uri=#<URI::GID gid://gitlab/User/1>>
=> true # 出现true 就是OK的
实际操作。
添加团队
创建团队,在管理域里面。
点击团队
建立项目名称 。
授权有3种形式:
1. private : 私人项目,需要授权的用户才能访问这个组。(一般都是选这个。)
2. internet: 只需要有账号登录这个git-lab,就能访问这个组。
3. public: 公开项目。 只要能访问git-lab网页 。 都能访问这个组。
然后点击创建 。
这样组就创建成功了 。然后我们需要创建用户。来加入到这个组。
添加用户
点击 Admin Area。 New users。
然后根据提示 设置 就可以了,这三项必填。邮箱无需真实地址。
这个用户的项目限制,按照实际情况来 。
密码栏,默认没有设置。
当上面三项填完之后。 直接创建就可以了。
然后再次进到admin area。可以看到多了一个用户。 直接点进去。
然后点击edit。
就可以修改密码了。
给用户授权
就是将用户加到这个组里面
再次点开 前面 pro1这个组的界面
admin area
点击创建的组
然后我们添加用户
以及授予他角色,这边的 maintainer 就是维护这个项目的权限。相当于以前老版的master。
然后点击加入之后。我们可以看到。组里面的 团建成员有增加。
点击这边可以修改组成员的权限 。
然后继续点击就行了。
创建git库
点进去之后,选择团队。 然后给项目起名字就ok了。
项目,有继承组的授权模式。 然后点击create。
创建完成。
创建完成之后,我们可以看到一些信息。
有2中访问形式, ssh和 http的 。 访问方式是不同的 。
至此 项目创建完成。
4. gitlab 安装、项目创建的更多相关文章
- Django框架的安装,项目创建
目录 Django框架的安装,项目创建 方法安装 Django版本选择 1.11.21(最新LTS版) django管理目录 命令行创建项目 django项目 命令行启动 (必须在项目文件下执行) p ...
- Zend Framework 3.0 安装及创建初始化项目教程
前言: 最近开始接触关于PHP的框架的学习,然而PHP的框架少说也有七八种. 百度了一下,有人说ThinkPHP简单暴力的,有人说Laravel高大上的,等等等等,难以抉择. 最终我还是选择先从接触Z ...
- C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节
C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节 1.Qt概述 1.1 什么是Qt Qt是一个跨平台的C++图形用户界面应用程序框架.它为应用程序开发者提供建立艺术级图形界面 ...
- Angular安装及创建第一个项目
Angular简介 AngularJS 诞生于2009年,由Misko Hevery 等人创建,后为Google所收购.是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJ ...
- python项目入门之 安装、创建
3年前接触python,那时候还是文本格式进行学习,但是由于一直没有项目实践,所以就搁浅了 今天,python如火如荼,适用于人工智能等多领域,已经成为了语言界的翘楚 python有非常多的优点,开源 ...
- 测试开发之Django——No2.Django的安装以及项目创建
开发平台:Mac Python版本:3.7 Django版本:2.0.5 一.Django的安装 1.pip安装 输入命令pip install Django==2.0.5 说明:不指定版本,则安装的 ...
- Django在Win7下安装与创建项目hello word示例
Django在Win7下的安装及创建项目hello word的例子 有关python 的django 框架安装与开发的小例子.Django在Win7下的安装及创建项目hello word.1.安装:命 ...
- Vue安装以及Vue项目创建以及Vue Devtools安装
这几天一直在学习Vue.js框架. 因为以前没有前端项目的经验,也没学过什么前端框架,所以,对于vue.js的学习有些不知所措. 在vue.js官网看教程,按照教程指点,可以不用脚手架开发,也可以搭建 ...
- angular入门一之环境安装及项目创建
angular入门一之环境安装及项目创建 1.安装node.js 下载,安装,在终端测试安装是否成功:node -v(查看nodejs版本) npm -v(查看npm版本) 下载地址:https:// ...
随机推荐
- bootrom/spl/uboot/linux逐级加载是如何实现的?
关键词:bootrom.spl.uboot.linux.mksheader.sb_header.mkimage.image_header_t等等. 首先看一个典型的bootrom->spl-&g ...
- jira问题更改项目
1.点击“问题”在问题中,筛选你要修改的问题,以下是以创建用户为搜索条件,然后点击“工具”---移动所有问题 2.选择要移动的问题,选择项目,进行移动
- ifconfig|grep eth0|awk '{print $5}' 命令详解
因需要将linx下获取某个网中的MAC地址,可以使用如下命令获取: ifconfig|grep eth0|awk '{print $5}' ifconfig: 输出linux下所有网口的信息(包括IP ...
- June 01st, 2019. Week 22nd, Saturday
It is the childlike mind that finds the kingdom. 正是你的童心帮你找到属于自己的王国. From Charles Fillmore. When we w ...
- echarts 中 参数的详讲
xAxis 属性 xAxis : [ { type : 'category',//坐标轴类型 // show:'',//是否显示 x 轴 //id:'',组件 ID.默认不指定. //gridInde ...
- typing模块
目录 一.引言 二.typing模块的作用 三.使用typing模块 四.typing常用类型 一.引言 前言:很多人在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么 ...
- java类生命周期,类的“加载,连接,初始化,使用,卸载过程”详解
“ 如果说核心类库的 API 比做数学公式的话,那么 Java 虚拟机的知识就好比公式的推导过程” 每本Java入门书籍在介绍Java这门语言的时候都会提到Java跨平台,“一次解释,到处运行的特点“ ...
- C++入门到理解阶段二基础篇(6)——C++数组
概述 C++ 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合.数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量. 数组的声明并不是声明一个个单独的变量,比如 numbe ...
- 依赖注入在 dotnet core 中实现与使用:2 使用 Extensions DependencyInjection
既然是依赖注入容器,必然会涉及到服务的注册,获取服务实例,管理作用域,服务注入这四个方面. 服务注册涉及如何将我们的定义的服务注册到容器中.这通常是实际开发中使用容器的第一步,而容器本身通常是由框架来 ...
- 使用Vuejs 开发chrome 插件的注意事项
chrome 插件的开发其实并不难,web开发者可以使用 html, css, javascript 轻松的开发实用的 chrome 插件. 一个好的 chrome 插件可以提高我们的开发效率,甚至方 ...