当前位置:首页 » 云服务器 » 非root怎么搭建gitlab服务器

非root怎么搭建gitlab服务器

发布时间: 2023-01-06 21:26:04

㈠ docker快速部署gitlab代码仓库

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

GitLab由乌克兰程序员DmitriyZaporozhets和ValerySizov开发,它使用 Ruby语言 写成。后来,一部分用 Go语言 重写。截止2018年5月,该公司约有290名团队成员,以及2000多名开源贡献者。GitLab被IBM,Sony,JülichResearchCenter,NASA,Alibaba,Invincea,O’ReillyMedia,Leibniz-Rechenzentrum(LRZ),CERN,SpaceX等组织使用。

Git、Github、Gitlab的区别:

• Git

一种代码版本管理系统,可以理解为标准或者统称。

• Github

产品名称,基于git开发的代码管理系统,必须公开于互联网上的公共仓库,安全较低,私有项目需要另外付费。

• Gitlab

产品名称,基于git开发的私有代码管理系统,开源免费、可自行管理的私有仓库,安全较高。

• 其它Git

msysGit、 Gitee(码云)、Gitea、 Gogs、 GitBucket类似于Github、Gitlab

下面我们介绍如何用docker快速部署一套功能强大的gitlab-ce社区版代码仓库。

第一步、centos 7.6安装、配置IP、dns、网关等(略)

第二步、安装docker安装,参考作者前几天的文章《centos 7下安装docker》

https://www.toutiao.com/i6994343127452566054/

第三步、安装docker-compose,参考作者前几天的文章《使用docker-compose运行docker容器》

https://www.toutiao.com/i6994600889604440608/

第四步、下载gitlab-ce 13.12.10官方镜像

docker pull gitlab/gitlab-ce:13.12.10-ce.0

第五步、建立相关目录结构,配置目录权限

mkdir -p /data/gitlab/config

mkdir -p /data/gitlab/data

mkdir -p /data/gitlab/logs

第六步、建立docker-compose.yml

cd /data/gitlab && vi docker-compose.yml

docker-compose.yml具体配置和说明放本文章后面。

第七步、使用dc up -d起动容器

cd /data/gitlab && dc up -d

等待几分钟后服务初始化完成,使用宿主机IP在浏览器上进入gitlab,配置root管理员的密码。一套功能强大的gitlab代码仓库搭建完成,关于gitlab的具使用,后面会推出相关视频/文章说明。

附:docker-compose.yml

version: '3.6' #配置编排的版本

services:

gitlab:

image: gitlab/gitlab-ce:13.12.10-ce.0

TZ: 'Asia/Shanghai' #配置容器时区,不会有8小时差异

GITLAB_OMNIBUS_CONFIG: |

external_url 'http://172.18.95.158' #服务器访问地址,也可以是域名

gitlab_rails['time_zone'] = 'Asia/Shanghai' #配置gitlab服务的时区

gitlab_rails['smtp_address'] = "smtp.exmail.qq.com" #管理员邮箱smtp地址

gitlab_rails['smtp_port'] = 465 #管理员邮箱服务器端口

gitlab_rails['smtp_user_name'] = "[email protected]" #管理员邮箱地址

gitlab_rails['smtp_password'] = "ZSfS11AssBXX" #管理员邮箱密码,配置后才可以给用户发邮件等信息

gitlab_rails['smtp_domain'] = "xxxxxx.com" #管理员邮箱域名

gitlab_rails['smtp_authentication'] = "login" #管理员邮箱的验证方式为login

gitlab_rails['smtp_enable_starttls_auto'] = true #使用安全加密方式登陆管理员邮箱

gitlab_rails['smtp_tls'] = true

gitlab_rails['gitlab_email_from'] = '[email protected]' #管理员邮箱账号

gitlab_rails['gitlab_shell_ssh_port'] = 22

ports: #放开gitlab 80端口,后面我们用80端口访问gitlab

- '80:80'

volumes: #挂载配置、数据持久化、日志目录

- ./config:/etc/gitlab

- ./data:/var/opt/gitlab

- ./logs:/var/log/gitlab

㈡ 如何搭建git服务器 windows

