gitlab 入门(二)—— gitlab文档目录

参照第一篇文章,安装好 gitlab 之后,接下来应该做点什么呢?感觉还是从看文档开始,更全面地了解gitlab。

所以这一篇看看官方文档https://docs.gitlab.com/ce/README.html里面都有些什么内容。

最受欢迎的文章

基本的用户操作,用过github的人应该都熟悉了。就略过去了,只看管理员文档。

管理员文档

安装,更新,升级,迁移

用户权限

特性

集成

监控

性能

定制

管理工具

故障排查

参考资料


gitlab 入门(一)—— 安装

这一篇讲 GitLab 的安装,可以参照官方文档查看,可能要注意一下时效性。https://docs.gitlab.com/ee/install/README.html

其他 Gitlab 文档的相关文章可以看这里 —— 《gitlab 入门》

安装要求

1. 系统要求

* 仅支持以下系统:

	*   Ubuntu
	*   Debian
	*   CentOS
	*   Red Hat Enterprise Linux (please use the CentOS packages and instructions)
	*   Scientific Linux (please use the CentOS packages and instructions)
	*   Oracle Linux (please use the CentOS packages and instructions)

* 不支持以下系统:

	*   Arch Linux
	*   Fedora
	*   FreeBSD
	*   Gentoo
	*   macOS
	*   Windows

2. ruby版本

* Ruby (MRI) 2.3

3. 存储

* 越大越好
* 支持NFS
* 7200 RPM 以上的机械硬盘或固态硬盘,可以明显提升性能。

4. CPU

*   1 core supports up to 100 users。但是会明显变慢。
*   **2 cores** is the **recommended** number of cores and supports up to 500 users
*   4 cores supports up to 2,000 users
*   8 cores supports up to 5,000 users
*   16 cores supports up to 10,000 users
*   32 cores supports up to 20,000 users
*   64 cores supports up to 40,000 user

5. 内存

*   **4GB RAM** is the **recommended** memory size for all installations and supports up to 100 users
*   8GB RAM supports up to 1,000 users
*   16GB RAM supports up to 2,000 users
*   32GB RAM supports up to 4,000 users
*   64GB RAM supports up to 8,000 users
*   128GB RAM supports up to 16,000 users
*   256GB RAM supports up to 32,000 users

即使服务器的内存已经够大,也推荐至少要包含2G的交换空间。这样可以有效降低进行内存进行更改时发生错误的概率。

6. 数据库

