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-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可以分类:
- Shared Runner(共享型):运行全部未指派项目的作业。只有系统管理员能够创建Shared Runner。
- Specific Runner(指定型):运行被指拍到该Runner的项目作业。拥有该工程访问权限的人都能够为该工程创建Shared Runner。
- Group Runners: 运行群组类全部未指派项目的作业。需要Group的master以上的权限能创建
GitLab-Runner安装
- 使用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
- 离线安装
访问官网下载地址,根据系统下载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
添加后可以看到了新增加的规则