GitLab是由Ruby语言开发的基于linux的Git服务器,是我见过的最强大的Git服务器。发现它之后,立即决定将Git服务器换成GitLab。但安装好GitLab之后面临一个问题,如何将服务器上的git项目直接导入到GitLab,之前的Git服务器是由是git+apache搭建的(详见在Linux上用Apache搭建Git服务器)。在网上发现了这篇文档——,并按之进行了操作。1)设置存放代码库的主目录vi/etc/gitlab/gitlab.rb比如这里设置为:git_data_dir"/gitlab/repos"2)访问刚搭建的GitLab站点,创建一个group,比如cnblogs。这时会在/gitlab/repos下创建/gitlab/repos/repositories/cnblogs文件夹。然后在/gitlab/repos/repositories/创建一个文件夹,比如cnblogs3)将现有的所有git项目文件复制到这个文件夹cp-r/data/git/*/gitlab/repos/repositories/cnblogs4)修改一下复制过来的文件夹的所有者:chown-Rgit:git/gitlab/repos/repositories/cnblogs5)运行GitLab导入命令cd/var/opt/gitlabgitlab-rakegitlab:import:repos等了一段时间之后,显示done,却一个项目也没导入进来。经研究发现,在导入时,GitLab只认文件夹名以.git结尾的项目。于是,将要导入的项目文件夹名称加上.git后缀,再次进行导入。结果显示导入成功,比如:Processingcnblogs/CNBlogsJob.git*CreatedCNBlogsJob(cnblogs/CNBlogsJob.git)Done!可以是GitLab站点上却看不到已导入的项目。多次努力,也没能解决这个问题。后来,实在没法,改为手动导入,导入方法如下:1)在GitLab站点上创建与要导入的项目同名的项目。2)进入刚创建的项目文件夹cd/gitlab/repos/repositories/cnblogs/项目名称.git3)删除该文件下的所有文件rm-rf*4)将要导入的项目文件夹下的所有文件复制过来cp-r/data/git/CNBlogsJob/*/gitlab/repos/repositories/cnblogs/CNBlogsJob.git就这样将项目一个一个地导入进来。5)导入完成后,修改一下导入的所有项目的文件所有者chown-Rgit:git/gitlab/repos/repositories/cnblogs如果不修改所有者,客户端无法进行gitpush。就这样手动地完成了现有Git项目的导入。备注:操作系统是CentOS6.2,GitLab版本是7.8.4。

㈢ 如何在 CentOS 上安装 Gitlab

首先安装 EPEL 和编译依赖库

$ rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
如果你是非 64 位,去上面的网址找到适合你发行版的最新版本的 epel rpm
$ yum -y update
$ yum -y install gcc gcc-c++ make autoconf libyaml-devel gdbm-devel ncurses-devel openssl-devel zlib-devel readline-devel curl-devel expat-devel gettext-devel tk-devel libxml2-devel libffi-devel libxslt-devel libicu-devel sendmail patch libyaml* pcre-devel sqlite-devel vim
安装 python 2.7+

Gitlab 要求 Python 2.5.5+ 以及 Ruby 1.9+

系统 Python 默认是 2.6.x,如果你想把 Python 升级到目前比较流行的 2.7.x 就参照下面步骤,否则直接跳过。(Gitlab 目前不支持 Python 3.0)

$ mkdir /tmp/gitlab && cd /tmp/gitlab
$ curl --progress http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz | tar xvf
$ cd Python-2.7.5
$ ./configure --prefix=/usr/local
$ make && make altinstall
安装好之后,需要做两件事情,替换默认 python 的版本至最新版本,

$ sudo ln -s /usr/local/bin/python2.7 /usr/local/bin/python
因为系统默认 PATH 的寻址路径是 /usr/local/bin
最后看下 Python 版本是否是刚刚安装的版本:

$ python --version
由于 yum 是 python 的一个 mole,所以这块修改可能会引起无法调用 yum 脚本,所以需要修改这个文件 /usr/bin/yum 的第一行为 !#/usr/bin/python2.6
安装 Ruby 2.0

Ruby 1.9 和 2.0 的特性差别不大,索性升级至最新 2.0 版本即可

$ cd /tmp/gitlab
$ curl --progress http://cache.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz | tar xz
$ cd ruby-2.0.0-p247
$ ./configure
$ make
$ make install
ruby 2.0 已经内置 gem (v2.0.3),只需要安装 bundler

$ gem install bundler
若在执行 sudo ruby 或 sudo gem 找不到命令,因为编译的路径配置到了 /usr/local/bin,我们只需要做下软链接到 root 用户可以找到的 $PATH 路径:
$ ln -s /usr/local/bin/ruby /usr/bin/ruby
$ ln -s /usr/local/bin/gem /usr/bin/gem
$ ln -s /usr/local/bin/bundle /usr/bin/bundle
安装 Git 和 Gitolite

$ yum -y install git-all gitolite
安装 Nginx

