gitlab安装与配置

您所在的位置:网站首页 gitlab没有setting设置中文 gitlab安装与配置

gitlab安装与配置

2024-07-11 12:36:18| 来源: 网络整理| 查看: 265

 

一:Gitlab概述 GitLab概述: 是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。 Ruby on Rails 是一个可以使你开发、部署、维护 web 应用程序变得简单的框架。 GitLab拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。 GitLab官网:https://about.gitlab.com/

 

二:GitLab和GitHub的区别 相同点: 二者都是基于web的Git仓库,在很大程度上GitLab是仿照GitHub来做的,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。 不同点: 1、GitHub如果要使用私有仓库,是需要付费的。GitLab可以在上面创建私人的免费仓库。 2、GitLab让开发团队对他们的代码仓库拥有更多的控制,相比于GitHub,它有不少的特色:允许免费设置仓库权限;允许用户选择分享一个project的部分代码;允许用户设置project的获取权限,进一步的提升安全性;可以设置获取到团队整体的改进进度;通过innersourcing让不在权限范围内的人访问不到该资源。 从代码私有性方面来看,有时公司并不希望员工获取到全部的代码,这个时候GitLab无疑是更好的选择。但对于开源项目而言,GitHub依然是代码托管的首选。 git相关概念: git 是一种版本控制系统,是一个命令,是一种工具 gitlib 是用于实现git功能的开发库 github 是一个基于git实现的在线代码托管仓库,包含一个网站界面,向互联网开放 gitlab 是一个基于git实现的在线代码仓库托管软件,一般用于在企业内网搭建git私服 注:gitlab-ce 社区版 ;gitlab-ee是企业版,收费

 

三:搭建GitLab平台 3.1:环境介绍 系统:CentOS7.5X64 下载gitlab 最新版 https://packages.gitlab.com/gitlab/gitlab-ce/

image_1ciiusoig8q2g9m1kn61mph5c03j.png-459.2kB

3.2:安装环境初始化 yum install curl policycoreutils openssh-server openssh-clients postfix -y

image_1ciiuvm2sk0df5113brnc172340.png-446.5kB

默认,使用 Postfix 发送邮件 service postfix start chkconfig postfix on

image_1ciiv12o81itc4bs18qhlst1g334d.png-212kB

iptables -F #清空规则 systemctl stop firewalld systemctl disable firewalld

image_1ciiv445utnahfd1ukdieiq9a5a.png-165.4kB

3.3 安装gitlab-ce wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-11.0.3-ce.0.el7.x86_64.rpm/download.rpm rpm -ivh gitlab-ce-11.0.3-ce.0.el7.x86_64.rpm

image_1cij045qh1ae19931jnc1pa3l145n.png-694.4kB

image_1cij07uffj9tdop15vu1kibjjn64.png-290.7kB

3.4 配置并启动GitLab gitlab-ctl reconfigure #重新配置应用程序。相当于初始化一下

image_1cij19am7pgmjvj1q3v1v7tq8p81.png-582.7kB

gitlab-ctl status

image_1cij1b4ecvr811j21ssn6eq1ulf8e.png-411kB

netstat -nultp |grep :80

image_1cij1g4bp5t6ct1rtavgn1eehab.png-340.4kB

vim /etc/gitlab/gitlab.rb 改:13 external_url 'http://gitlab.example.com' 为:13 external_url 'http://172.17.100.11'

image_1cij0v19h1ehkkab18rj2hl3du7k.png-232kB

gitlab的管理 关闭gitlab: # gitlab-ctl stop 启动gitlab: # gitlab-ctl start 重启gitlab: # gitlab-ctl restart

image_1cij1pp1j1pbd1o03166mrcl1vghbo.png-242.3kB

默认第一次启动需要设置密码的: 这里配置密码为admin123456 默认配置的是root用户的密码   安装中出现的问题

(1)、在浏览器中访问GitLab出现502错误

原因:内存不足。

