Ubuntu 16.04下安装配置和使用Gitlab过程

本文主要记录在Ubuntu 16.04 64bit上搭建GitLab服务器的操作记录,以下是操作步骤(主要参考资料:https://about.gitlab.com/downloads/#ubuntu1604)

Gitlab是一个私有的仓库Web管理工具,基于RoR。它支持类似于github那样强大而又简单的UI交互型操作,支持安装包部署在自己服务器上,安全、开源,并且免费,支持邮件服务,支持分支保护(权限机制,以免被人胡乱push)。

需要说明的是,由于gitlab主要存储项目代码,一般是放在内网的,所以刚开始的时候,我们的服务器micros-server-00通过办公室的公网路由器,连接公网(IP:192.168.8.40),我们进行gitlab的安装配置,并要求用户注册gitlab的账号。一旦这些工作都完成,我们就要将micros-server-00断开公网连接,而连接到内网的路由器,同时还要更换ip地址等。所以,如果有谁参考了本文,请根据自己的实际情况,来进行调整。

0. 预备知识

  • 启用root账户

对于某些不太熟悉ubuntu的用户,安装ubuntu之后,并没有启动root账户,而在安装配置gitlab的过程中,可能需要使用root账户进行操作,所以这里,我们先启动root账户,为root用户设置密码:

micros@micros-server-00:~$ sudo passwd root
[sudo] password for micros://先输入当前用户micros的密码
Enter new UNIX password: //为root设置密码
Retype new UNIX password: //再次输入密码进行确认
passwd: password updated successfully
micros@micros-server-00:~$ su//切换到root
Password://在此输入micros账号的密码
root@micros-server-00:/home/micros# exit//切换到root成功,如果想退出root账户,输入exit
exit

需要先输入一次当前用户的登陆密码,然后输入两次root用户的密码(自己设置)。

Ubuntu 16.04下安装配置和使用Gitlab过程_第1张图片

  •  配置机器的hostname

配置的机器hostname为taiic.com, IP地址为192.168.8.40

在Ubuntu系统中永久修改主机名也比较简单。主机名存放在/etc/hostname文件中,修改主机名时,编辑hostname文件,在文件中输入新的主机名并保存该文件即可。重启系统后,打开命令行来看或者通过命令行hostname确认主机名有没有修改成功。

sudo nano /etc/hostname
或者sudo gedit /etc/hostname

1. 安装依赖包,运行命令

sudo apt-get install curl openssh-server ca-certificates postfix

执行完成后,出现邮件配置,选择Internet那一项(不带Smarthost的)(GitLab中使用postfix进行邮件发送)

Ubuntu 16.04下安装配置和使用Gitlab过程_第2张图片

Ubuntu 16.04下安装配置和使用Gitlab过程_第3张图片

回车,代表选择 

Ubuntu 16.04下安装配置和使用Gitlab过程_第4张图片

Ubuntu 16.04下安装配置和使用Gitlab过程_第5张图片 

回车,等待安装结束。

2.安装gitlab

利用清华大学的镜像(https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/)来进行主程序的安装。 

  • 首先信任 GitLab 的 GPG 公钥:
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null

利用root用户(不是sudo,而是root),vi或者nano等打开文件/etc/apt/sources.list.d/gitlab-ce.list,加入下面一行:

deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main

Ubuntu 16.04下安装配置和使用Gitlab过程_第6张图片

然后退出root账户:

 Ubuntu 16.04下安装配置和使用Gitlab过程_第7张图片

  • 安装 gitlab-ce:
sudo apt-get update
sudo apt-get install gitlab-ce

 Ubuntu 16.04下安装配置和使用Gitlab过程_第8张图片

Ubuntu 16.04下安装配置和使用Gitlab过程_第9张图片 

3.配置GitLab IP地址

首先运行

sudo -e /etc/gitlab/gitlab.rb

在文本中修改"externval_url"之后的域名,可以是本机IP或指向本机IP的域名(注意要带有“https://”),这一行在全部文本中位于很靠上面的位置,如下图所示(不要忘记了是https而不是http)。 

Ubuntu 16.04下安装配置和使用Gitlab过程_第10张图片

(如果将来修改了这里的地址,则后面的步骤也要重新配置一下,使之生效。)

重新配置gitlab,使刚才修改的ip生效。

sudo gitlab-ctl reconfigure

Ubuntu 16.04下安装配置和使用Gitlab过程_第11张图片 

第一次配置的时候,完成后报错:ConnectionFailed: Failed to open TCP connection to acme-staging.api.letsencrypt.org:443  

然后,我翻了个墙,重新配置,就ok了。

Ubuntu 16.04下安装配置和使用Gitlab过程_第12张图片

4. 打开 sshd 和 postfix 服务

sshd使得gitlab可以被远程连接,postfix允许gitlab接发邮件。
service sshd start
service postfix start

Ubuntu 16.04下安装配置和使用Gitlab过程_第13张图片

5.配置iptables

为了使 GitLab 社区版的 Web 界面可以通过网络进行访问,我们需要允许 80 端口通过防火墙,这个端口是 GitLab 社区版的默认端口。为此需要运行下面的命令

sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

6.检查GitLab是否安装好并且已经正确运行,输入下面的命令

sudo gitlab-ctl status

如果得到类似下面的结果,则说明GitLab运行正常

  1. run: alertmanager: (pid 100962) 538s; run: log: (pid 101117) 537s
  2. run: gitaly: (pid 100628) 541s; run: log: (pid 100831) 539s
  3. run: gitlab-monitor: (pid 100806) 540s; run: log: (pid 100929) 539s
  4. run: gitlab-workhorse: (pid 100607) 541s; run: log: (pid 100808) 540s
  5. run: logrotate: (pid 98141) 588s; run: log: (pid 100810) 540s
  6. run: nginx: (pid 111389) 325s; run: log: (pid 100809) 540s
  7. run: node-exporter: (pid 100722) 540s; run: log: (pid 100862) 539s
  8. run: postgres-exporter: (pid 101106) 538s; run: log: (pid 101119) 536s
  9. run: postgresql: (pid 94506) 659s; run: log: (pid 100774) 540s
  10. run: prometheus: (pid 100840) 539s; run: log: (pid 101116) 537s
  11. run: redis: (pid 94193) 665s; run: log: (pid 100773) 540s
  12. run: redis-exporter: (pid 100821) 540s; run: log: (pid 100953) 538s
  13. run: sidekiq: (pid 96625) 616s; run: log: (pid 100776) 540s
  14. run: unicorn: (pid 96350) 622s; run: log: (pid 100775) 540s

Ubuntu 16.04下安装配置和使用Gitlab过程_第14张图片

7.通过浏览器访问gitlab管理页面。

在本地浏览器地址栏中输入:http://127.0.0.1,即可访问GitLab的Web页面;或者在局域网内的其他机器上输入https://192.168.8.40查看gitlab的web管理页面。

8.首次使用时,浏览器Web页面会提示设置密码,如下图所示。

Ubuntu 16.04下安装配置和使用Gitlab过程_第15张图片

 这密码是gitlab上的root这个账号的密码哦。

设置完成后,可以用root账号和刚才的密码登录。可以看到现在是管理员的角色。

Ubuntu 16.04下安装配置和使用Gitlab过程_第16张图片

 

退出后,注册一个新的账号并登录,

Ubuntu 16.04下安装配置和使用Gitlab过程_第17张图片 

发现这俩界面差距不小呀,毕竟刚注册的只是一个普通用户嘛,前面的那个可是管理员耶。

9. 创建一个group

先用root(管理员)账户登录,创建一个group。

Ubuntu 16.04下安装配置和使用Gitlab过程_第18张图片 Ubuntu 16.04下安装配置和使用Gitlab过程_第19张图片

这里,可以修改group的属性。

 10 配置用户ssh key

回到前面注册新用户并登录的地方。创建好了用户后,会自动引导至用户的主页,点击右上角圆形图标的下拉菜单,有Settings,进入配置界面,再点击导航栏中的SSH Keys进入密钥的输入界面,如下图所示。 
Ubuntu 16.04下安装配置和使用Gitlab过程_第20张图片 
如果不知道如何获取密钥,可以按照这个链接来进行操作:http://127.0.0.1/help/ssh/README 或者https://192.168.8.40/help/ssh/README

Ubuntu 16.04下安装配置和使用Gitlab过程_第21张图片
得到了密钥后,将其输入即可

(我自己平时用的win7系统,装有putty和git bash,所以我可以选择使用git bash来生成key)

Ubuntu 16.04下安装配置和使用Gitlab过程_第22张图片

至此,生成的公钥已经复制到剪贴板了,下面直接粘贴到ssh key框中。

Ubuntu 16.04下安装配置和使用Gitlab过程_第23张图片

Ubuntu 16.04下安装配置和使用Gitlab过程_第24张图片

Ubuntu 16.04下安装配置和使用Gitlab过程_第25张图片

邮箱里收到邮件,目前因为gitlab所在的服务器连着公网,所以可以发送邮件。这也是为什么先让大家都注册完之后,再断网的原因吧(虽然断开公网连接之后也可以注册)。

测试配置是否正确:

在命令行输入(我的是git bash)

ssh -T [email protected] //这里输入对应的ip地址,或者域名(如果配置了dns可以解析的话)

Ubuntu 16.04下安装配置和使用Gitlab过程_第26张图片 

现在我换一台机器(就是192.168.8.40这个服务器本身),ssh登录一下gitlab试一下

Ubuntu 16.04下安装配置和使用Gitlab过程_第27张图片

发现是无法使用git的,它要求必须把这台机器添加到可信列表里去。所以,新建的用户必须生成相应的ssh key pair,并把公钥提交给gitlab,要不然根本无法使用git。

11. 创建project

Ubuntu 16.04下安装配置和使用Gitlab过程_第28张图片Ubuntu 16.04下安装配置和使用Gitlab过程_第29张图片

 12. 管理员监控和管理gitlab

Ubuntu 16.04下安装配置和使用Gitlab过程_第30张图片Ubuntu 16.04下安装配置和使用Gitlab过程_第31张图片

至此, gitlab的安装已经完成。 

13. 配置respository

Ubuntu 16.04下安装配置和使用Gitlab过程_第32张图片

我们参考 (因为我们是一键安装的,并不是从source安装的)

Ubuntu 16.04下安装配置和使用Gitlab过程_第33张图片

Ubuntu 16.04下安装配置和使用Gitlab过程_第34张图片

这是目前gitlab的respository所在目录的结构。我们暂时可以先不改。

你可能感兴趣的:(linux)