刚来公司没多久,就被公司派到外地驻点上班,上个月跟我一起驻点的主管同事给了我一个任务: 现在驻点和别人一起搞开发,我们团队的代码都完成之后再把代码提交到他们的git,所以我们这几个驻点的需要自己另外搭建一个代码仓库,合并代码后将我们代码提交到他们的git仓库。
在我们自己的代码仓库里,需要能够持续集成,我搭建的持续集成里面的步只有一个:maven项目代码扫描。sonar里面包含了几百条java代码规范规则,还有一些功能测试还没有用到。
下面,从0开始搭建,以及一些遇到的问题和解决方法,以centos7为例:
搭建前配置系统:
sonar需安装jdk11
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #关闭防火墙开机启动
安装配置gitlab:
下载链接https://packages.gitlab.com/gitlab/gitlab-ce/
wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/xxx.rpm #下载包
rpm -ivh ./xxx.rpm #安装rpm包
vi /etc/gitlab/gitlab.rb #找到external_url这行,将地址改为你当前机器的地址
gitlab-ctl reconfigure #初始化gitlab
gitlab-ctl start #启动gitlab服务
systemctl enable gitlab-runsvdir.service #设置开机启动
systemctl restart gitlab-runsvdir.service #重启服务
到此为止gitlab已安装完成
然后,在windows使用git拉取代码,下面安装git工具:
git下载地址https://git-scm.com/download/win
乌龟工具下载地址:https://tortoisesvn.net/downloads.html
先安装git再安装乌龟工具
到此为止git工具已安装完成
最后就是,git工具如何拉取gitlab里面的代码了:
想要在gitlab拉取代码,首先里面要先有代码,从第一次登陆gitlab开始说起。
gitlab第一次登陆的时候会让你输入密码和邮箱,不管你的邮箱帐号是多少,密码最好都统一,我的密码是asd123asd,因为gitlab、jenkins和sonar都需要登录,最好统一以免混乱。
1.首先新建用户,图中标有点击顺序,New user里面具体怎么弄可以自己看着办
2.新建组,我这里理解的组是 项目组
点击最下面绿色按钮就创建完成了。
3.将user添加到group里面
添加完成后,该用户就在test-group组里面了
4.新建项目
项目创建完成后,随便加一点文件
5.拉取、推送代码
拉取推送都需要验证密码,这里使用sshkey免验证
生成sshkey:
桌面空白处右击,选择Git Bash Here
输入 ssh-keygen -t rsa -C “你的邮箱” 回车
然后提示输入文件的名字,用默认的就行,直接回车
再然后提示数据密码,空的也行,直接回车
添加刚刚生成的sshkey到gitlab
这样免密就完成了。
开始拉取推送代码:
随便新建一个文件夹,在空白处右击,选择 在这里新建版本库 直接确定
然后开始配置仓库地址:
进去后点击 远端,putty密钥就是刚刚的sshkey,选择这个文件
配置完成,拉取代码
到此为止代码仓库搭建完成
安装配置Jenkins:
首先安装jdk11,为什么是11版本?因为后面的sonar用的jdk是11的,这里直接用jdk11,具体安装参考其他博客。
下载链接:https://jenkins.io/zh/download/
wget https://pkg.jenkins.io/redhat-stable/jenkins-2.204.2-1.1.noarch.rpm #下载包
rpm -ivh jenkins-2.204.2-1.1.noarch.rpm #rpm安装
vi /etc/sysconfig/jenkins #修改为由root用户启动
systemctl start jenkins && systemctl enable jenkins #启动并且设置Jenkins开机启动
到此为止Jenkins已经安装完成
配置Jenkins:
打开浏览器输入地址http://虚拟机ip:8080打开Jenkins
cat /var/lib/jenkins/secrets/initialAdminPassword #打开红框处的文本,将文本内容输入到下面的输入框内
然后下一步是让你安装插件什么的,先不安装,叉掉,然后直接开始
Start using Jenkins,进入到里面的界面以后,开始修改默认密码,我设置的跟gitlab一样是asd123asd
安装pipeline和sonar插件(plugins):
首先修改下载源,这样下载不需要等半天:
-
生成default.json,并且修改里面的下载地址
文件生成后,使用终端输入以下命令:
cd /var/lib/jenkins/updates && sudo sed -i ‘s/http://updates.jenkins-ci.org/download/https://mirrors.tuna.tsinghua.edu.cn/jenkins/g’ default.json && sudo sed -i ‘s/http://www.google.com/https://www.baidu.com/g’ default.json #将所有插件下载地址换成清华的
systemctl restart jenkins #重启jenkins -
下载pipeline、sonar相关插件
搜索名字下载,由于刚接触,不太清楚这些插件的关系,所以大家看到跟pipeline或者sonar相关的名字,都可以勾上,也可以参考其他博客,安装好之后重启。
使用gitlab提交代码触发Jenkins-pipeline:
点击主页左边的导航栏New item进来这里
点击ok后自动进来了这里
首先设置一下Gitlab Connection:
然后设置一下Build Tiggers:
最后一步,编写pipeline script代码:
到此为止,一个pipeline就创建设置完成
接下来开始测试:
到此为止,pipeline测试完毕
安装配置sonar:
sonar已经不支持mysql了,安装PostgreSQL:
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install postgresql12
yum install postgresql12-server
安装好后会自动创建postgres用户,没有密码
systemctl enable postgresql-10 && systemctl start postgresql-10
su - postgres #登录进postgres账户
psql #登录进postgresql-server
create user sonar with password ‘asd123asd’; #创建用户
create database sonar owner sonar; #创建数据库
grant all privileges on database sonar to sonar; // sonar数据库授权给sonar帐号
\q #退出
su root #切换到root账户
vi /var/lib/pgsql/12/data/postgresql.conf #去掉 listen_addresses 的注释,将值改为*
vi /var/lib/pgsql/12/data/pg_hba.conf #添加红框内的内容
systemctl restart postgresql-12.service #重启
到此为止,postgresql安装配置完成
安装sonarqube:
针对sonar安装前系统配置:
vi /etc/sysctl.conf #编辑
在末尾添加:
vm.max_map_count=262144
fs.file-max=65536
vi /etc/profile #编辑
在末尾添加:
ulimit -u 4096
ulimit -n 65536
sonar不能使用root帐号下启动,创建sonar专用账号:
useradd sonar #创建sonar帐号
passwd sonar #设置sonar帐号的密码
visudo #编辑,授予sonar帐号sudo权限
在末尾添加:
sonar ALL=(ALL) ALL
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.1.0.31237.zip #下载
unzip sonarqube-8.1.0.31237.zip #解压
chown -R sonar:soanr /你具体解压的路径/sonarqube-8.1.0.31237/* #授予sonar帐号该目录的权限
vi /你具体解压的路径/sonarqube-8.1.0.31237/conf/sonar.properties #编辑配置数据库连接
在开头添加:
sonar.jdbc.username=sonar
sonar.jdbc.password=asd123asd
sonar.jdbc.url=jdbc:postgresql://localhost/sonar
su sonar #切换到sonar账号
sh /你具体解压的路径/sonarqube-8.1.0.31237/bin/sonr.sh start #启动sonar
浏览器输入http://虚拟机ip:9000,如果没有启动成功,上面那条命令start改成console看看有没有报错,默认帐号密码admin
到此为止,sonarqube安装配置完成
由于个人原因,更新到此,往谅解!