$ yum -y install nginx
$ service nginx start
nginx 需要从 EPEL 中安装,默认系统没有 nginx 包。
安装 Mysql 和 Redis

Gitlab 要求强制安装 redis 处理一些数据,另外支持 MySQL 和 PostgreSQL,这里主要以 MySQL 为例

$ yum -y install mysql mysql-devel mysql-server redis
配置 Mysql 和 gitlab 需要的用户和数据库

$ service mysqld start
$ mysql -u root
$ mysql> CREATE USER 'gitlab'@'localhost' IDENTIFIED BY 'gitlab';
$ mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_proction` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
$ mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_proction`.* TO 'gitlab'@'localhost';
$ mysql> \q
Redis 使用默认配置即可,直接启动

$ service redis start
添加 Gitlab 用户

$ useradd -c 'GitLab' git
CentOS 的命令没有办法直接禁止用户的访问的参数,需要用下面命令:

$ passwd -l git
安装 Gitlab-shell

使用 root 账户切换到 git 账户下操作,可以比官方教程省去一些麻烦的输入

$ su git && cd /home/git
$ git clone https://github.com/gitlabhq/gitlab-shell.git
$ cd gitlab-shell
通过 git tag 查看最新版本并切换之

$ git checkout v1.7.1
编辑配置文件修改你要设定的域名(domain),比如 http://gitlab.dev/

$ vim config.yml
完成之后执行安装脚本

$ ./bin/install
安装 Gitlab

$ cd /home/git
$ git clone https://github.com/gitlabhq/gitlabhq.git gitlab
$ cd /home/git/gitlab
通过 git tag 查看最新版本并切换之

$ git checkout 6.0.1
这里需要配置的东西多一些,这里参考官方的文档,也可以安装我下面的步骤来:

$ cd /home/git/gitlab
复制配置文件,修改 host 相关的配置项,主要是 domain 要和上面的 http://gitlab.dev

$ cp config.yml{.example,}
$ vim config/gitlab.yml
确认 gitlab 以下目录的权限是否正确

$ mkdir tmp/pids/
$ mkdir tmp/sockets/
$ chown -R git log/
$ chown -R git tmp/
$ chmod -R u+rwX log/
$ chmod -R u+rwX tmp/
$ chmod -R u+rwX tmp/pids/
$ chmod -R u+rwX tmp/sockets/
创建 satellites 目录,这个目录是保存各个用户的仓库

$ mkdir /home/git/gitlab-satellites
创建 uploads 目录(为什么 gitlab 不在项目中创建呢= =!)

$ mkdir public/uploads
$ chmod -R u+rwX public/uploads
复制 unicorn 配置文件

$ cp config/unicorn.rb{.example,}
设置 ruby web 容器的参数,比如 2GB RAM 服务器可以设置 3 个 worker。

如果系统其他服务占用了 unicorn 的端口,记得改名。
$ vim config/unicorn.rb
设置一些 git 全局参数

$ git config --global user.name "GitLab"
$ git config --global user.email "gitlab@localhost"
$ git config --global core.autocrlf input
配置 gitlab 数据库设置

$ cp config/database.yml{.mysql,}
$ vim config/database.yml
$ chmod o-rwx config/database.yml
安装必需的 Ruby Gems

$ cd /home/git/gitlab
$ [sudo] gem install charlock_holmes --version '0.6.9.4'
$ bundle install --deployment --without development test postgres aws
初始化数据库数据(执行输入 Yes 继续创建)

$ bundle exec rake gitlab:setup RAILS_ENV=proction
设置 init 脚本

$ sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
$ sudo chmod +x /etc/init.d/gitlab
检查 Gitlab 状态

$ bundle exec rake gitlab:env:info RAILS_ENV=proction
启动 gitlab 服务

$ sudo service gitlab start
再起检查,保证所有项目都是绿色

$ bundle exec rake gitlab:check RAILS_ENV=proction
配置 nginx

根据 nginx 的安装路径适当修改下面的路径即可,我们先把 gitlab 提供的配置文件拷贝过去

$ sudo mkdir -p /etc/nginx/conf/sites/
$ sudo cp lib/support/nginx/gitlab /etc/nginx/conf/sites/gitlab.conf
根据 nginx 版本和不同发行版的不同,配置结构可能不同根据你的实际情况加载 gitlab.conf
修改 gitlab.conf 的 YOUR_SERVER_FQDN 为上面设置的 domain。
最后修改 nginx.conf 或者 default.conf 加载 /etc/nginx/conf/site 下所有 conf 文件

