CentOS7安装GitLab-CI、GitLab-runner、sonar-scanner并集成GitLab-CI实现代码提交后在sonarqube中自动扫描

1. 参考文章

sonarqube、gitlab、gitlab-runner集成,实现代码push后立即扫描代码生成报告
linux操作系统安装git并与gitlab通过SSH方式互通

2. 安装GitLab

2.1 下载及安装

查看或下载gitlab版本

# 安装gitlab
yum -y install https://mirrors.bfsu.edu.cn/gitlab-ce/yum/el7/gitlab-ce-15.8.3-ce.0.el7.x86_64.rpm
gitlab-ctl reconfigure
gitlab-ctl restart
# 查看gitlab安装情况
 systemctl status gitlab-runsvdir.service
# 防火墙开启并开放80端口
systemctl enable firewalld
systemctl start firewalld
firewall-cmd --permanent --zone=public --add-port=80/tcp
systemctl reload firewalld

访问gitlab
http:..*

2.2 获取密码

cat /etc/gitlab/initial_root_password

在这里插入图片描述

2.3 修改gitlab的路径地址

cd /opt/gitlab/embedded/service/gitlab-rails/config
vi gitlab.yml
# 保存退出
:wq
# 重启gitlab
gitlab-ctl restart

在这里插入图片描述

3. gitlab通过SSH获取数据

3.1 配置git的用户

# 配置用户和名称
git config --global user.name "用户名称"
git config --global user.email "邮箱"
# 验证配置的是否成功
git config --list

在这里插入图片描述

3.2 生成公钥和私钥

# 生成公钥和私钥,输入命令后三次回车即可
ssh-keygen -t rsa -C "刚刚配置的邮箱"
# 进入秘钥存储的路径。私钥:id_rsa,公钥:id_rsa.pub
cd ~/.ssh/

在这里插入图片描述
注意:公钥中的ssh-rsa以及最后的邮箱全部都复制且不要多换行符。
在这里插入图片描述

3.4 GitLab中配置SSH Keys

在这里插入图片描述

3.5 验证互通性

 ssh -T git@gitlabIP

看到Welcome to GitLab, @root!,成功
在这里插入图片描述

4. 安装gitlab-runner

查看或下载gitlab-runner版本

4.1 下载及安装

# 下载并安装
yum -y install https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/yum/el7/gitlab-runner-15.1.0-1.x86_64.rpm
# 启动和重启
systemctl start gitlab-runner
systemctl restart gitlab-runner
# 检查是否启动成功
systemctl status gitlab-runner

4.2 注册

[root@localhost]# gitlab-runner register                                                   
Enter the GitLab instance URL (for example, https://gitlab.com/):
http://*.*.*.*:9000                                   # 填写gitlab项目的 settings > CI/CD > Runners > Specific runners 中的URL
Enter the registration token:
*********   # gitlab 项目的 settings > CI/CD > Runners > Specific runners 中的token
Enter a description for the runner:
[root@localhost]: test #自定义内容
Enter tags for the runner (comma-separated):
test                            # tag标签,自定义名称
Enter optional maintenance note for the runner:
​
Registering runner... succeeded                     runner=GR1348941__11TxU_
Enter an executor: custom, parallels, ssh, docker+machine, docker-ssh+machine, kubernetes, docker, docker-ssh, shell, virtualbox:
ssh                 # 注册executor的方式,这里选ssh,试了docker+machine,docker,parallels,shell都没有成功
Enter the SSH server address (for example, my.server.com):
*.*.*.*   # gitlab的地址
Enter the SSH server port (for example, 22):
22  # 默认端口为22
Enter the SSH user (for example, root):
root   # 用户名称         
Enter the SSH password (for example, docker.io):
123456 # 用户密码
Enter the path to the SSH identity file (for example, /home/user/.ssh/id_rsa):
/root/.ssh/id_rsa # ssh秘钥的存储位置
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! 

在这里插入图片描述

4.3 idea的根目录中编写.gitl-ci.yml文件

stages:
  - build
  - sonar
build-job:
  stage: build
  script:
    - echo "building..."
sonar-job:
  stage: sonar
  only:
    - main
  script:
    - echo "sonar begin..."
    - sonar-scanner -Dsonar.projectKey=$CI_PROJECT_NAME -Dsonar.host.url=http://*.*.*.*:9000/sonarqube/ -Dsonar.login=admin -Dsonar.password=admin -Dsonar.sources=.  -Dsonar.java.binaries=. -Dsonar.java.source=11 -Dsonar.analysis.CI_COMMIT_REF_NAME=$CI_COMMIT_REF_NAME
  tags:
    - test

在这里插入图片描述
项目中的CI/CD下的Editor与.gitl-ci.yml文件中的内容一致。

查看执行的详细情况


5. 安装sonar-scanner

# 创建文件夹
mkdir /usr/sonar-scanner
# 通过wget现在包
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.0.0.1744-linux.zip
# 解压
unzip sonar-scanner-4.0.0.1744-linux.zip
# 修改配置
vim /etc/profile
# 将SONAR_RUNNER_HOME添加到PATH中
export SONAR_RUNNER_HOME=/usr/sonar-scanner/sonar-scanner-4.0.0.1744-linux
export PATH=/usr/local/git/bin:$JAVA_HOME/bin:$SONAR_RUNNER_HOME/bin:$PATH
source /etc/profile
# 验证是否成功
sonar-scanner --version

6. sonarqube的配置

6.1 在GitLab中获取到User Token

在这里插入图片描述

6.2 sonarqube配置GitLab的路径及UserToken

url:GitLab的路径,无端口
UserToken:从GitLab获取的用户 Accese Token
在这里插入图片描述

问题处理

a. doesn‘t have any runners online assigned

详细报错:This job is stuck, because the project doesn‘t have any runners online assigned to it.
runner安装成功却报错没有可用的runners,可以将runners的Run untagged jobs选中。
在这里插入图片描述

b. [http://...:9000/batch/index] is not valid

详细报错:Status returned by url [http://...:9000/batch/index] is not valid: [404]
报错后,调用了http://...:9000/batch/index地址,确实访问不到。
尝试了一下路径进行访问,http://...:9000/sonarqube/batch/index,成功。
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
要在CentOS 7上部署GitLab CI持续集成,您可以按照以下步骤进行操作: 1. 安装GitLab的依赖项,包括curl、openssh-server、openssh-clients、postfix和policycoreutils。您可以使用以下命令进行安装: ``` yum install -y curl openssh-server openssh-clients postfix policycoreutils ``` 2. 下载GitLab的yum源并进行安装。您可以使用以下命令下载并安装yum源: ``` curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash ``` 3. 安装GitLab CE: ``` yum install -y gitlab-ce ``` 4. 进行GitLab的配置。这一步可能需要一些间,请耐心等待: ``` gitlab-ctl reconfigure ``` 5. 安装GitLab插件。进入系统管理页面,点击"管理插件",并选择安装gitlab-plugin和gitlab hook-plugin。如果找不到这些插件,只需安装gitlabgitlab hook即可。 完成上述步骤后,您的CentOS 7系统就可以部署GitLab CI持续集成了。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Cento7部署基于Jenkins和Gitlab的持续集成与部署架构](https://blog.csdn.net/xixixilalalahaha/article/details/106546320)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [CentOS 7 部署Gitlab+Jenkins持续集成(CI)环境](https://blog.csdn.net/a790308/article/details/102258147)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值