centos7安装gitlab,配置SSH key,修改项目url

一、 安装并配置必要的依赖关系

在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问。

注意:用户不是管理员权限,出现如下警告

用户不在sudoers文件中此事将被报告

可以使用 su root 切换root权限

1.安装ssh

sudo yum install -y curl policycoreutils-python openssh-server

若出现以下图片的信息则表示成功
在这里插入图片描述

2.将SSH服务设置成开机自启动,安装命令:sudo systemctl enable sshd

3.启动SSH服务,安装命令:sudo systemctl start sshd

在这里插入图片描述

4。安装防火墙(如果已经安装了防火墙并且已经在运行状态,则可直接进行第6步)

yum install firewalld systemd -y

若出现“完毕!”的字样,则表示安装成功
在这里插入图片描述

5.开启防火墙,安装命令:service firewalld start

6.添加http服务到firewalld,pemmanent表示永久生效,若不加–permanent系统下次启动后就会失效。

sudo firewall-cmd --permanent --add-service=http

7.重启防火墙,安装命令:sudo systemctl reload firewalld

8.接下来,安装Postfix以发送通知邮件,安装命令:sudo yum install postfix

在这里插入图片描述

9.将postfix服务设置成开机自启动,安装命令:sudo systemctl enable postfix

10.启动postfix,安装命令:sudo systemctl start postfix

在这里插入图片描述

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

1.添加gitlab镜像

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm

2.安装gitlab 安装命令:rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm

安装过程需要些时间,如果出现下图,则说明安装成功。(个人在安装时并未出现,但是也是成功的)
在这里插入图片描述

4.修改gitlab配置文件指定服务器ip和自定义端口:

vim  /etc/gitlab/gitlab.rb

在这里插入图片描述

进入编辑器后按“i”键进入编辑状态,修改完毕后,按ESC键退出编辑状态

然后退出并保存,命令输入“:wq”

# 启用 smtp 服务
gitlab_rails['smtp_enable'] = true

# 配置 smtp 服务地址
gitlab_rails['smtp_address'] = "smtp.163.com"

# 配置 smtp 服务的端口号
gitlab_rails['smtp_port'] = 465

# 配置发送邮件的电子邮箱名称
gitlab_rails['smtp_user_name'] = "example@163.com"

# 开启smtp服务时显示的授权密码而不是邮箱登录密码
gitlab_rails['smtp_password'] = "此处填开启smtp服务时显示的授权密码"

# 配置smtp服务的域名,和上面的smtp服务器地址一致
gitlab_rails['smtp_domain'] = "smtp.163.com"

# 配置smtp鉴定类别(此处默认)
gitlab_rails['smtp_authentication'] = "login"

# 开启纯文本通信协议扩展
gitlab_rails['smtp_enable_starttls_auto'] = true

# 开启 smtp_tls (传输安全)
gitlab_rails['smtp_tls'] = true

# gitlab服务邮件的发件邮箱,填写上面的邮箱即可
gitlab_rails['gitlab_email_from'] = 'example@163.com'


链接:https://blog.llyth.cn/1236.html

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

5.重置并启动GitLab

执行:

gitlab-ctl reconfigure

gitlab-ctl restart  

提示 "ok: run:"表示启动成功

6.访问 GitLab页面

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

初始账户: root 密码:5iveL!fe

第一次登录修改密码: 192.168.21.3
root
ltkj.com
在这里插入图片描述

另外:
附上gitlab的常用命令:

sudo gitlab-ctl start # 启动所有 gitlab 组件;
sudo gitlab-ctl stop # 停止所有 gitlab 组件;
sudo gitlab-ctl restart # 重启所有 gitlab 组件;
sudo gitlab-ctl status # 查看服务状态;
sudo gitlab-ctl reconfigure # 启动服务;
sudo vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;

sudo gitlab-ctl tail # 查看日志;

2020-11-23_17:46:44.48654 chpst: fatal: unable to run: /opt/gitlab/embedded/sbin/nginx: file does not exist

无法访问:查看日志提示如下:
2020-11-23_17:46:44.48654 chpst: fatal: unable to run: /opt/gitlab/embedded/sbin/nginx: file does not exist