解决办法:检查系统的虚拟内存是否随机启动了,如果系统无虚拟内存,则增加虚拟内存,再重新启动系统。

(2)、80端口冲突

原因:Nginx默认使用了80端口。

解决办法:为了使Nginx与Apache能够共存,并且为了简化GitLab的URL地址,Nginx端口保持不变,修改Apache的端口为4040。这样就可以直接用使用ip访问Gitlab。而禅道则可以使用4040端口进行访问,像这样:xxx.xx.xxx.xx:4040/zentao。具体修改的地方在/etc/httpd/conf/httpd.conf这个文件中,找到Listen 80这一句并将之注释掉,在底下添加一句Listen 4040,保存后执行service httpd restart重启apache服务即可。

#Listen 80

Listen 4040

(3)、8080端口冲突

原因:由于unicorn默认使用的是8080端口。

解决办法:打开/etc/gitlab/gitlab.rb,打开# unicorn['port'] = 8080 的注释,将8080修改为9090,保存后运行sudo gitlab-ctl reconfigure即可。

(4)、STMP设置

配置无效,暂时不知道原因。

(5)、GitLab头像无法正常显示 原因:gravatar被墙 解决办法: 编辑 /etc/gitlab/gitlab.rb,将

#gitlab_rails['gravatar_plain_url'] = 'http://gravatar.duoshuo.com/avatar/%{hash}?s=%{size}&d=identicon'

修改为:

gitlab_rails['gravatar_plain_url'] = 'http://gravatar.duoshuo.com/avatar/%{hash}?s=%{size}&d=identicon'

然后在命令行执行:

sudo gitlab-ctl reconfigure

sudo gitlab-rake cache:clear RAILS_ENV=production

 

安装中文语言包(汉化)

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

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

当前安装版本是8.5.7,因此中文补丁需要打8.5版本。

克隆 GitLab 源码仓库:

# 克隆 GitLab.com 仓库 git clone https://gitlab.com/larryli/gitlab.git #或 Gitcafe.com 镜像,速度更快 git clone https://gitcafe.com/larryli/gitlab.git

运行汉化补丁:

# 8.5 版本的汉化补丁(8-5-stable是英文稳定版,8-5-zh是中文版,两个 diff 结果便是汉化补丁) sudo git diff origin/8-5-stable..8-5-zh > /tmp/8.5.diff # 停止 gitlab sudo gitlab-ctl stop # 应用汉化补丁 cd /opt/gitlab/embedded/service/gitlab-rails git apply /tmp/8.5.diff # 启动gitlab sudo gitlab-ctl start

至此,汉化完毕。打开地址http://git.home.com,便会看到中文版的GitLab。如下

安装完成。

 

 

image_1cij1sqfo17fg1vg93tvgvmv09co.png-296.5kB

3.5 设置gitlab的群组

image_1cij594ava2a17ld1jeo1t744879.png-299.2kB

image_1cij5airksjer06bgfhatlnm.png-409kB

image_1cij5b7cm1in018m6j7413lv1qt613.png-450.3kB

image_1cij5bqikhms1ekiahqd201vot1g.png-520.7kB

3.6 创建用户

image_1cij5q4bj1amr16v6li313dd133v44.png-338.9kB

image_1cij5rjl61fsj11jd1hc91gi66mq4h.png-323kB

image_1cij5tqmila08rd7iaicb190f4u.png-477.8kB

image_1cij637fv1lsrc6oi114cu1mdr5e.png-300.1kB

3.7 为群组创建项目

image_1cij5lfk415pl1ppk1efg2p9d662t.png-495.7kB

image_1cij5lvdda701l8km231fumk5a3a.png-547.3kB

image_1cij5mdul1lea16ih1bsu6m61lb43n.png-213.8kB

3.8 从gitlab 上面 拉取项目 然后配置提交到master主线 mkdir -p /root/project cd project git clone http://172.17.100.11/TL-flyfish/solo.git 去公网下载一个博客的的项目 mkdir -p /soft/ cd /soft git clone https://github.com/b3log/solo.git cd /soft/solo/src/main/resouce/ vim late.latke.properties ---- serverhost = 172.17.100.11 ----

