gitlab-ce部署

gitlab下载安装

gitlab下载

官网地址:https://about.gitlab.com/install/
包下载:https://packages.gitlab.com/gitlab/gitlab-ce/
汉化:https://gitlab.com/xhang/gitlab/
注:gitlab-ce 社区版 ;gitlab-ee是企业版,收费

安装方式有两种:
方式1:选择对于服务器版本执行官网的命令安装最新版,但是因为服务器原因下载特别慢,可以配置其他镜像源,参照:手把手教你 GitLab 的安装及使用
方式二:直接下载对应得包再安装,并且可以进行对应版本的汉化

因为汉化版最新是12-3-stable-zh,所以我下载12.3.9版本

在这里插入图片描述
找到wget,进行下载

wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-12.3.9-ce.0.el7.x86_64.rpm/download.rpm

安装依赖

本文关闭了防火墙,开启防火墙需要配置ssh,请百度

yum install curl policycoreutils openssh-server openssh-clients postfix -y

开启Postfix 发生消息邮件

systemctl status postfix.service #查看状态是否有错误
systemctl start postfix.service #启动
systemctl enable postfix.service #开机自启

systemctl status postfix.service时,可能出现错误:
1.fatal: parameter inet_interfaces: no local interface found for ::1

#vim /etc/postfix/main.cf

inet_interfaces = all
inet_protocols = all

2.fatal: unable to use my own hostname

#vim /etc/postfix/main.cf

myhostname = mail.mydomain.com #不能为IP

安装gitlab-ce

rpm -ivh gitlab-ce-12.3.9-ce.0.el7.x86_64.rpm

查看gitlab安装完成后路径(默认安装到/opt/gitlab)

rpm -qpl gitlab-ce-12.3.9-ce.0.el7.x86_64.rpm

修改配置文件

编译配置文件,初始化配置

gitlab-ctl reconfigure

修改外部访问url

vim /etc/gitlab/gitlab.rb

#可以配置域名访问
#external_url 'http://gitlab.test.domain.com:8888'
#修改端口,默认是80
#unicorn['port'] = 8080

发送邮件配置

gitlab发送邮件配置,官方说明

    gitlab_rails['smtp_enable'] = true  
    gitlab_rails['smtp_address'] = “smtp.exmail.qq.com”  
    gitlab_rails['smtp_port'] = 25  
    gitlab_rails['smtp_user_name'] = “huangdc@domain.com“  
    gitlab_rails['smtp_password'] = "smtp password"  
    gitlab_rails['smtp_authentication']= “plain"  
    gitlab_rails['smtp_enable_starttls_auto']= true  
    gitlab_rails['gitlab_email_from']= 'huangdc@domain.com'  
    gitlab_rails['gitlab_email_reply_to']= ‘noreply@domain.com'  

修改项目克隆(clone)地址

vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

修改host地址

  ## GitLab settings
  gitlab:
    ## Web server settings (note: host is the FQDN, do not include http://)
    host: 192.168.100.100
    port: 80
    https: false

配置生效并启动

    #重新启动GitLab 
    gitlab-ctl restart

汉化

参考:gitlab的安装配置与简单使用

gitlab常用命令

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

gitlab登录

默认第一次启动需要设置密码的: 这里配置密码为12345678
默认配置的是root用户的密码 

取消注册功能

在这里插入图片描述

组群说明

在组里添加用户分配权限后,该用户拥有组群下所有项目的权限
在项目里添加用户分配权限后,该用户只对该项目拥有权限

Git 下载安装

因为GitLab Runner安装的安装依赖于git,所以先安装git

下载git

地址:https://git-scm.com/download/linux
在这里插入图片描述

安装git

安装好必要的依赖包

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

拷贝git-2.28.0.tar.gz到/usr/local/soft/git目录下,解压git

tar  -xzvf git-2.28.0.tar.gz

安装git到/usr/local/soft/git/git目录

cd git-2.28.0
make prefix=/usr/local/soft/git/git all
make prefix=/usr/local/soft/git/git install

配置环境参数,vim手写修改 /etc/profile

export JAVA_HOME=/opt/java/jdk1.8.0_181
export GIT_HOME=/usr/local/soft/git/git

export PATH=$GIT_HOME/bin:$JAVA_HOME/bin:$PATH

立即生效

source /etc/profile

初始化设置

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

SSH克隆方式参看jenkins自动化搭建测试环境,https克隆方式
下面命令会将下次弹框的账号和密码保存起来,永久使用。