网上说是宝塔的问题, 为了防止此nginx和 网关Nginx冲突, 就把gitlab的nginx启动文件名改成了gitlab-nginx, 但是实际上没有同步修改到gitlab的run文件。
在这里插入图片描述

解决方法是修改gitlab的nginx启动文件

vi /opt/gitlab/sv/nginx/run

如下图(注释部分是原来的,修改为下面的一行):
在这里插入图片描述

修改gitlab的nginx启动文件
最后直接reboot了服务器,然后就正常访问了:

7、为了安全性考虑,需要创建public key

为了方便,本地配置多个ssh key

大多数时候,我们的机器上会有很多的git host,比如公司gitlab、github、oschina等,那我们就需要在本地配置多个ssh key,使得不同的host能使用不同的ssh key ,做法如下(以公司gitlab和github为例):

7-1、生成 gitlab 的秘钥对ssh key

ssh-keygen -t rsa -b 4096  -C 'yourEmail@xx.com' -f ~/.ssh/gitlab-rsa   //然后一路回车(-C 参数是你的邮箱地址)
7-2、生成 github 的生成秘钥对ssh key
ssh-keygen -t rsa -b 4096  -C 'yourEmail2@xx.com' -f ~/.ssh/github-rsa   //然后一路回车(-C 参数是你的邮箱地址)
7-3、在~/.ssh目录下新建名称为config的文件(无后缀名)。用于配置多个不同的host使用不同的ssh key,内容如下:
# gitlab
Host gitlab.com
    HostName gitlab.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/gitlab_id-rsa
# github
Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/github_id-rsa
  ​
# 配置文件参数
# Host : Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件
# HostName : 要登录主机的主机名
# User : 登录名
# IdentityFile : 指明上面User对应的identityFile路径

然后打开/.ssh/id_rsa.pub文件(表示用户目录,比如我的windows就是C:\Users\Administrator),复制其中的内容(比如可以使用记事本打开)

打开gitlab,找到Profile Settings–>SSH Keys—>Add SSH Key,并把上一步中复制的内容粘贴到Key所对应的文本框,在Title对应的文本框中给这个sshkey设置一个名字,点击Add key按钮
在这里插入图片描述
到此就完成了gitlab配置ssh key的所有步骤,就可以使用ssh协议进行代码的拉取以及提交等操作了,就不需要输入密码了

7-4、按照上面的步骤分别往gitlab和github上添加生成的公钥gitlab_id-rsa.pub和github_id-rsa.pub,再次执行git命令验证是不是已经不需要再次验证权限了
7-5、再次查看~/…ssh目录下的文件,会有gitlab_id-rsa、gitlab_id-rsa.pub和github_id-rsa、github_id-rsa.pub四个文件
总结

我们为什么要使用ssh协议呢?
因为ssh更加安全,然后更加方便,比如我们公司的gitlab由http协议换成了https协议,
那么如果你是使用http协议管理代码,那么需要修改所有的项目中的git地址变成https,这会把我们给逼疯的!
但是如果我们一开始就是用ssh协议,这不需要任何的修改,简直不能再爽一点了。
——————————————

gitlab修改访问项目的url

【Settings】-【General】-【Advanced】-【Expand】-【Change path】
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Gitlab服务器修改url如何修改项目path

本地搭建的gitlab 服务器,在 /etc/gitlab/gitlab.rb 中 external_url 通常是局域网ip的形式。如下所示

external_url 'http://192.168.1.106:90'

如果遇到本地的ip地址改变后,此时的 external_url也应对要做出对应的修改。 在修改后,在网页中,看到项目的path路径,有可能还没有更改过来,此时需要手动的进行修改。
查看 下列目录下的gitlab.yml 软链接对应的文件

[ltkj@ltkj config]$ cd /opt/gitlab/embedded/service/gitlab-rails/config    

[ltkj@ltkj config]$ sudo gitlab.yml -> /var/opt/gitlab/gitlab-rails/etc/gitlab.yml

修改 gitlab.yml