http {

include /etc/nginx/conf/site/*.conf;

server {

}
}
保存后,重启各个服务

$ sudo service nginx reload
$ sudo service gitlab restart
开始 Gitlab 之旅

配置好 hosts 即可访问 gitlab.dev

$ echo "127.0.0.1 gitlab.dev" >> /etc/hosts
默认的用户名密码:

[email protected]
5iveL!fe
各种坑

1. 错误日志报权限错误

2013/11/07 00:42:21 [crit] 15875#0: *2 stat() "/home/git/gitlab/public/favicon.ico.html" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET /favicon.ico HTTP/1.1", host: "gitlab.web.lo"
2013/11/07 00:42:21 [crit] 15875#0: *2 connect() to unix:/home/git/gitlab/tmp/sockets/gitlab.socket failed (13: Permission denied) while connecting to upstream, client: 33.33.33.1, server: gitlab.web.lo, request: "GET /favicon.ico HTTP/1.1", upstream: "http://unix:/home/git/gitlab/tmp/sockets/gitlab.socket:/favicon.ico", host: "gitlab.web.lo"
2013/11/07 00:42:31 [crit] 15875#0: *2 stat() "/home/git/gitlab/public/" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET / HTTP/1.1", host: "gitlab.web.lo"
2013/11/07 00:42:31 [crit] 15875#0: *2 stat() "/home/git/gitlab/public//index.html" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET / HTTP/1.1", host: "gitlab.web.lo"
2013/11/07 00:42:31 [crit] 15875#0: *2 stat() "/home/git/gitlab/public/.html" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET / HTTP/1.1", host: "gitlab.web.lo"
2013/11/07 00:42:31 [crit] 15875#0: *2 connect() to unix:/home/git/gitlab/tmp/sockets/gitlab.socket failed (13: Permission denied) while connecting to upstream, client: 33.33.33.1, server: gitlab.web.lo, request: "GET / HTTP/1.1", upstream: "http://unix:/home/git/gitlab/tmp/sockets/gitlab.socket:/", host: "gitlab.web.lo"
2013/11/07 00:42:31 [crit] 15875#0: *2 stat() "/home/git/gitlab/public/favicon.ico" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET /favicon.ico HTTP/1.1", host: "gitlab.web.lo"
2013/11/07 00:42:31 [crit] 15875#0: *2 stat() "/home/git/gitlab/public/favicon.ico/index.html" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET /favicon.ico HTTP/1.1", host: "gitlab.web.lo"
2013/11/07 00:42:31 [crit] 15875#0: *2 stat() "/home/git/gitlab/public/favicon.ico.html" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET /favicon.ico HTTP/1.1", host: "gitlab.web.lo"
2013/11/07 00:42:31 [crit] 15875#0: *2 connect() to unix:/home/git/gitlab/tmp/sockets/gitlab.socket failed (13: Permission denied) while connecting to upstream, client: 33.33.33.1, server: gitlab.web.lo, request: "GET /favicon.ico HTTP/1.1", upstream: "http://unix:/home/git/gitlab/tmp/sockets/gitlab.socket:/favicon.ico", host: "gitlab.web.lo"
解决方案:
$ (sudo) chmod o+x /home/git

2. 8080 端口被占用

这样主要是因为 nginx 的配置是做 unicorn 的代理转发,实际上 gitlab 是由 unicorn 容器驱动,而在配置里默认绑定的是 8080 端口

$ vim /home/git/gitlab/config/unicorn.rb
找到 listen "127.0.0.1:8080", :tcp_nopush => true 修改成其他未占用的端口号即可。

㈣ gitlab的简单教程

前言:在上一篇中,已经成功使用docker搭建了Gitlab服务器,这里就简单摸索一下大概的使用教程,我自己也是初学者,就大概简单记录一下而已,如果有什么问题,欢迎留言。

1、root用户登录后,创建项目

2、新增用户

3、项目关联用户

4、本地机子安装git,使用 git --version 确定是否安装成功

5、创建本地仓库,建立完成后,在目录下会生成一个“.git”目录,这样就能执行git语句了。
git init :是在当前目录下建立仓库;
git init 文件路径 :指定一个目录创建仓库

6、也可以从服务器上克隆一个库
ssh克隆: git clone [email protected]:root/test-y.git
http克隆: git clone http://gitlab.example.com/root/test-y.git
输入git的用户名、密码即可(Gitlab上注册/创建的)

7、创建一个分支,并推送到服务器

推送到服务器时遇到了一个问题,报错信息如下(上图2):

原因:本地新建的分支与远程分支之间没有连接起来
解决:直接按提示信息重新执行 git push --set-upstream origin dev1 即可

8、Gitlab服务端,可查看已经推送的信息

9、点击“Create merge request”按钮,将dev分支内容合并到主分支上

10、审核人员收到合并消息,审核合并请求。

11、审核通过,合并分支

到这里,大致流程就全部结束了。

git还常用到的一个语句 git pull 从服务器上拉取更新

㈤ 如何在 Ubuntu/Fedora/Debian 中安装 GitLab

1. 安装先决条件
首先,我们需要安装 GitLab 所依赖的软件包。我们将安装 curl,用以下载我们所需的文件;安装openssh-server ,以此来通过 ssh 协议登录到我们的机器上;安装ca-certificates,用它来添加 CA 认证;以及 postfix,把它作为一个 MTA(Mail Transfer Agent,邮件传输代理)。
注: 若要安装 GitLab 社区版,我们需要一个至少包含 2 GB 内存和 2 核 CPU 的 linux 机器。

在 Ubuntu 14 .04/Debian 8.x 中
鉴于这些依赖包都可以在 Ubuntu 14.04 和 Debian 8.x 的官方软件仓库中获取到,我们只需通过使用 apt-get 包管理器来安装它们。为此,我们需要在一个终端或控制台中执行下面的命令:
#apt-get install curl openssh-server ca-certificates postfix

install dependencies gitlab ubuntu debian

在 Fedora 22 中
在 Fedora 22 中,由于 yum 已经被弃用了,默认的包管理器是 dnf。为了安装上面那些需要的软件包,我们只需运行下面的 dnf 命令:
# dnf install curl openssh-server postfix

install dependencies gitlab fedora

2. 打开并开启服务
现在,我们将使用我们默认的初始化系统来打开 sshd 和 postfix 服务。并且我们将使得它们在每次系统启动时被自动开启。

在 Ubuntu 14.04 中
由于在 Ubuntu 14.04 中安装的是 SysVinit 初始化系统,我们将使用 service 命令来开启 sshd 和 postfix 守护进程:
# service sshd start
# service postfix start
现在,为了使得它们在每次开机启动时被自动开启,我们需要运行下面的 update-rc.d 命令:
# update-rc.d sshd enable
# update-rc.d postfix enable

在 Fedora 22/Debian 8.x 中
鉴于 Fedora 22 和 Debian 8.x 已经用 Systemd 代替了 SysVinit 来作为默认的初始化系统,我们只需运行下面的命令来开启 sshd 和 postfix 服务:
#systemctl start sshd postfix
现在,为了使得它们在每次开机启动时可以自动运行,我们需要运行下面的 systemctl 命令:
#systemctl enable sshd postfix
Created symlink from/etc/systemd/system/multi-user.target.wants/sshd.service to /usr/lib/systemd/system/sshd.service.
Created symlink from/etc/systemd/system/multi-user.target.wants/postfix.service to /usr/lib/systemd/system/postfix.service.

3. 下载 GitLab
现在,我们将使用 curl 从官方的 GitLab 社区版仓库下载二进制安装文件。首先,为了得到所需文件的下载链接,我们需要浏览到该软件仓库的页面。为此,我们需要在运行着相应操作系统的 linux 机器上运行下面的命令。

在 Ubuntu 14.04 中
由于 Ubuntu 和 Debian 使用相同的 debian 格式的安装包,我们需要在 https://packages.gitlab.com/gitlab/gitlab-ce?filter=debs 下搜索所需版本的 GitLab,然后点击有着 ubuntu/trusty 标签的链接,即我们运行着的 Ubuntu 14.04。接着一个新的页面将会出现,我们将看到一个下载按钮,然后我们在它的上面右击,得到文件的链接,然后像下面这样使用 curl 来下载它。
# curl https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/trusty/gitlab-ce_8.1.2-ce.0_amd64.deb

Downloading Gitlab Ubuntu

在 Debian 8.x 中
与 Ubuntu 类似,我们需要在 https://packages.gitlab.com/gitlab/gitlab-ce?filter=debs 页面中搜索所需版本的 GitLab,然后点击带有 debian/jessie 标签的链接,即我们运行着的 Debian 8.x。接着,一个新的页面将会出现,然后我们在下载按钮上右击,得到文件的下载链接。最后我们像下面这样使用 curl 来下载该文件。
# curl https://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/jessie/gitlab-ce_8.1.2-ce.0_amd64.deb/download

Downloading Gitlab Debian

在 Fedora 22 中
由于 Fedora 使用 rpm 文件来作为软件包,我们将在 https://packages.gitlab.com/gitlab/gitlab-ce?filter=rpms 页面下搜索所需版本的 GitLab,然后点击所需发行包的链接,这里由于我们运行的是 Fedora 22,所以我们将选择带有 el/7 标签的发行包。一个新的页面将会出现,在其中我们可以看到一个下载按钮,我们将右击它,得到所需文件的链接,然后像下面这样使用 curl 来下载它。
# curl https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-8.1.2-ce.0.el7.x86_64.rpm/download

Downloading Gitlab Fedora

4. 安装 GitLab
在相应的软件源被添加到我们的 linux 机器上之后,现在我们将使用相应 linux 发行版本中的默认包管理器来安装 GitLab 社区版。

在 Ubuntu 14.04/Debian 8.x 中
要在运行着 Ubuntu 14.04 或 Debian 8.x linux 发行版本的机器上安装 GitLab 社区版,我们只需运行如下的命令:
# dpkg -i gitlab-ce_8.1.2-ce.0_amd64.deb

Installing Gitlab Ubuntu Debian

在 Fedora 22 中
我们只需执行下面的 dnf 命令来在我们的 Fedora 22 机器上安装 GitLab。
# dnf install gitlab-ce-8.1.2-ce.0.el7.x86_64.rpm

Installing Gitlab Fedora

5. 配置和开启 GitLab
GitLab 社区版已经成功地安装在我们的 linux 系统中了,接下来我们将要配置和开启它了。为此,我们需要运行下面的命令,这在 Ubuntu、Debian 和 Fedora 发行版本上都一样:
# gitlab-ctl reconfigure

Reconfiguring Gitlab

6. 允许通过防火墙
假如在我们的 linux 机器中已经启用了防火墙程序,为了使得 GitLab 社区版的 web 界面可以通过网络进行访问,我们需要允许 80 端口通过防火墙,这个端口是 GitLab 社区版的默认端口。为此,我们需要运行下面的命令。

在 iptables 中
Ubuntu 14.04 默认安装和使用的是 iptables。所以,我们将运行下面的 iptables 命令来打开 80 端口:
# iptables -A INPUT -p tcp -m tcp --dport 80-j ACCEPT
# /etc/init.d/iptables save

在 firewalld 中
由于 Fedora 22 和 Debian 8.x 默认安装了 systemd,它包含了作为防火墙程序的 firewalld。为了使得 80 端口(http 服务) 能够通过 firewalld,我们需要执行下面的命令。
# firewall-cmd --permanent --add-service=http
success
# firewall-cmd --reload
success

7. 访问 GitLab Web 界面
最后,我们将访问 GitLab 社区版的 web 界面。为此,我们需要将我们的 web 浏览器指向 GitLab 服务器的网址,根据我们的配置,可能是 http://ip-address/ 或 http://domain.com/ 的格式。在我们成功指向该网址后,我们将会看到下面的页面。

Gitlab Login Screen
现在,为了登录进面板,我们需要点击登录按钮,它将询问我们的用户名和密码。然后我们将输入默认的用户名和密码,即 root 和 5iveL!fe 。在登录进控制面板后,我们将被强制要求为我们的 GitLab root 用户输入新的密码。

Setting New Password Gitlab

8. 创建仓库
在我们成功地更改密码并登录到我们的控制面板之后,现在,我们将为我们的新项目创建一个新的仓库。为此,我们需要来到项目栏,然后点击 新项目 绿色按钮。

Creating New Projects
接着,我们将被询问给我们的项目输入所需的信息和设定,正如下面展示的那样。我们甚至可以从其他的 git 仓库提供商和仓库中导入我们的项目。

Creating New Project
做完这些后,我们将能够使用任何包含基本 git 命令行的 Git 客户端来访问我们的 Git 仓库。我们可以看到在仓库中进行的任何活动,例如创建一个里程碑,管理问题,合并请求,管理成员,便签,Wiki 等。

Gitlab Menu

总结
GitLab 是一个用来管理 git 仓库的很棒的开源 web 应用。它有着漂亮的带有诸多酷炫功能的响应式界面。它还打包有许多酷炫功能,例如管理群组,分发密钥,持续集成,查看日志,广播消息,钩子,系统 OAuth 应用,模板等。(注:OAuth 是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。--- 摘取自 维基网络上的 OAuth 词条) 它还可以和大量的工具进行交互如 Slack,Hipchat,LDAP,JIRA,Jenkins,有很多类型的钩子和完整的 API。它至少需要 2 GB 的内存和 2 核 CPU 来流畅运行,支持多达 500 个用户,但它也可以被扩展到多个工作服务器上。

㈥ 个人Gitlab搭建及配置

访问http:// ip地址

设置密码,然后通过 root + password 登录,当然也可以自己新建用户。

之后,将要访问此GitLab的服务器上的公钥添加进来就可以进行愉快的玩耍了 (Linux 系统一般在 /root/.ssh 目录下,Windows一般在 C:\Users\用户名.ssh 目录下)

当你完成以上操作之后,你会发现你仓库中的SSH和HTTP地址是下图这样的,所以我们要对GitLab进行IP显示的配置及端口配置。

修改如下项

修改 gitlab.rb

当你完成以上配置后,还是不能通过 http:// ip location : prot 来访问你的GitLab仓库。

修改GitLab ngnix 监听端口

完成以上设置之后,就可以通过 IP + PORT 来访问你的GitLab库了,同时仓库的HTTP地址显示也正常

修改SSH端口首先要修改服务器的SSH端口,这会影响到 Xshell 对服务器的连接。

完成以上操作之后,一切就都正常了

㈦ ubuntu搭建gitlab服务器,执行 gitlab-ctl reconfigure,显示chef client failed。

原因:ubuntu14.04版本应该是 trusty 版本,而下载的gitlab软件包却是 xenial版本的
解决:下载trusty版本的 gitlab 进行安装
查看ubuntu版本的方法:
root@kickseed:~# lsb_release -a
No LSB moles are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty

㈧ GitLab搭建个人(或公司)版本控制系统

说明:Git,Github,GitLab三者关系。

Git - 是一款自由和开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。(svn是集中化的版本控制系统)。

GitHub - 是一个面向开源及私有软件项目的托管平台(也就一个网站),提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等。它可以托管各种git库,并提供一个web界面。被戏称为“全世界最大的同性交流社区”。

GitLab - 基于Git的项目管理软件。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

当然啦国内开源中国出的“码云”,第一次听得人还以为是“马云”。我酱紫。它跟Github功能差不多,都能建立公有和私有的仓库。不过嘛感觉有点封闭,社区没有Github热闹。

有的人就说啦,我完全可以在Github或者GitLab上做远端代码仓库,为啥还要倒腾GitLab自建代码托管系统?就一个字: “代码安全性”(公司保密规定)。 对于公司来说,GitLab让开发团队对他们的代码仓库拥有更多的控制,相比于GitHub,它有不少的特色:

一、自建代码托管系统都需要做些什么工作?

1. 选择开源软件

Git 大家族的 GitLab ,它提供了完善的用户权限管理,除了涵盖 Git 所有的功能,同时又提供方便的后台管理。分别有CE(社区版)、EE(企业版)、OM(RPM 包完整版)三个版本,目前市面上开发者们的普遍选择是使用 CE 版的源码,成本较低且相对方便。

2. 硬件设施方面

如果是对于中小型企业来讲,自建机房一般成本较高,所以除非是大型集团企业。现在市面上存在太多的云服务器厂商,平均价格多在 5000元/年以上,都是不错的选择。

可能遇到的坑:

3.由于个人眼界以及信息不对称,目前大部分公司都是在公司局域网内自行用GitLab搭建代码托管系统。部署Gitlab 是对服务器有配置要求的建议是CPU两核,内存4G以上。个人经验,勿喷啦。

二、搭建过程(这里仅是作者接触的,其实还有很多更高级的盘法)

Gitlab的服务构成

1.搭建方法分为:传统方式安装GitLab和Docker安装(推荐)。

2.传统安装过程(平台使用centos7安装)

安装和配置必要的依赖项:

安装Postfix以发送通知邮件:

在安装Postfix期间,可能会出现配置屏幕。选择“Internet Site”并按enter键。使用您的服务器的外部DNS以“mail name”并按enter。如果出现额外的屏幕,继续按enter键接受默认值。

添加GitLab镜像源并安装gitlab服务器:

注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口。

重置并启动GitLab:

访问 GitLab页面:如果没有域名,直接输入服务器ip和指定端口进行访问

获取/修改超级管理员root的密码:

最后我们使用默认的账号:root 和刚刚设置好的密码12345678进行登录。

后面的步骤配置SSH key,git Bash的global config等初始化设置跟GitHub一样。可是还有一点就是“汉化”。(英文不好的小伙伴)但是有一定风险,后面我打开报502错误。有两种方法:用git比对出英文与中文的补丁,将英文打补丁。第二是直接下载中文版,替换英文。

3.Docker安装(推荐)

(1)配置docker镜像

直接从 docker hub 获取的话速度非常慢,所以需要配置一个镜像。我使用的是 cloud.io提供的加速器,速度很快。

(2)获取 GitLab 镜像

下载完成后,查看镜像列表

(3)启动容器

3个--publish指定容器与主机的端口映射,分别是 http、https、ssh

3个--volume指定数据卷的映射,分别是 gitlab 的 配置、日志、数据

(4)配置外部访问 URL

修改 gitlab 配置文件:

找到 external_url 这一项修改为自己服务器的访问地址:

保存后,重启容器

(5)访问

初次访问时,gitlab 要求我们重置管理员密码,修改完成后登录。默认用户root。

当然以上为个人实验,公司里面大部分为CTO等大佬已经搭建完毕,我们主要是折腾。

最后推荐个人用很顺手的工具: SourceTree (可视化界面的Git),当然啦要想成为大牛或者装13也好,还是从Git Bash里敲命令行。

㈨ 搭建GitLab服务器

GitLab是GitHub的免费私有库替代方案,并且安装与配置都很方便。

GitLab要求最少4GB内存,支持小团队使用没问题,实测2GB内存的VPS基本没法用,开swapfile也不行,动不动就60秒超时。因此4GB内存是必须的。

关于这一点,内存大户主要是Unicorn,基于ruby的http服务器。Unicorn会在启动后预先占用大部分内存,内存会随着使用逐渐增长,并且不会释放。根据GitLab和Unicorn的官方文档,这不是它们的锅,那么这个锅可能是ruby和rails了。解决方法是unicorn-work-kill,会根据请求次数和内存占用自动重启Unicorn。Omnibus版的GitLab是默认开启的。

GitLab分为社区版和企业版,在未付费的情况下,两者的功能是一样的。并且社区版整合了CI/CD,因此可以满足绝大部分的开发需求。

安装包主要包括Omnibus整合包,Docker、AWS等的云镜像,以及一些第三方维护的版本。其中Omnibus直接整合了所有服务端组件,适合自用和练手。

安装以Omnibus整合包为例,操作系统为Ubuntu16.04。

Gitlab需要 curl,openSSH 和 ca-certificates 这几个组件:

不过服务器系统一般自带,所以是可选的。

邮件服务,用于GitLab发送找回密码的邮件:

不过如果服务器没有域名的话,大部分邮箱会拒收邮件,而管理员帐号可以直接重置其他账号的密码,所以是可选的。

官方提供的脚本:

这个脚本会自动添加源到apt 的source list,以及安全key。另外,如果自己服务器在国内,脚本会自动添加清华的镜像,速度还行。

先更新apt缓存

推荐使用 apt 而不是 apt-get ,前者大多数情况下更简单一点。

然后是安装:

其中 EXTERNAL_URL ,改成自己的域名。没有域名的话,可以直接设置成IP的形式: http://1.2.3.4 ,这个推测跟nginx服务以及GitLab中的项目地址有关,所以最好正确设置。当然也可以之后在配置文件里更改。

安装完成后,可以在配置文件中修改配置 /etc/gitlab/gitlab.rb 。

比如之前的 EXTERNAL_URL :

官方还有一个关于 unicorn 的优化建议:

默认值是2,如果服务器只用于GitLab的话,官方建议是CPU核心数加一,可以提高服务器的响应速度。不过如果内存只有4G,或者服务器同时承载其他服务,就不要改了,以免内存不足。另外,这个参数最小值是2,设为1,服务器可能会卡死。

配置完成后,刷新配置:

每次修改完 gitlab.rb ,都要刷新配置。

如果没有报错的话,GitLab就配置完毕并且正常运行了。接下来可以打开浏览器开始访问了。

热点内容
安卓腾讯视频如何下载到本地 发布:2025-05-11 15:59:08 浏览:937
桌面锁屏密码怎么设置 发布:2025-05-11 15:56:01 浏览:957
ipad备忘录加密 发布:2025-05-11 15:25:36 浏览:26
怎么设置安卓手机取消屏保广告 发布:2025-05-11 15:15:15 浏览:686
精准教学通服务器错误什么意思 发布:2025-05-11 15:15:07 浏览:945
sql2008换行 发布:2025-05-11 15:08:30 浏览:845
setidandroid 发布:2025-05-11 15:05:59 浏览:43
马克斯php 发布:2025-05-11 14:40:18 浏览:447
程序编译的几个阶段 发布:2025-05-11 14:37:34 浏览:939
服务器怎么复制程序 发布:2025-05-11 14:32:57 浏览:547