image_1cij8urq0bh81q9r1b3q1e4l10v76l.png-181.5kB

cd solo/ cp -ap * /root/project/solo/ cd /root/project/solo/ git add . git commit -m "all" git push origin master

image_1cij8msiv7701coucmlhmc120i5r.png-293.7kB

image_1cij8no15p8g7gnktf7f76i868.png-480.9kB

 

备份

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

备份配置文件

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

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

 

 

一: gitlab CI/CD介绍

1.1 gitlab CI/CD概述 Gitlab是常用的开源git代码管理工具之一,随着发展也推出了ci/cd解决方案. 顾名思义具体来说ci/cd主要完成以下两个工作. ci(持续构建) 代码提交后触发自动化的单元测试,代码预编译,构建镜像,上传镜像等. cd(持续发布) 持续发布则指将构建好的程序发布到各种环境,如预发布环境,正式环境. 官网: https://docs.gitlab.com/ee/ci/README.html

image_1cijbtfpc5ks1o36lgcvn31td39.png-216.3kB

1.2 特性 gitlab ci/cd是由独立的runner程序完成,runner采用go语言编写,因此可以很好的进行跨平台,通常可以将runner部署到任何gitlab server之外的服务器,从而避免对gitlab server的影响. 官网:https://docs.gitlab.com/runner/

 

二:配置gitlab的CI/CD 的runner 2.1 安装gitlab-runner 参考: https://docs.gitlab.com/runner/install/linux-repository.html 在 CentOS 7 上面的安装 Add GitLab's official repository: # For RHEL/CentOS/Fedora curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash

image_1cijccgn8g4t7ni12e3132dv7s13.png-713.6kB

安装runner # For RHEL/CentOS/Fedora sudo yum install gitlab-runner

image_1cijch4d1ovn1dg810nf59ku2u20.png-438.9kB

image_1cijckt49uq417dpvb6dt5ruk3d.png-453.5kB

2.2 项目注册到到runner 参考官网: https://docs.gitlab.com/runner/register/index.html 找到要发布项目的注册信息

image_1cijcsl73102ho6v1f8v1lvn1k4n4a.png-185.5kB

image_1cijctoio1o0t1gumbga1ehcmg04n.png-416.1kB

image_1cijd0akv1anbrb1qev1iqb74h54.png-619.9kB

image_1cijd11pt1489g011rik1e11pdv5h.png-464.8kB

Setup a specific Runner manually 安装一个与 GitLab CI 兼容的 Runner (如需了解更多的安装信息,请查看 GitLab Runner) 在 Runner 设置时指定以下 URL: http://172.17.100.11/ 在安装过程中使用以下注册令牌: kA5JA5myz4aZR6MRgEBm 启动 Runner! gitlab-runner register

image_1cijd53e1qoq15v81kp613kb1ghv5u.png-371.6kB

service gitlab-runner start chkconfig gitlab-runner on 在gitlab 上面找到runner 将项目添加到runner里面去

image_1cijd803a119g1mdhmp08t4gca6b.png-418.6kB

image_1cijd9oav1b1cguc686tpqp1r78.png-488.5kB

1.png-229.2kB

image_1cijdb1521lueqo21ghq1d6a81q7l.png-353kB

这边如果有多个项目都可以添加到这个runner 里面去

##三:代码的MAVEN打包环境

配置 maven tar -zxvf apache-maven-3.5.3-bin.tar.gz mv apache-maven-3.5.3 /usr/local/maven vim /etc/profile --- 在Java环境变量下面加上 maven的环境变量 ## maven export MAVEN_HOME=/usr/local/maven PATH=$PATH:$HOME/bin:$MAVEN_HOME/bin ---

image_1cijee19c1fbb4u5146312pp1llu9i.png-184.9kB

source /etc/profile mvn -version