git config --global credential.helper store

GitLab Runner安装使用

官方文档

GitLab-CI

GitLab-CI就是一套配合GitLab使用的持续集成系统(当然,还有其它的持续集成系统,同样可以配合GitLab使用,比如Jenkins)。而且GitLab8.0以后的版本是默认集成了GitLab-CI并且默认启用的。

GitLab-Runner

GitLab-Runner是配合GitLab-CI进行使用的。一般地,GitLab里面的每一个工程都会定义一个属于这个工程的软件集成脚本,用来自动化地完成一些软件集成工作。当这个工程的仓库代码发生变动时,比如有人push了代码,GitLab就会将这个变动通知GitLab-CI。这时GitLab-CI会找出与这个工程相关联的Runner,并通知这些Runner把代码更新到本地并执行预定义好的执行脚本。

所以,GitLab-Runner就是一个用来执行软件集成脚本的东西。你可以想象一下:Runner就像一个个的工人,而GitLab-CI就是这些工人的一个管理中心,所有工人都要在GitLab-CI里面登记注册,并且表明自己是为哪个工程服务的。当相应的工程发生变化时,GitLab-CI就会通知相应的工人执行软件集成脚本

Runner可以分布在不同的主机上,同一个主机上也可以有多个Runner。

Runner类型

GitLab-Runner可以分类:

  1. Shared Runner(共享型):运行全部未指派项目的作业。只有系统管理员能够创建Shared Runner。
  2. Specific Runner(指定型):运行被指拍到该Runner的项目作业。拥有该工程访问权限的人都能够为该工程创建Shared Runner。
  3. Group Runners: 运行群组类全部未指派项目的作业。需要Group的master以上的权限能创建

GitLab-Runner安装

  1. 使用GitLab的CentOS / RedHat仓库进行安装
    官方文档说明
# 添加官方的repo.
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash

# 安装Gtilab-runner.
sudo yum install gitlab-runner
  1. 离线安装
    访问官网下载地址,根据系统下载rpm,我是centos7
    在这里插入图片描述

找到wget,进行下载,和gitlab版本对应

wget --content-disposition https://packages.gitlab.com/runner/gitlab-runner/packages/el/7/gitlab-runner-12.3.0-1.x86_64.rpm/download.rpm

安装

rpm -i gitlab-runner-12.3.0-1.x86_64.rpm

创建Group Runners

用group的master以上用户登录,进入指定组

在这里插入图片描述
转到“设置”>“ CI / CD”,然后展开“Runners”部分
获取URL和令牌
在这里插入图片描述

注册GitLab-Runner

gitlab-runner register

在这里插入图片描述
依次填入:

URL:在上文获取到的gitlab访问路径
token:在上文获取到的令牌
description: 对runner的描述
tags:runner运行的job的标签,此处不添加,运行未加标签的job,详情参看文档
executor:runner执行方式

注册成功,下面显示注册的runners
在这里插入图片描述

.gitlab-ci.yml配置

参看https://docs.gitlab.com/ee/ci/yaml/README.html
示例:

stages:
 - build
 - test
 - deploy
 
build:
 stage: build
 script: 
  - git --version
  - echo "Building the app"
  
test:
 stage: test
 script: echo "Running tests"
 when: manual
  
deploy_staging:
 stage: deploy
 script: echo "Deploy to staging server"
 only:
  - master

SonarQube下载安装

sonarqube用于静态代码检查

下载

下载地址:https://www.sonarqube.org/downloads/
下载的长期支持版本,没有下载最新版本,注意查看官网对应jdk版本和数据库版本的支持
在这里插入图片描述

安装postgresql

sonarqube需要安装依赖数据库
注意:Linux下root用户无法启动pgsql
参看:CentOS 7 安装PostgreSQL
遇到问题:PostgreSQL11.2 configure卡住 checking for DocBook XML V4.2

安装SonarQube

将sonarqube-7.7.zip(jdk1.8)拷贝到服务器后解压
修改conf目录下的配置文件sonar.properties

sonar.jdbc.username=postgres
sonar.jdbc.password=12345678

sonar.jdbc.url=jdbc:postgresql://192.168.100.110:5432/sonarqube?currentSchema=sonarqube

sonar.jdbc.maxActive=60

sonar.jdbc.maxWait=5000

sonar.jdbc.minEvictableIdleTimeMillis=600000
sonar.jdbc.timeBetweenEvictionRunsMillis=30000