[ltkj@ltkj config]$ vim gitlab.yml

 #
 # 1. GitLab app settings
 # ==========================
 ## GitLab settings
 gitlab:
   ## Web server settings (note: host is the FQDN, do not include http://)
   host: 192.168.1.106
   port: 90
   https: false

此处对应的Host ,然后 重启,就可以看到项目的path得到了修改。

sudo gitlab-ctl restart

三、安装中文语言包(汉化)

1. 以下汉化步骤参考此篇文章,首先确认当前安装版本

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

在这里插入图片描述

当前安装版本是10.0.0,因此中文补丁需要打10.x 版本。

克隆 GitLab 源码仓库:

2. 克隆 GitLab.com 仓库

  1. 安装git

    yum install -y git
    
  2. 下载汉化包,其中v10.5.7-zh是版本,我的下载目录是root

      git clone https://gitlab.com/xhang/gitlab.git -b v10.5.7-zh
    
  3. 停止gitlab服务

      gitlab-ctl stop
    
  4. 切换到gitlab汉化包所在的目录

    # /home/ltkj  当前用户的家目录
    cd /home/ltkj/gitlab
    
  5. 比较汉化标签和原标签,导出 patch 用的 diff 文件到/home/ltkj下, 或/root 下, 即家目录

    git diff v10.5.7 v10.5.7-zh > ../10.5.7-zh.diff
    
    
  6. 安装patch

    yum install patch -y
    
  7. 将10.5.7-zh.diff作为补丁更新到gitlab中

    注意这里的路径

    在这里插入图片描述

    # 注意这里的路径
    patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 10.5.7-zh.diff
    
    
    
    

出现如下直接回车,跳过,这是因为补丁中有一些较新的文件,但是我们安装的gitlab并没有这个文件存在
在这里插入图片描述

  1. 启动gitlab
    gitlab-ctl start
    
  2. 重新配置gitlab
    gitlab-ctl reconfigure
    

————————————————

至此,汉化完毕。打开地址http://git.home.com,便会看到中文版的GitLab。如下
在这里插入图片描述

安装完成。

3.5 设置gitlab的群组
前后端分离项目 可以设置子群组,在子群组下 backend 和 front 项目分开,避免版本冲突

在这里插入图片描述

3.5.1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.6 创建用户

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.7 为群组创建项目

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.8 从gitlab 上面 拉取项目 然后配置提交到master主线

略。。。。。。

备份

如果是生产环境,备份是必须的。需要备份的文件:配置文件和数据文件。

备份配置文件

配置文件含密码等敏感信息,不要和数据备份文件放在一起。

sh -c 'umask 0077; tar -cf $(date "+etc-gitlab-%s.tar") -C /etc/gitlab'

备份数据文件

默认数据备份目录是/var/opt/gitlab/backups,手动创建备份文件:

# Omnibus 方式安装使用以下命令备份
sudo gitlab-rake gitlab:backup:create

日常备份,添加 crontab,运行crontab -e

# 每天2点执行备份
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

如要修改备份周期和目录,在/etc/gitlab/gitlab.rb中修改以下两个选项

# 设置备份周期为7天 - 604800秒
gitlab_rails['backup_keep_time'] = 604800
# 备份目录
gitlab_rails['backup_path'] = '/mnt/backups'

恢复

恢复之前,确保备份文件所安装 GitLab 和当前要恢复的 GitLab 版本一致。首先,恢复配置文件:

sudo mv /etc/gitlab /etc/gitlab.$(date +%s)
# 将下面配置备份文件的时间戳改为你所备份的文件的时间戳
sudo tar -xf etc-gitlab-1399948539.tar -C /

恢复数据文件

# 将数据备份文件拷贝至备份目录
sudo cp 1393513186_gitlab_backup.tar /var/opt/gitlab/backups/
 
# 停止连接数据库的进程
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
 
# 恢复1393513186这个备份文件,将覆盖GitLab数据库!
sudo gitlab-rake gitlab:backup:restore BACKUP=1393513186
 
# 启动 GitLab
sudo gitlab-ctl start
 
# 检查 GitLab
sudo gitlab-rake gitlab:check SANITIZE=true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值