image_1cijeercbbi68b51111latos69v.png-272.7kB

mkdir -p /deploy/solo # 创建 打出solo.war 的目录 cd /root/project/ rm -rf solo git clone http://172.17.100.11/TL-flyfish/solo.git 尝试使用 命令行的方式编译项目: 首次编译会下载包会很慢 cd solo mvn clean package mvn install mvn install package -Dmaven.test.skip=true 最后会打出solo.war包 表示命令行打包完成 maven 到默认下载的依赖包在/root/.m2/repository

image_1cijjapm61vh0rpu1ke1gsv12gu9.png-621kB

四:配置gitlab的CI 文件

image_1cijjj563smdqoo1cv51us1eg6m.png-476.7kB

image_1cijjkf6r1hjjcro9191je61nrj13.png-251.6kB

4.1 配置CI 的 运行文件gitlab-ci.yml 打出war包测试 stages: - build - run - deploy variables: MAVEN_CLI_OPTS: "-s .m2/settings.xml --batch-mode" MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository" cache: paths: - .m2/repository/ .solo-build-job: &solo-build-job script: - mvn clean package - mvn install - mvn install package -Dmaven.test.skip=true - ls -ld * solo-build: when: manual stage: build script: - mvn clean package - mvn install - mvn install package -Dmaven.test.skip=true - cd $CI_PROJECT_DIR/target/ - ls -ld *

image_1ckca8eub10t6f781fv71tjg1vqo16.png-405.3kB

执行构建

image_1ckcaa4es1b62nh4unv1bbnur61j.png-506.4kB

image_1ckcab7jk1mba1qsho4c17n1hli2g.png-256.8kB

image_1ckcabqtd1a2p8gj13r161phh72t.png-278.2kB

image_1ckcacihp1havid711ge1i5k1o573a.png-467.2kB

最后打出solo.war的包

image_1ckcakf6g1rmu189uvirmbm1lrm47.png-537.8kB

五: 发布项目 5.1: 部署一台tomcat 中间件的服务器 tomcat 服务器 IP: 172.17.100.12 打通172.17.100.11 和172.17.100.12 的无密码登录认证。 下载:tomcat wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz tar -zxvf apache-tomcat-8.5.32.tar.gz mv apache-tomcat-8.5.32 /usr/local/tomcat

image_1ckcb2r6l19391nqfcrk0a85t53.png-565.7kB

image_1ckcb4a6p1ha55qkumb14gi5vi5m.png-167.9kB

启动tomcat: cd /usr/local/tomcat/bin ./startup.sh

image_1ckcb5l721thuhicg371qcohrl63.png-649.8kB

访问: 172.17.100.12:8080

image_1ckcb8kpuas6plh14g71ha11tk77s.png-636.2kB

5.2 在gitlab-ci.yml 增加发布步骤 stages: - build - run - deploy variables: MAVEN_CLI_OPTS: "-s .m2/settings.xml --batch-mode" MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository" cache: paths: - .m2/repository/ .solo-build-job: &solo-build-job script: - mvn clean package - mvn install - mvn install package -Dmaven.test.skip=true - ls -ld * solo-build: when: manual stage: build script: - sudo rm -rf /deploy/solo/solo.war - mvn clean package - mvn install - mvn install package -Dmaven.test.skip=true - cd $CI_PROJECT_DIR/target/ - ls -ld * - cp -ap solo.war /deploy/solo/ solo-run: when: manual stage: run script: - cd /deploy/solo - md5sum solo.war solo-deploy: when: manual stage: deploy script: - cd /deploy/solo/ - scp solo.war [email protected]:/root - cd /deploy/script - sh -x deploy-solo.sh

image_1ckccqufpc961kb61qqp1buo9ftbm.png-328.5kB1.png-370.7kB

发布需要配置 一个发布脚本: 在 172.17.100.11 上面写编写脚本: mkdir /deploy/script -p --- #!/bin/bash DATE=`date +%Y-%m-%d-%H-%M` ssh [email protected]


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