sonar.web.host=0.0.0.0
sonar.web.port=9000

sonar.ce.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true

启动

注意:SonarQube需要用非root用户启动

useradd sonar
chown -R sonar:sonar /usr/local/soft/sonarqube-7.7
chmod -R u+rx /usr/local/soft/sonarqube-7.7
su - sonar
cd /usr/local/soft/sonarqube-7.7/bin/linux-x86-64
sh sonar.sh start

访问

http://192.168.100.100:9000/
默认的用户是admin/admin

汉化

用admin/admin登录后,搜索chinese pack
然后重启服务

su - sonar
cd /usr/local/soft/sonarqube-7.7/bin/linux-x86-64
sh sonar.sh restart

在这里插入图片描述

安装sonar-scanner

sonar主要是借助客户端检测工具来检测代码,所以要使用sonar必须要在我们本地配置好客户端检测工具
客户端可以通过IDE插件、Sonar-Scanner插件、Ant插件和Maven插件方式进行扫描分析,此处使用的是Sonar-Scanner
历史版本下载地址:https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/

sonar-scanner-4.5.0.2216拷贝到服务器上后,配置环境变量
在这里插入图片描述
给root用户赋予权限

chmod -R 775 /usr/local/soft/sonar-scanner-4.5.0.2216/

修改配置

下载后解压,进入conf目录下修改sonar-scanner.properties

#默认 SonarQube server
sonar.host.url=http://192.168.100.100:9000
sonar.login=admin
sonar.password=admin
#默认 编码格式
sonar.sourceEncoding=UTF-8
#数据库连接
sonar.jdbc.url=jdbc:postgresql://192.168.100.110:5432/sonarqube?currentSchema=sonarqube
sonar.jdbc.username=postgres
sonar.jdbc.password=123456

项目根目录下创建sonar-project.properties文件
在这里插入图片描述
配置

#项目的key
sonar.projectKey=mydemo
#项目的名字(可以随便写,这个名字在sonar显示的)
sonar.projectName=mydemo
#项目的版本
sonar.projectVersion=1.0
#需要分析的源码的目录
sonar.sources=src
#这是target(如果没编译可以不写)
sonar.java.binaries=target/classes
#java语言
sonar.language=java

安装MAVEN

新版本的sonarqube自带的sonar-java插件是新版本的,4.12后的soanr-java分析插件,需要编译后的class文件实现动态检查,所以需要进行maven编译
可以使用老版本的插件:https://sonarsource.bintray.com/Distribution/sonar-java-plugin/sonar-java-plugin-4.12.0.11033.jar

解压maven

tar  -xzvf  apache-maven-3.5.4-bin.tar.gz

修改/etc/profile

export JAVA_HOME=/opt/java/jdk1.8.0_181
export MAVEN_HOME=/usr/local/apache-maven-3.5.4

export PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

重新加载配置

. /etc/profile

gitlab配置通用账号

为了方便统一,在gitlab注册账号sonarQube,需要代码检查的项目都赋予sonarQube用户相应权限
获取sonarQube用户的token:
sonarQube登录,点击setting->Access Tokens,勾选权限后创建token
在这里插入图片描述

sonarqube配置sonar-gitlab-plugin 插件

下载sonar-gitlab-plugin-4.1.0.jar到sonarqube-7.7/extensions/plugins中
地址:https://github.com/gabrie-allaigre/sonar-gitlab-plugin/tree/4.1.0-SNAPSHOT
重启sonarqube

su - sonar
cd /usr/local/soft/sonarqube-7.7/bin/linux-x86-64
sh sonar.sh restart

sonarqube配置gitlab

admin登录sonarqube后进行配置
在这里插入图片描述

修改.gitlab-ci.yml

执行环境变量中配置的sonar-scanner

stages:
 - build
 - test
 - deploy
 
build:
 stage: build
 script: 
  - git --version
  - echo "Building the app"
  
test:
 stage: test
 script: 
  - mvn clean compile
  - sonar-scanner
  
deploy_staging:
 stage: deploy
 script: echo "Deploy to staging server"
 only:
  - master

添加阿里规约

https://mvnrepository.com中查询org.sonarsource.pmd获取
在这里插入图片描述

下载jar
复制到onarqube-7.7/extensions/plugins中
重启sonarqube

su - sonar
cd /usr/local/soft/sonarqube-7.7/bin/linux-x86-64
sh sonar.sh restart

添加后可以看到了新增加的规则
在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值