Skip to content

Latest commit

 

History

History
244 lines (198 loc) · 10.7 KB

Gitlab-Install-And-Settings.md

File metadata and controls

244 lines (198 loc) · 10.7 KB

Gitlab 安装和配置

Docker Compose 安装方式

  • 创建宿主机挂载目录:mkdir -p /data/docker/gitlab/gitlab /data/docker/gitlab/redis /data/docker/gitlab/postgresql
  • 赋权(避免挂载的时候,一些程序需要容器中的用户的特定权限使用):chown -R 777 /data/docker/gitlab/gitlab /data/docker/gitlab/redis /data/docker/gitlab/postgresql
  • 这里使用 docker-compose 的启动方式,所以需要创建 docker-compose.yml 文件:
gitlab:
  image: sameersbn/gitlab:10.4.2-1
  ports:
    - "10022:22"
    - "10080:80"
  links:
    - gitlab-redis:redisio
    - gitlab-postgresql:postgresql
  environment:
    - GITLAB_PORT=80
    - GITLAB_SSH_PORT=22
    - GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string
    - GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string
    - GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string
  volumes:
    - /data/docker/gitlab/gitlab:/home/git/data
  restart: always
gitlab-redis:
  image: sameersbn/redis
  volumes:
    - /data/docker/gitlab/redis:/var/lib/redis
  restart: always
gitlab-postgresql:
  image: sameersbn/postgresql:9.6-2
  environment:
    - DB_NAME=gitlabhq_production
    - DB_USER=gitlab
    - DB_PASS=password
    - DB_EXTENSION=pg_trgm
  volumes:
    - /data/docker/gitlab/postgresql:/var/lib/postgresql
  restart: always

Gitlab 高可用方案(High Availability)

原始安装方式

配置

  • 配置域名 / IP
    • 编辑配置文件:sudo vim /etc/gitlab/gitlab.rb
    • 找到 13 行左右:external_url 'http://gitlab.example.com',改为你的域名 / IP
    • 重启服务:sudo gitlab-ctl reconfigure
  • 前面的初始化配置完成之后,访问当前机子 IP:http://192.168.1.111:80
  • 默认用户是 root,并且没有密码,所以第一次访问是让你设置你的 root 密码,我设置为:gitlab123456(至少 8 位数)
  • 设置会初始化密码之后,你就需要登录了。输入设置的密码。
  • root 管理员登录之后常用的设置地址(请求地址都是 RESTful 风格很好懂,也应该不会再变了。):
  • 普通用户登录之后常去的链接:

配置 Jenkins 拉取代码权限

  • Gitlab 创建一个 Access Token:http://192.168.0.105:10080/profile/personal_access_tokens
    • 填写任意 Name 字符串
    • 勾选:API Access the authenticated user's API
    • 点击:Create personal access token,会生成一个类似格式的字符串:wt93jQzA8yu5a6pfsk3s,这个 Jenkinsfile 会用到
  • 先访问 Jenkins 插件安装页面,安装下面三个插件:http://192.168.0.105:18080/pluginManager/available
    • Gitlab:可能会直接安装不成功,如果不成功根据报错的详细信息可以看到 hpi 文件的下载地址,挂代理下载下来,然后离线安装即可
    • Gitlab Hook:用于触发 GitLab 的一些 WebHooks 来构建项目
    • Gitlab Authentication 这个插件提供了使用GitLab进行用户认证和授权的方案
  • 安装完插件后,访问 Jenkins 这个路径(Jenkins-->Credentials-->System-->Global credentials(unrestricted)-->Add Credentials)

权限

用户组的权限

  • 用户组有这几种权限的概念:Guest、Reporter、Developer、Master、Owner
  • 这个概念在设置用户组的时候会遇到,叫做:Add user(s) to the group,比如链接:http://192.168.1.111/admin/groups/组名称
行为 Guest Reporter Developer Master Owner
浏览组
编辑组
创建项目
管理组成员
移除组

项目组的权限

  • 项目组也有这几种权限的概念:Guest、Reporter、Developer、Master、Owner
    • Guest:访客
    • Reporter:报告者; 可以理解为测试员、产品经理等,一般负责提交issue等
    • Developer:开发者; 负责开发
    • Master:主人; 一般是组长,负责对Master分支进行维护
    • Owner:拥有者; 一般是项目经理
  • 这个概念在项目设置的时候会遇到,叫做:Members,比如我有一个组下的项目链接:http://192.168.1.111/组名称/项目名称/settings/members
行为 Guest Reporter Developer Master Owner
创建issue
留言评论
更新代码
下载工程
创建代码片段
创建合并请求
创建新分支
提交代码到非保护分支
强制提交到非保护分支
移除非保护分支
添加tag
创建wiki
管理issue处理者
管理labels
创建里程碑
添加项目成员
提交保护分支
使能分支保护
修改/移除tag
编辑工程
添加deploy keys
配置hooks
切换visibility level
切换工程namespace
移除工程
强制提交保护分支
移除保护分支

批量从一个项目中的成员转移到另外一个项目

限定哪些分支可以提交、可以 merge

Gitlab 的其他功能使用

创建用户

  • 地址:http://119.23.252.150:10080/admin/users/
  • 创建用户是没有填写密码的地方,默认是创建后会发送邮件给用户进行首次使用的密码设置。但是,有时候没必要这样,你可以创建好用户之后,编辑该用户就可以强制设置密码了(即使你设置了,第一次用户使用还是要让你修改密码...真是严苛)

创建群组

  • 地址:http://119.23.252.150:10080/groups
  • 群组主要有三种 Visibility Level:
    • Private(私有,内部成员才能看到),The group and its projects can only be viewed by members.
    • Internal(内部,只要能登录 Gitlab 就可以看到),The group and any internal projects can be viewed by any logged in user.
    • Public(所有人都可以看到),The group and any public projects can be viewed without any authentication.

创建项目

增加 SSH keys

使用 Gitlab 的一个开发流程 - Git flow

资料