*  至少要包含5-10G的数据库空间。
*  PostgreSQL (强烈建议)
* MySQL/MariaDB (强烈不建议,因为他们不支持Gitlab的一些特性)
	*  Gitlab 9.3 版本后不支持 subgroups 特性。[issue #30472](https://gitlab.com/gitlab-org/gitlab-ce/issues/30472) 
	*  不支持 GitLab Geo
	*  不支持 Zero downtime migrations
	*  不支持负载均衡
	*  不支持dashboard events(使用 PostgreSQL LATERAL JOINs 实现的)
	*  不支持 SQL 的某些优化
	*  期待还有更多信息添加进来(ps: 总之我们就是不喜欢Oracle统治下的MySQL,Oracle 去shi)

7. PostgreSQL

* GitLab 10.0 后只支持 PostgreSQL 9.6,所以更低版本就不要用了。
* `pg_trgm`插件一定要在每一个GitLab数据库中开启。

	```
	CREATE EXTENSION pg_trgm;
	```

某些系统里你可能还要安装一些额外包 (e.g. `postgresql-contrib`) 才能使`pg_trgm`插件生效。

8. Unicorn Workers

背景: Unicorn 用来实现并发的一个东西。

* 推荐使用内核个数+1个unicorn workers.
* 推荐 2GB或更高的内存下最少也使用3个 unicorn workers

9. Redis 和 Sidekiq

背景: _Sidekiq _是一个多线程的后台任务处理系统。

*  Redis存储所有用户会话和后台任务队列。
*  每个用户大约占用 25kB redis存储。
*  Sidekiq 进程初始占用 200M+的内存,动态增加,在非常活跃的机器(10,000活跃用户)上占用大概1G内存。

10. Prometheus

在 Omnibus GitLab 9.0 后默认开启了 Prometheus。默认配置大概消耗200M内存。

11. GitLab Runner

*  强烈建议不要在 GitLab 机器上部署GitLab Runner。因为我们要实现 CI 的一些机制原因,Gitlab Runner会很吃内存,所以不要在同一台机器上部署两个应用。
*  也建议不要在同一台机器上部署几个GitLab Runner应用。同样是因为内存的原因。另外这个也不符合系统避免单点故障的安全要求。
*  所以,如果你需要使用 GitLab Runner 的 CI 功能,请把他们独立部署在单独的机器上。

12. 浏览器支持

支持下列浏览器的最新和主流版本:

*  Firefox
*  Chrome/Chromium
*  Safari 
*  Microsoft Edge
*  Internet Explorer 11

安装

安装前请看后文的安装要求

鉴于目前容器化是一个越来越快的趋势,我就直接从容器化 docker 开始安装使用。其他安装方式我就不看了。

使用 Docker 安装

https://docs.gitlab.com/omnibus/docker/README.html

如何使用 Docker 不在本篇的介绍范围,下面直接说过程:

docker pull gitlab/gitlab-ce:latest

sudo docker run --detach \
    --hostname gitlab.example.com \
    --publish 443:443 --publish 80:80 --publish 22:22 \
    --name gitlab \
    --restart always \
    --volume /srv/gitlab/config:/etc/gitlab \
    --volume /srv/gitlab/logs:/var/log/gitlab \
    --volume /srv/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce:latest

我预计大概率会报冲突:

docker: Error response from daemon: driver failed programming external connectivity on endpoint gitlab (4a9645ff2d304610abefa6c4d7138c8f0b228122157b9e318648e2f585ccdc41): Error starting userland proxy: listen tcp 0.0.0.0:22: bind: address already in use.

这是ssh默认端口冲突了。练手阶段可以把 22:22 去掉。副作用就是不能用 ssh 的方式clone项目了,只能走 https 协议。

以上步骤后,gitlab就完整跑起来了。

默认用户名是root,密码会在登陆这个界面的时候自动输入。另外我还在用本地host 做了一个映射,所以你能看到我访问的网址是 http://gitlab.example.com/

参考资料


gitlab 入门

介绍

GitLab 是一个使用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,使用PostgreSQL或MySQL数据库,Redis做缓存。一般自己搭建私有代码仓库,Gitlab通常是首选。

提供了:

  1. 代码托管服务
  2. 访问权限控制
  3. 问题跟踪,bug的记录、跟踪和讨论
  4. Wiki,项目中一些相关的说明和文档
  5. 代码审查,可以查看、评论代码

它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

开源中国代码托管平台git.oschina.net就是基于GitLab项目搭建。

下面是我在安装时的一些过程输出文档。

参考资料


高可用 入门

这篇记录一些高可用的资料。

有时间再完善一下。

参考资料


Rancher安装手册

这几天在搭建 Rancher 环境。

Rancher 是以在生产环境中运行容器为目标而构建的开源软件平台。随着 Docker 容器这种类型的应用工作负载的逐渐流行,它催生了很多与之相应的基础架构服务,如网络服务、存储服务、负载均衡,安全,服务发现和资源管理。

官方网站: https://rancher.com/

官方文档在此: http://rancher.com/docs/rancher/latest/en/

dockerinfo对其中的部分章节做了翻译http://www.dockerinfo.net/rancher/page/5

今天这篇就是dockerinfo其中的一篇翻译,我做了点无关痛痒的增删。需要学习的朋友可以两边都对照着看,又达到比较快的速度,也可以达到深入理解的层次。

准备 Linux 主机

先安装一个64位的 Ubuntu 14.04 Linux 主机,其内核必须高于 3.10 。或者其它同等的 Linux 发行版。你可以使用一台笔记本、一个虚拟机或者一台物理的服务器。请确保目标安装 Linux 主机的内存至少1GB。

然后安装 Docker 在这个 Linux 主机上, 可以参考 Docker安装说明。

启动 Rancher 服务器

启动 Rancher 服务器所需要做的动作就只有一条命令。在启动了这个容器之后,我们将能查看到这个运行中的服务器的日志。

$ sudo docker run -d --restart=always -p 8080:8080 rancher/server
# 显示 Rancher 服务器的容器 ID,替换containerid
$ sudo docker ps
# 显示并查看 Rancher 服务器的日志
$ sudo docker logs -f containerid

修改语言

启动 Rancher 服务器可能需要花几分钟时间。这取决于您下载 Rancher Server镜像的速度。当日志中显示 “…. Startup Succeeded, Listening on port…” 以后,Rancher UI 图形界面现在就能正常访问了。


一个简单的局域网服务器互联案例(3.5) —— 使用说明

接上篇。这是一篇使用手册。

经过前三篇文章的操作后,已经可以将环境交付给开发人员使用了。这是一篇简单的使用说明。分为管理员篇和开发人员篇。

管理员

所有的操作统一在100机器上进行。

添加用户

例如我们需要添加以为名叫keluTest的用户,使用

./addUser.sh keluTest

即可在4台机器上生成该用户,初始密码是Qweewq,密钥所在位置为 /home/keluTest/.ssh/keluTest

删除用户

./delUser.sh keluTest

即可在四台机器上同步删除用户。

开发人员

使用管理员提供的密钥和密码进行登陆,例如开发人员为keluTest,登陆方式为

ssh keluTest@10.37.231.228:10100
ssh keluTest@10.37.231.228:10101
ssh keluTest@10.37.231.228:10102
ssh keluTest@10.37.231.228:10103

在开发机上简单使用

ssh 100
ssh 101
ssh 102
ssh 103

即可访问。

本地Windows上使用putty或其它工具登陆。其它工具可以直接使用密钥登陆,putty需要生成自用密钥,生成方式参照这篇文章:《一个简单的局域网服务器互联案例 1》putty大概如下图配置即可: