首页 > 编程知识 正文

git内网服务器 搭建,gitlab 私有部署

时间:2023-05-06 19:27:31 阅读:158389 作者:2813

0前写的首先是概念。 Git是版本控制工具,GitServer是远程管理仓库,但该仓库没有接口,只能进行命令行管理。 如果有多个仓库就麻烦了,但是Gitlab是一个基于RoR的专用仓库Web管理工具。 GitHub可以看作是全球公开的GitLab。

总结起来是这样的

支持强大、简单的UI交互,如github

支持在服务器上部署安装包,安全、开源且免费

*邮件服务支持

支持分支保护(防止被盲目推送的权限结构)等

本文分为两部分,第一部分介绍用传统方式安装GitLab,第二部分介绍文件库的安装(推荐)。

1安装过程平台使用centos7.4进行安装。

# yuminstallcurlpolicycoreutilsopenssh-server OpenSSH-clients # systemctlenablesshd # systemctlstartsshd # yuminstalllpostfistfichd 从systemctlstartpostfix # firewall-cmd-- permanent-- add-service=http # systemctlreloadfirewaaaaad或以下位置下载,安装()

# curl-ss https://packages.git lab.com/install/repositories/git lab-ce/script.rpm.sh|sudo bash # Yumin

#vi /etc/gitlab/gitlab.rb编辑项目如下。 (QQ邮箱示例) ) :

external_url表示您访问gitlab时的url,以http开头。 此外,如果要定制端口,可以使用x.x.x.x :端口。 警告:请不要在这里使用8080端口。 此外,由于unicorn (git web服务器)缺省使用8080,因此请确保其他服务未使用8080。

推测: gitlab似乎使用nginx作为反向代理,使用unicorn作为web服务器。 这意味着gitlab使用两个端口。 80用于外部访问,8080用于unicorn。

. external _ URL ' http://10.211.55.5 ' #默认80个端口. git lab _ rails [ ' SMTP _ enable ' ]=truegitlab _ rails=' 123456 @ QQ.com ' git lab _ rails [ ' SMTP _ password ' ]=' XXXXXX '=' SMTP.QQ.com ' git lab _ rails [ ' SMTPpatp=: plaingitlab _ rails [ ' SMTP _ enable _ startl ils ]=' 123456 @ QQ.com ' git lab _ rails [ ' git lab _ u u user _ emem=' Kyle _ git lab ' git lab _ rails [ ' git lab _ email _ reply _ to ' ]=' 123456 @ QQ.com ' git lab _ rails [ ' SMTP ] 每次编辑gitlab.rb时重新配置。

# firewall-cmd-- zone=public-- add-port=8080/TCP-- permanent # firewall-cmd-- reload # git lab- ctlreconfic

汉化有一定的风险。 例如,我汉化后打开就报告502。 此后,/多情的哑铃/log/git lab/git la B- rails/side kiq.log持续刷错误日志,cpu使用率急剧增加……

我们建议您首先创建快照。

最后,利用名为gitlab-ctl tail unicorn的监视命令。

# git lab-CTL stop # cat/opt/git lab/embedded/service/git lab-rails/version//10.3.5 # git clone 3359 git lab/sed

好版本相同,如果不同要diff换一下。#git diff

疑难杂症参考:
http://blog.csdn.net/wangxicoding/article/details/43738137

使用docker安装Gitlab

上面讲的都是传统的搭建过程,下面说一下使用docker如何搭建。

1 先决条件

你需要在物理机上安装如下软件:
* docker(版本不要太老)
* docker-compose
- $sudo curl -L https://github.com/docker/compose/releases/download/1.19.0-rc2/docker-compose-Linux-x86_64 -o /usr/local/csdkj/docker-compose
- chmod a+x /usr/local/csdkj/docker-compose

2 安装

到gitlab官网,找到docker的安装方法。
在centos上创建一个gitlab数据卷目录,如:

#/home/kyle/dockers/gitlab

然后使用docker中国来先下载gitlab镜像(注意版本tag):

#docker pull registry.docker-cn.com/gitlab/gitlab-ce:10.4.1-ce.0

接着使用docker tag 重命名你的docker镜像(下面命令根据实际情况不能照抄):

#docker images#docker tags re....218/gitlab-ce-zh:10.4.1 gitlab/gitlab-ce:10.4.1#docker rmi ...<img:tag>(那个旧镜像)...#docker images (再次查看)

然后创建一个docker-compose.yml文件用来控制gitlab的容器的参数:

version: '2'services: gitlab: image: 'twang2218/gitlab-ce-zh:10.4' restart: unless-stopped# hostname: 'localhost' 若有域名就写上 container_name: gitlab environment: TZ: 'Asia/Shanghai' GITLAB_OMNIBUS_CONFIG: | external_url 'http://10.211.55.5' gitlab_rails['time_zone'] = 'Asia/Shanghai' gitlab_rails['gitlab_shell_ssh_port'] = 2222 gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = 'smtp.qq.com' gitlab_rails['smtp_port'] = 25 gitlab_rails['smtp_user_name'] = '503819723@qq.com' gitlab_rails['smtp_password'] = '<密码或授权码>' gitlab_rails['smtp_domain'] = 'smtp.qq.com' gitlab_rails['smtp_authentication'] = :plain gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['gitlab_email_from'] = '503819723@qq.com' gitlab_rails['gitlab_user_email'] = '503819723@qq.com' gitlab_rails['gitlab_email_display_name'] = 'Kyle_Gitlab' gitlab_rails['gitlab_email_reply_to'] = '503819723@qq.com' gitlab_rails['smtp_tls'] = false ports: - '80:80' - '443:443' - '2222:22' volumes: - ./config:/etc/gitlab - ./logs:/多情的哑铃/log/gitlab - ./data:/多情的哑铃/opt/gitlabvolumes: config: data: logs:

[1] 上方关于docker-compose的config配置语法格式详见其文档。这里要注意我们用了https,开放443(稍后我们会建一个证书)。如果你不用证书,就改成’http’。

[2] docker拥有默认的几个网络(使用docker network ls可以查看到),最著名到当属brideg(172.17.0.0/16)。使用docker run时容器默认加入bridge。而compose up每启动一个容器默认都会为创建名为_default的网络。该网络拥有新的网段(如172.18.0.0/16),且可以和原bridge通信。假设未来你要启动Jenkins并让它使用Gitlab,那么就在yml里使用networks标签指定external网络(详见Jenkins搭建笔记)。

然后在yml目录下运行镜像(-d表示挂在后台):

#docker-compose up -d

提示:通常你都dockerd服务都是root运行的,所以这里docker-compose也要使用root,否则会导致‘cannot connect to docker daemon…is it running?’

然后查看端口映射:

docker ps

yml目录下实时输出日志(-f):

#docker-compose logs -f

首次启动时间会很长(5min),稳定后,你会发现一直不断的输出错误,说找不到X.X.X.X.crt证书,那是因为我们使用的是https但却没有为他设置证书。

3 设置https证书(谨慎使用)

要谨慎了,自签名证书可能会引起和jenkins连接的问题。所以如果领导并没要求,尽量不要用https。

进入到./config/下,可以看到已经有很多以root身份创建的文件了。

# mkdir ssl# cd ssl# openssl req -newkey rsa:4096 -nodes -sha256 -keyout 10.211.55.5.key -x509 -days 3650 -out 10.211.55.5.crt###在CountryName输入【CN】;CommonName输入【10.211.55.5】或你的域名(重要!);其余字段直接回车。

完成后ssl目录下就有了证书文件,#docker-compose logs -f应该不会再报错了。

这时打开浏览器访问https://10.211.55.5,应该有错误提示,选择信任证书即可(若需要安装证书,请安装到Trusted Root Certification Authorities路径下)。然后就提示你设置root密码到界面。

4 汉化gitlab

直接找非官方到民间镜像(hub.docker.com)然后部署使用,或许会更加容易。原始docker镜像不建议再修改。
推荐https://hub.docker.com/r/twang2218/gitlab-ce-zh/

5 初始化设置 5.1添加ssh-key

用你的账户登陆后,在右上方头像找到Settings -> SSH Keys,添加你的key(你的客户端电脑(即将来要推送git项目的那台电脑的~/.ssh/id_rsa.pub)到这里。

ssh-keygen -t rsa -C "your-email"

上面这个命令用来生成key

5.2 禁止注册

管理员登陆,然后点击顶部中间扳手图标(admin area) -> Settings -> Sign-up Enabled -> 取消勾选 -> 点击底部Save按钮。
此时再回到登陆页面,就发现注册功能已经没有了。

6 升级与备份数据

由于gitlab升级十分频繁,所以升级有时候很重要。仓库数据其实都在:

#tree .data/git-data-repositories

该目录存放了所有仓库。有时候你会看到”XXX.wiki.git”,这些是gitlab维护的内置仓库。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。