zoukankan      html  css  js  c++  java
  • 2--GitLab详解

    官网:https://about.gitlab.com/

    Gitlab是依赖于Git的远程代码仓库,类似于GitHub、Gitee,不同的是GitHub、Gitee的公网上代码仓库, Gitlab是可以私有化部署的免费远程代码仓库
    # Gitlab是可以私有化部署的免费远程代码仓库
    # GitHub、Gitee的公网上代码仓库
    

    1.部署GitLab

    至少内存4G,否则电脑带不起来

    ce社区版 和ee 企业版区别

    CE 比 EE 要少一些服务,EE 需要购买额外服务(自己对自己写的代码,都特别自信,却很有bug,所有提出了code review)

    # 1.安装基础依赖包
    [root@gitlab gitlab]# yum install -y curl policycoreutils-python openssh-server perl  
    [root@gitlab gitlab]# yum install postfix
    
    # 关闭防火墙
    [root@gitlab gitlab]# systemctl disable --now firewalld
    
    # 关闭selinux
    [root@gitlab gitlab]# sed -i 's#enforcing#disabled#g' /etc/sysconfig/selinux
    
    # 临时关闭
    [root@gitlab gitlab]# setenforce 0
    
    # 2.下载安装包
    [root@gitlab gitlab]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.0.3-ce.0.el7.x86_64.rpm
    
    # 3.安装GitLab
    # 安装依赖包
    [root@gitlab gitlab]# yum install gitlab-ce-13.0.3-ce.0.el7.x86_64.rpm 
    
    # 4.修改配置文件
    [root@gitlab gitlab]# vim /etc/gitlab/gitlab.rb 
    external_url 'http://192.168.15.14'
    nginx['listen_port'] = 80
    #nginx['listen_https'] = 443  #如果需要https再配置端口
    # nginx['ssl_certificate'] = "/etc/gitlab/ssl/#{node['fqdn']}.crt"      生成https证书
    # nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/#{node['fqdn']}.key"       配置https证书
    
    # 5.刷新配置(默认启动)
    [root@gitlab gitlab]# gitlab-ctl reconfigure  #大c致需要几分钟
    Running handlers: # 安装代表成功
    Running handlers complete
    Chef Client finished, 542/1469 resources updated in 05 minutes 13 seconds
    gitlab Reconfigured!
    
    # 查看端口(会启动多种端口)
    [root@gitlab gitlab]# gitlab-ctl start #启动
    [root@gitlab gitlab]# netstat -lntp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    tcp        0      0 0.0.0.0:8060            0.0.0.0:*               LISTEN      2852/nginx: master  
    tcp        0      0 127.0.0.1:9121          0.0.0.0:*               LISTEN      3350/redis_exporter 
    tcp        0      0 127.0.0.1:9090          0.0.0.0:*               LISTEN      3359/prometheus     
    tcp        0      0 127.0.0.1:9187          0.0.0.0:*               LISTEN      3410/postgres_expor 
    tcp        0      0 127.0.0.1:9093          0.0.0.0:*               LISTEN      3396/alertmanager   
    tcp        0      0 127.0.0.1:9100          0.0.0.0:*               LISTEN      3343/node_exporter  
    tcp        0      0 127.0.0.1:9229          0.0.0.0:*               LISTEN      3333/gitlab-workhor 
    tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      744/rpcbind         
    tcp        0      0 127.0.0.1:9168          0.0.0.0:*               LISTEN      3348/puma 4.3.3.git 
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2852/nginx: master  
    tcp        0      0 127.0.0.1:8082          0.0.0.0:*               LISTEN      3265/sidekiq 5.2.7  
    tcp        0      0 127.0.0.1:9236          0.0.0.0:*               LISTEN      3324/gitaly         
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1133/sshd           
    tcp        0      0 127.0.0.1:3000          0.0.0.0:*               LISTEN      3417/grafana-server 
    tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1287/master         
    tcp6       0      0 :::9094                 :::*                    LISTEN      3396/alertmanager   
    tcp6       0      0 :::111                  :::*                    LISTEN      744/rpcbind         
    tcp6       0      0 ::1:9168                :::*                    LISTEN      3348/puma 4.3.3.git 
    tcp6       0      0 :::22                   :::*                    LISTEN      1133/sshd           
    tcp6       0      0 ::1:25                  :::*                    LISTEN      1287/master      
    # 查看状态
    [root@gitlab ~]# gitlab-ctl status
    run: alertmanager: (pid 1383) 1595s; run: log: (pid 1382) 1595s
    run: gitaly: (pid 1368) 1595s; run: log: (pid 1355) 1595s
    run: gitlab-exporter: (pid 1372) 1595s; run: log: (pid 1363) 1595s
    run: gitlab-workhorse: (pid 1371) 1595s; run: log: (pid 1361) 1595s
    run: grafana: (pid 1386) 1595s; run: log: (pid 1379) 1595s
    run: logrotate: (pid 1375) 1595s; run: log: (pid 1374) 1595s
    run: nginx: (pid 1373) 1595s; run: log: (pid 1352) 1595s
    run: node-exporter: (pid 1366) 1595s; run: log: (pid 1364) 1595s
    run: postgres-exporter: (pid 1381) 1595s; run: log: (pid 1380) 1595s
    run: postgresql: (pid 1369) 1595s; run: log: (pid 1356) 1595s
    run: prometheus: (pid 1385) 1595s; run: log: (pid 1378) 1595s
    run: puma: (pid 1360) 1595s; run: log: (pid 1359) 1595s
    run: redis: (pid 1370) 1595s; run: log: (pid 1358) 1595s
    run: redis-exporter: (pid 1384) 1595s; run: log: (pid 1362) 1595s
    run: sidekiq: (pid 1367) 1595s; run: log: (pid 1365) 1595s
    
    # 6.查看详细信息(客户端工具)
    [root@gitlab ~]# gitlab-ctl service-lis
    [root@gitlab ~]# gitlab-ctl 
    #停止服务
    [root@gitlab gitlab]# gitlab-ctl stop nginx
    #开启服务
    [root@gitlab gitlab]# gitlab-ctl start nginx
    # 7.IP访问
    192.168.15.100
    #修改密码 要求8位以上 用户名: root
    
    

    创建用户组、用户及项目

    2.创建用户组

    [root@k8s-m-02 data]# cd 
    [root@k8s-m-02 ~]# cd jenkins/
    [root@k8s-m-02 jenkins]# git clone git@192.168.15.14:linux-gitlab/html.git
    Cloning into 'html'...
    warning: You appear to have cloned an empty repository.
    [root@k8s-m-02 jenkins]# ll
    total 4
    drwxr-xr-x 3 root root 18 Aug 15 16:32 html
    [root@k8s-m-02 html]# echo "hello world" > index.html
    [root@k8s-m-02 html]# git add .
    [root@k8s-m-02 html]# git commit -m 'init'
    [master (root-commit) afd6361] init
     1 file changed, 1 insertion(+)
     create mode 100644 index.html
    [root@k8s-m-02 html]# git branch
    * master
    [root@k8s-m-02 html]# git push origin master
    Counting objects: 3, done.
    Writing objects: 100% (3/3), 221 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To git@192.168.15.14:linux-gitlab/html.git
     * [new branch]      master -> master
     #此时代码已上传
    

    3.创建用户

    3.给用户授权

    、添加用户有5种角色
    1.Guest:可以创建issue、发表评论,不能读写版本库 
    2.Reporter:可以克隆代码,不能提交,QA、PM 可以赋予这个权限 
    3.Developer:可以克隆代码、开发、提交、push,普通开发可以赋予这个权限 
    4.Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心开发可以赋予这个 权限 
    5.Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组组 长可以赋予这个权限
    

    可以在打开一个浏览器,可以使用user1普通用户登录

    4.创建项目

    5.添加组员至组内

    1.Guest:可以创建issue、发表评论,不能读写版本库
    2.Reporter:可以克隆代码,不能提交,QA、PM 可以赋予这个权限
    3.Developer:可以克隆代码、开发、提交、push,普通开发可以赋予这个权限
    4.Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心开发可以赋予这个 权限
    5.Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组组 长可以赋予这个权限

    6.修改权限

    7.密钥登录

    8.wiki

    9.ssh

    10.gitlab邮箱配置

    # 编辑/etc/gitlab/gitlab.rb
    
    gitlab_rails['smtp_enable']=true				# 启用邮件服务
    gitlab_rails['smtp_address']="smtp.qq.com"		# 指定发送邮件的服务
    gitlab_rails['smtp_port']=465					# 发送邮件服务的端口号,qq是456,163邮件是465/994
    gitlab_rails['smtp_user_name']="alvincy@qq.com"	# 发送邮件的邮箱
    gitlab_rails['smtp_password']="r***********dg"  # 授权码
    gitlab_rails['smtp_domain']="smtp.qq.com"		# 发送油价的邮箱
    gitlab_rails['smtp_authentication']="login"		# 登录事件
    gitlab_rails['smtp_enable_starttls_auto']=true	# 是否启用ttl
    gitlab_rails['smtp_tls']=true					# 是否启用tls(https)
    gitlab_rails['gitlab_email_from']='alvincy@qq.com'	# 发送邮件的邮箱
    gitlab_rails['gitlab_email_enabled']=true			# 是否启用发送邮件
    
    注意: smtp_user_name  和  gitlab_email_from  必须一致
    
    2、刷新配置并重启
    [root@localhost gitlab]# gitlab-ctl reconfigure
    [root@localhost gitlab]# gitlab-ctl restart
    

  • 相关阅读:
    《人月神话》读后感
    十天冲刺计划(第二次)
    日历表的事件处理和管理(刘静)
    十天冲刺计划
    结组开发项目(TD学生助手)
    电梯调度(二)
    敏捷软件开发方法综述
    对于二维数组求子数组的和的最大值
    电梯调度(一)
    FloatyFish休闲游戏 Beta正式发布
  • 原文地址:https://www.cnblogs.com/caodan01/p/15154355.html
Copyright © 2011-2022 走看看