网站开发的风险,内蒙古做网站的公司有哪些,专业的河南网站建设价格低,视频网站如何优化目录
一. 安装Docker
二. 部署Jenkins
三. 配置邮箱
四. Harbor部署
五. Nexus Repository部署
五. sonarqube安装
六. 配置Docker
七. jenkins系统配置sonarqube
八. 配置pipeline
九. 构建并集成 一. 安装Docker docker-ce镜像_docker-ce下载地址_docker-ce安装教程…目录
一. 安装Docker
二. 部署Jenkins
三. 配置邮箱
四. Harbor部署
五. Nexus Repository部署
五. sonarqube安装
六. 配置Docker
七. jenkins系统配置sonarqube
八. 配置pipeline
九. 构建并集成 一. 安装Docker docker-ce镜像_docker-ce下载地址_docker-ce安装教程-阿里巴巴开源镜像站
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sudo sed -i sdownload.docker.commirrors.aliyun.com/docker-ce /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start配置加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json -EOF
{registry-mirrors: [https://docker.rainbond.cc ,https://do.nark.eu.org,https://dc.j8.work,https://pilvpemn.mirror.aliyuncs.com,https://docker.m.daocloud.io,https://dockerproxy.com,https://docker.mirrors.ustc.edu.cn,https://docker.nju.edu.cn],exec-opts: [native.cgroupdriversystemd],log-driver: json-file,log-opts: {max-size: 100m},storage-driver: overlay2
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
拉取所需要镜像
[rootjenkins ~]# docker pull sonarqube:9.9.3-community
[rootjenkins ~]# docker pull maven:3.8.8-sapmachine-11
[rootjenkins ~]# docker pull node:18.20.3-alpine3.20
[rootjenkins ~]# docker pull sonarsource/sonar-scanner-cli二. 部署Jenkins 官方文档Redhat Jenkins Packages
下面使用yum安装方式手动安装可参考Jenkins安装部署与配置_jenkins部署-CSDN博客
[rootjenkins ~]# sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
[rootjenkins ~]# sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
[rootjenkins ~]# yum install -y fontconfig java-17-openjdk
[rootjenkins ~]# yum install -y jenkins
[rootjenkins ~]# systemctl enable --now jenkins
访问本机IP端口例如我这里访问http://192.168.226.29:8080/
见下图就已经成功部署但是先不着急登录。 停止jenkins将打包好的插件全部导入jenkins存放插件的目录/var/lib/jenkins/plugins/
链接https://pan.baidu.com/s/1e1qjYX8K2TLIMg4fcalFVQ?pwdzl2q 提取码zl2q --来自百度网盘超级会员V2的分享
所需插件已经打包好
[rootjenkins ~]# systemctl stop jenkins# 将jenkins加入到docker组
[rootjenkins ~]# gpasswd -a jenkins docker#上传插件压缩包plugins-2.452.3.tgz
[rootjenkins ~]# ll
total 333680
-rw-------. 1 root root 815 Jun 6 14:00 anaconda-ks.cfg
-rw-r--r-- 1 root root 341684112 Aug 6 2024 plugins-2.452.3.tgz[rootjenkins ~]# tar -xf plugins-2.452.3.tgz[rootjenkins ~]# ll
total 333696
-rw-------. 1 root root 815 Jun 6 14:00 anaconda-ks.cfg
drwxr-xr-x 127 jenkins jenkins 12288 Aug 6 2024 plugins
-rw-r--r-- 1 root root 341684112 Aug 6 2024 plugins-2.452.3.tgz[rootjenkins ~]# cd plugins[rootjenkins plugins]# cp ./* /var/lib/jenkins/plugins/[rootjenkins plugins]# systemctl start jenkins[rootjenkins plugins]# ss -tnlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:((sshd,pid3708,fd3))
LISTEN 0 128 [::]:22 [::]:* users:((sshd,pid3708,fd4))
LISTEN 0 50 *:8080 *:* users:((java,pid5318,fd8))
# 查看初始化密码
[rootjenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
c7cdf3cd065f465ca2cd1f4f5cc29f69输入账户密码登录后页面见下图即完成 三. 配置邮箱 添加邮箱凭据 邮箱全局凭据类型Username with password
用户名 对应你的真实邮箱名
密码 你邮箱的授权码
ID这个用固定的 jenkins_mail
系统配置 四. Harbor部署 下载地址https://github.com/goharbor/harbor/releases/tag/v2.10.3 上传虚拟机这里我已经改好了
[rootjenkins ~]# ll
total 548856
-rw-------. 1 root root 815 Jun 6 14:00 anaconda-ks.cfg
-rw-r--r-- 1 root root 562018170 Aug 1 00:15 harbor-offline-installer-v2.10.3.tgz[rootjenkins ~]# tar -xf harbor-offline-installer-v2.10.3.tgz
[rootjenkins ~]# cd harbor[rootjenkins harbor]# cp harbor.yml.tmpl harbor.yml[rootjenkins harbor]# vim harbor.yml # 全部替换该文件内容为如下配置第一行IP需要修改你的IP
hostname: 192.168.226.29
http:port: 80
harbor_admin_password: Harbor12345
database:password: root123max_idle_conns: 100max_open_conns: 900conn_max_lifetime: 5mconn_max_idle_time: 0
data_volume: /data
trivy:ignore_unfixed: falseskip_update: falseskip_java_db_update: falseoffline_scan: falsesecurity_check: vulninsecure: false
jobservice:max_job_workers: 10job_loggers:- STD_OUTPUT- FILElogger_sweeper_duration: 1 #days
notification:webhook_job_max_retry: 3webhook_job_http_client_timeout: 3 #seconds
log:level: infolocal:rotate_count: 50rotate_size: 200Mlocation: /var/log/harbor
_version: 2.10.0
proxy:http_proxy:https_proxy:no_proxy:components:- core- jobservice- trivy
upload_purging:enabled: trueage: 168hinterval: 24hdryrun: false
cache:enabled: falseexpire_hours: 24# 执行安装
[rootjenkins harbor]# ./install.sh浏览器访问IP即可例如我这里就访问http://192.168.226.29/
如果配置文件中自己没有修改默认用户名admin 默认密码Harbor12345 在jenkins中添加全局凭据 全局凭据类型 Username with password
用户名(默认就用初始化的admin)admin
密码(这里就是admin用户密码) Harbor12345
ID(这里就固定用和我一样的 jenkins-docker 五. Nexus Repository部署 [rootjenkins ~]# mkdir /opt/nexus/
[rootjenkins ~]# cd /opt/nexus
[rootjenkins nexus]# mkdir data chmod 777 /opt/nexus/data
[rootjenkins nexus]# vim docker-compose.yml
version: 3.2
services:nexus3:image: sonatype/nexus3container_name: nexus3restart: alwaysports:- 8081:8081volumes:- ./data:/nexus-data
# 启动
[rootjenkins nexus]# docker compose up -d浏览器访问IP8081端口 。例如我这里访问http://192.168.226.29:8081/ # 在容器查看初始密码
[rootjenkins ~]# docker exec -it nexus3 cat /nexus-data/admin.password
33551d8e-36c6-4b35-a87e-9f7518d48b90
创建后端仓库 创建前端仓库 在jenkins全局配置中添加Nexus的凭据 全局凭据类型 Username with password
用户名(默认就用初始化的admin)admin
密码(这里就是admin用户密码) lzz2578
ID(这里就固定用和我一样的 jenkins_nexus 五. sonarqube安装 [rootjenkins ~]# mkdir /opt/sonarqube
[rootjenkins ~]# cd /opt/sonarqube
[rootjenkins sonarqube]# vim docker-compose.yml
version: 3.1
services:db:image: postgrescontainer_name: dbports:- 15432:5432networks:- sonarnetenvironment:POSTGRES_USER: sonarPOSTGRES_PASSWORD: sonar_123volumes:- /opt/sonarqube/sonar-qube/data:/var/lib/postgresql/datasonarqube:image: sonarqube:9.9.3-communitycontainer_name: sonarqubedepends_on:- dbports:- 19000:9000networks:- sonarnetenvironment:SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonarSONAR_JDBC_USERNAME: sonarSONAR_JDBC_PASSWORD: sonar_123volumes:- ./sonar-l10n-zh-plugin-9.9.jar:/opt/sonarqube/extensions/plugins/sonar-l10n-zh-plugin-9.9.jar
networks:sonarnet:driver: bridge
上传sonarqube中文汉化包
链接https://pan.baidu.com/s/1QWuovwWRKrD6YT3TcA8gFQ?pwd3rtu 提取码3rtu --来自百度网盘超级会员V2的分享
[rootjenkins sonarqube]# ls
docker-compose.yml sonar-l10n-zh-plugin-9.9.jar[rootjenkins sonarqube]# vim /etc/security/limits.conf #文件最后加入下述配置
* soft nofile 131072
* hard nofile 131072
* soft nproc 10240
* hard nproc 10240 [rootjenkins sonarqube]# vim /etc/sysctl.conf # 在文件最后加入下述配置
vm.max_map_count524288
fs.file-max131072[rootjenkins sonarqube]# sysctl -p
[rootjenkins sonarqube]# mkdir -p /opt/sonarqube/sonar-qube/data chmod 777 /opt/sonarqube
[rootjenkins sonarqube]# docker compose up -d[rootjenkins sonarqube]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
702508e30e89 sonarqube:9.9.3-community /opt/sonarqube/dock… 2 minutes ago Up 2 minutes 0.0.0.0:19000-9000/tcp, :::19000-9000/tcp sonarqube
9c7cce2141f1 postgres docker-entrypoint.s… 2 minutes ago Up 2 minutes 0.0.0.0:15432-5432/tcp, :::15432-5432/tcp db
[rootjenkins sonarqube]# ss -tnlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:((sshd,pid3708,fd3))
LISTEN 0 4096 0.0.0.0:19000 0.0.0.0:* users:((docker-proxy,pid7415,fd4))
LISTEN 0 4096 0.0.0.0:15432 0.0.0.0:* users:((docker-proxy,pid7304,fd4))
LISTEN 0 128 [::]:22 [::]:* users:((sshd,pid3708,fd4))
LISTEN 0 4096 [::]:19000 [::]:* users:((docker-proxy,pid7423,fd4))
LISTEN 0 4096 [::]:15432 [::]:* users:((docker-proxy,pid7315,fd4))
LISTEN 0 50 *:8080 *:* users:((java,pid6186,fd8))
浏览器访问IP端口例如我这里访问http://192.168.226.29:19000/
默认用户名admin 默认密码admin 生成令牌 在jenkins页面中配置sonarqube的凭据 全局凭据类型选择 Secret text
Secret(在sonarqube生成的令牌)sqa_c7943cdcc1631859eb1b21ed7bdfa6508b699f3e
ID sonarqube-token-id
描述随便写标识作用
配置sonarqube-webhook凭据 来到jenkins的全局凭据配置里添加上 这里我用一个自己的gitee仓库获取ruoyi-vue的项目练习 六. 配置Docker
设置harbor仓库添加入不安全的设置中
[rootjenkins ~]# vim /etc/docker/daemon.json
{insecure-registries: [192.168.226.29],exec-opts: [native.cgroupdriversystemd],log-driver: json-file,log-opts: {max-size: 100m},storage-driver: overlay2
}
让docker在不重启服务的情况下重新加载配置
[rootjenkins ~]# systemctl reload docker
[rootjenkins ~]# kill -SIGHUP $(pidof dockerd) 七. jenkins系统配置sonarqube 八. 配置pipeline 先下载git工具
[rootjenkins ~]# yum install -y git修改代码来到gitee 修改代码中的IP为你的IP 将代码中的接收邮箱改为你的邮箱进行实验 提交更改 九. 构建并集成 第一次点构建一般会失败
等失败后排查问题然后再点击构建时如果推送到制品库了就需要修改一下版本号和项目唯一标识符默认从3.80开始每构建一次修改一次版本号避免推送冲突。 可看构建状态 遇到报错请仔细检查前面的步骤是否不经意间搞错和漏掉。
遇下图则是完成了整个CI/CD中的CI持续集成流程。 现在去制品库查看打包好的文件是否储存了 去Harbor镜像仓库查看是否正确存储 查看邮箱邮件 查看代码检查服务 会存在一定的代码BUG但是都是不影响整体和可以承受的范围内的如果想让代码检查严格可以通过 SonarQube 质量阀进行详细设置。