当前位置: 首页 > news >正文

中国旅游网站排名搜讯网站开发

中国旅游网站排名,搜讯网站开发,陕西网站推广公司,可以做家教的网站有哪些文章目录 DevOpsDevOps概述Jenkins实战3#xff1a;实战1和实战2的加强版#xff08;新增SonarQube和Harbor#xff09;⭐环境准备⭐项目架构图对比Jenkins实战1和实战2#xff0c;新增内容有哪些#xff1f;SonarQube教程采用Docker安装SonarQube #xff08;在Jenkins所… 文章目录 DevOpsDevOps概述Jenkins实战3实战1和实战2的加强版新增SonarQube和Harbor⭐环境准备⭐项目架构图对比Jenkins实战1和实战2新增内容有哪些SonarQube教程采用Docker安装SonarQube 在Jenkins所在的服务器上安装⭐访问SonarQube可视化界面⭐首次登陆SonarQube需要修改密码安装SonarQube中文插件 ⭐SonarQube的简单使用⭐下载sonar-scanner并上传到Jenkins所在的服务器上安装sonar-scannerSonarQube案例1使用sonar-scanner进行代码质量检测⭐ Jenkins整合SonarQube进行代码质量检测⭐在Jenkins下载SonarQube Scanner插件⭐在Jenkins配置SonarQube系统配置⭐在Jenkins配置SonarQube全局配置⭐架构图第4步案例给Jenkins的mytest任务配置SonarQube自动进行代码质量检测重点⭐ Harbor v2.4.2教程下载安装Harbor⭐访问Harbor⭐创建一个新的Harbor项目将本地镜像mytest推送到Harbor仓库中⭐修改daemon.json文件添加insecure-registries配置⭐给mytest镜像改名使其可以push到Harbor镜像仓库中⭐开始推送到Harbor仓库⭐ 测试拉取Harbor镜像Jenkins整合Harbor⭐让Jenkins容器内部可以使用Docker⭐架构图第5步案例Jenkins制作自定义镜像并上传到Harbor⭐架构图第6-7步案例通知目标服务器可以从Harbor上拉取镜像并运行容器⭐ DevOps DevOps概述 软件开发最初是由两个团队共同组成没有采用DevOps之前 开发团队从头开始设计和整体系统的构建编写代码。需要系统不停的迭代更新。运维团队将开发团队的代码进行测试通过后再部署上线。确保系统稳定运行。 没有采用DevOps的缺点 这看似两个目标不同的团队需要协同完成一个软件的开发。在开发团队指定好计划并完成编写代码后需要把代码交给运维团队。运维团队向开发团队反馈需要修复的BUG以及一些需要返工的任务。这时开发团队需要经常等待运维团队的反馈。这无疑会延长整个软件开发的周期。 采用DevOps的优点 DevOps的方式可以让公司能够更快地应对更新和市场发展变化开发可以快速交付部署也更加稳定。核心就在于简化Dev和Ops团队之间的流程使整体软件开发过程更快速。说白了就是DevOps有利于快速完成项目不会浪费时间 整体的软件开发流程 PLAN开发团队根据客户的目标制定开发计划CODE根据PLAN开始编码过程需要将不同版本的代码存储在一个库中。BUILD编码完成后需要将代码构建并且运行。TEST成功构建项目后需要测试代码是否存在BUG或错误。DEPLOY代码经过手动测试和自动化测试后认定代码已经准备好部署并且交给运维团队。OPERATE运维团队将代码部署到生产环境中。MONITOR项目部署上线后需要持续的监控产品。INTEGRATE然后将监控阶段收到的反馈发送回PLAN阶段整体反复的流程就是DevOps的核心即持续集成、持续部署。 为了保证整体流程可以高效的完成各个阶段都有比较常见的工具如下图 Jenkins实战3实战1和实战2的加强版新增SonarQube和Harbor⭐ 环境准备⭐ 该Jenkins实战3建立在完成Jenkins实战1和Jenkins实战2的内容的基础上 项目架构图 对比Jenkins实战1和实战2新增内容有哪些 新增内容有如下 1Jenkins整合SonarQube实现代码质量检测。2将Jenkins制作好的镜像推送到Harbor仓库。 SonarQube教程 采用Docker安装SonarQube 在Jenkins所在的服务器上安装⭐ 注意由于新版的SonarQube不再支持MySQL而是支持PostgreSQL。那么安装SonarQube时需要先安装PostgreSQL。 1安装Postgres数据库 docker pull postgres2安装SonarQube版本是8.9.9社区版 docker pull sonarqube:8.9.9-community3新建sonarqube目录 mkdir -p /usr/local/docker/sonarqube_docker4跳转到sonarqube目录 cd /usr/local/docker/sonarqube_docker5编写sonarqube的docker-compose文件 vi docker-compose.yml内容如下 version: 3.1 services:db:image: postgrescontainer_name: dbports:- 5432:5432networks:- sonarnetenvironment:POSTGRES_USER: sonarPOSTGRES_PASSWORD: sonarsonarqube:image: sonarqube:8.9.9-communitycontainer_name: sonarqubedepends_on:- dbports:- 9000:9000networks:- sonarnetenvironment:SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonarSONAR_JDBC_USERNAME: sonarSONAR_JDBC_PASSWORD: sonar networks:sonarnet:driver: bridge6修改/etc/sysctl.conf文件 vi /etc/sysctl.conf在该配置文件中添加下面的内容直接复制下面的内容到配置文件中保存退出即可 vm.max_map_count2621447让刚刚修改的配置生效 [rootcentos7-jenkins sonarqube_docker]# sysctl -p vm.max_map_count 2621448执行docker-compose文件 docker-compose up -d访问SonarQube可视化界面⭐ 访问地址sonarqube的ip9000端口。 SonarQube的账号和密码都是admin 首次登陆SonarQube需要修改密码 我的SonarQube密码修改成admin123456 安装SonarQube中文插件 ⭐ SonarQube的简单使用⭐ 下载sonar-scanner并上传到Jenkins所在的服务器上 sonar-scanner官网下载地址 查看sonar-scanner-cli是否上传成功 [rootcentos7-jenkins ~]# ls apache-maven-3.8.6-bin.tar.gz jenkins anaconda-ks.cfg jdk-8u333-linux-x64.tar.gz sonar-scanner-cli-4.6.2.2472-linux.zip安装sonar-scanner 1由于sonar-scanner-cli是zip格式的压缩文件而Linux下载解压这种格式文件需要安装一个工具 yum -y install unzip2使用unzip解压刚刚上传的sonar-scanner包 注意我们下载的sonar-scanner名字可能会不一样所以这里需要更改 unzip sonar-scanner-cli-4.6.2.2472-linux.zip3修改sonar-scanner解压出来的文件夹名字 mv sonar-scanner-4.6.2.2472-linux sonar-scannerSonarQube案例1使用sonar-scanner进行代码质量检测⭐ 1跳转Jenkins宿主机数据卷目录 [rootcentos7-jenkins ~]# cd /usr/local/docker/jenkins_docker/data2把解压出来的sonar-scanner目录移动到Jenkins宿主机数据卷目录中 [rootcentos7-jenkins data]# mv /root/sonar-scanner ./3在Jenkins宿主机数据卷目录下执行下面命令修改sonar-scanner配置 [rootcentos7-jenkins data]# vi sonar-scanner/conf/sonar-scanner.properties我们的配置文件内容如下记得下面的ip 192.168.184.80要换成你SonarQube的IP。 #Configure here general information about the environment, such as SonarQube server connection details for example #No information about specific project should appear here#----- Default SonarQube server sonar.host.urlhttp://192.168.184.80:9000#----- Default source code encoding sonar.sourceEncodingUTF-84查看sonar-scanner工具所在位置为Jenkins宿主机数据卷的sonar-scanner文件夹中的bin目录下 跳转到sonar-scanner工具目录下 [rootcentos7-jenkins ~]# cd /usr/local/docker/jenkins_docker/data/sonar-scanner/bin/可以看到下面的sonar-scanner就是我们需要的代码质量检测工具 [rootcentos7-jenkins bin]# ls sonar-scanner sonar-scanner-debug5跳转到我们的Jenkins从gitlab上拉取的mytest项目目录中该gitlab上的项目也就是我们创建的名为mytest的项目 Jenkins的项目目录也就是在/usr/local/docker/jenkins_docker/data/workspace下。 [rootcentos7-jenkins ~]# cd /usr/local/docker/jenkins_docker/data/workspace/mytest6获取SonarQube的Token 可以看到我们生成的token是fa58b2f8903333918bfa22cf0bc07f3ac0e92435 7查看当前所在目录 [rootcentos7-jenkins mytest]# pwd /usr/local/docker/jenkins_docker/data/workspace/mytest8利用sonar-scanner工具对Jenkins拉取的gitlab项目名为“mytest”的项目进行代码质量检测⭐ /usr/local/docker/jenkins_docker/data/sonar-scanner/bin/sonar-scanner上面所说的sonar-scanner工具所在的路径。如果前面按照我们这样配置则不需要更改-Dsonar.source./ 需要检测的代码所在的目录由于上面我们已经切换到代码所在目录中所在只需要指定./即可如果前面按照我们这样操作则不需要更改-Dsonar.projectnamelinux-mytest随便指定一个名称作为sonar-scanner的项目名。-Dsonar.loginfa58b2f8903333918bfa22cf0bc07f3ac0e92435把刚刚复制的token粘贴上去需要根据自己生成的token进行更改⭐-Dsonar.projectKeylinux-mytest 随便指定一个名称。-Dsonar.java.binaries./target/ 指定我们gitlab上的项目生成的二进制文件也就是class类文件所在目录说白了也就是指定gitlab上的项目的target文件夹路径。 [rootcentos7-jenkins mytest]# /usr/local/docker/jenkins_docker/data/sonar-scanner/bin/sonar-scanner -Dsonar.source./ -Dsonar.projectnamelinux-mytest -Dsonar.loginfa58b2f8903333918bfa22cf0bc07f3ac0e92435 -Dsonar.projectKeylinux-mytest -Dsonar.java.binaries./target/Jenkins整合SonarQube进行代码质量检测⭐ 在Jenkins下载SonarQube Scanner插件⭐ 在Jenkins配置SonarQube系统配置⭐ 在Jenkins配置SonarQube全局配置⭐ 配置提示 1SONAR_RUNNER_HOME的值/var/jenkins_home/sonar-scanner 架构图第4步案例给Jenkins的mytest任务配置SonarQube自动进行代码质量检测重点⭐ 配置提示 Execute SonarQube Scanner下面的Analysis properties配置 sonar.projectname${JOB_NAME} sonar.projectKey${JOB_NAME} sonar.source./ sonar.java.binariestarget1由于我们刚刚案例执行过了一次所以要在Jenkins宿主机上先删除一个目录 [rootcentos7-jenkins ~]# rm -rf /usr/local/docker/jenkins_docker/data/workspace/mytest/.scannerwork/2开始配置 3测试构建可以看到我们的SonarQube已经整合到Jenkins中了 Harbor v2.4.2教程 下载安装Harbor⭐ 1先下载好Harbor然后通过xftp传到服务器上这里我们还是放在Jenkins所在的服务器上节约成本 Harbor v2.4.2下载链接 2查看是否上传成功可以看到上传成功了 [rootcentos7-jenkins ~]# ls | grep harbor harbor-offline-installer-v2.4.2.tgz3将Harbor解压到/usr/local下 tar -zxvf harbor-offline-installer-v2.4.2.tgz -C /usr/localcd /usr/local/harbor/4将harbor.yaml的模板文件复制一份 Harbor启动时只会加载harbor.yml而不会加载harbor.yml.tmpl cp harbor.yml.tmpl harbor.yml5修改harbor.yml vim harbor.yml6执行Harbor的install脚本文件在这之前必须要安装了Docker和Docker Compose。 当前所在的路径 [rootcentos7-jenkins harbor]# pwd /usr/local/harbor开始执行然后会加载一大堆的东西需要等一下 [rootcentos7-jenkins harbor]# ./install.sh访问Harbor⭐ 访问链接 harbor的ip地址:80端口 创建一个新的Harbor项目 将本地镜像mytest推送到Harbor仓库中⭐ 如何将本地镜像推送到Harbor仓库中最重要的一点就是要将镜像进行改名格式如下只有这样格式的镜像才能够被push到Harbor仓库 格式为Harbor地址/Harbor项目名/镜像名:版本 修改daemon.json文件添加insecure-registries配置⭐ 1进入编辑器 vi /etc/docker/daemon.json内容如下 只添加insecure-registries配置对应的值为你当前的Harbor地址 {registry-mirrors: [https://u01jo9qv.mirror.aliyuncs.com,https://hub-mirror.c.163.com,https://mirror.baidubce.com],insecure-registries: [192.168.184.80:80] }2重启Docker服务 systemctl restart docker给mytest镜像改名使其可以push到Harbor镜像仓库中⭐ 1改名之前先查看一下mytest镜像 [rootcentos7-jenkins harbor]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mytest v1.0.0 fc62ecfe296d 10 hours ago 661MB2给mytest镜像进行改名注意下面的镜像的IP地址一定要改成你当前Harbor的地址 mytest:v1.0.0旧镜像名称192.168.184.80:80/repo/mytest:v1.0.0新镜像名称 docker tag mytest:v1.0.0 192.168.184.80:80/repo/mytest:v1.0.03再次查看mytest镜像可以看到旧镜像和新镜像的IMAGE ID都是一样的可以说明这两个其实就是同一个镜像。只是名字不同罢了 [rootcentos7-jenkins harbor]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mytest v1.0.0 fc62ecfe296d 11 hours ago 661MB 192.168.184.80:80/repo/mytest v1.0.0 fc62ecfe296d 11 hours ago 661MB开始推送到Harbor仓库⭐ 1首先Docker要先登录Harbor仓库docker login 格式为docker login -u 用户名 -p 密码 Harbor地址注意我们Harbor默认的账号是admin密码是Harbor12345所以我们可以用这个账号密码去登录还有下面的Harbor地址别忘了改成你自己的Harbor地址。 docker login -u admin -p Harbor12345 192.168.184.80:802开始push [rootcentos7-jenkins harbor]# docker push 192.168.184.80:80/repo/mytest:v1.0.0 The push refers to repository [192.168.184.80:80/repo/mytest] 5f70bf18a086: Pushed 34589845b783: Pushed 35c20f26d188: Pushed c3fe59dd9556: Pushed 6ed1a81ba5b6: Pushed a3483ce177ce: Pushed ce6c8756685b: Pushed 30339f20ced0: Pushed 0eb22bfb707d: Pushed a2ae92ffcd29: Pushed v1.0.0: digest: sha256:b9504aee3cc90755bb237d9f91795b75f816558330657ffae4fd3ff92fdaee7d size: 24183查看是否成功Push到Harbor仓库 测试拉取Harbor镜像 1先删除原来的mytest镜像 [rootcentos7-jenkins harbor]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE 192.168.184.80:80/repo/mytest v1.0.0 fc62ecfe296d 25 hours ago 661MB mytest v1.0.0 fc62ecfe296d 25 hours ago 661MB[rootcentos7-jenkins harbor]# docker rmi -f fc62ecfe296d Untagged: 192.168.184.80:80/repo/mytest:v1.0.0 Untagged: 192.168.184.80:80/repo/mytestsha256:b9504aee3cc90755bb237d9f91795b75f816558330657ffae4fd3ff92fdaee7d Untagged: mytest:v1.0.0 Deleted: sha256:fc62ecfe296d996c03ac5ef9a0c073f5772aacf382e7f8215d18052d187079822拉取刚刚上传到Harbor仓库的mytest镜像注意这个Harbor镜像被我们设置为公开类型如果不是公开类型则不能这样拉取 80端口别忘了写。 [rootcentos7-jenkins harbor]# docker pull 192.168.184.80:80/repo/mytest:v1.0.0 v1.0.0: Pulling from repo/mytest 7448db3b31eb: Already exists c36604fa7939: Already exists 29e8ef0e3340: Already exists a0c934d2565d: Already exists a360a17c9cab: Already exists cfcc996af805: Already exists 2cf014724202: Already exists 4bc402a00dfe: Already exists bce9a3522658: Already exists 4f4fb700ef54: Already exists Digest: sha256:b9504aee3cc90755bb237d9f91795b75f816558330657ffae4fd3ff92fdaee7d Status: Downloaded newer image for 192.168.184.80:80/repo/mytest:v1.0.0 192.168.184.80:80/repo/mytest:v1.0.0Jenkins整合Harbor⭐ 让Jenkins容器内部可以使用Docker⭐ 默认情况下Jenkins容器内部是使用不了Docker的我们这次就是为了解决这种情况。 解决方法有两个我们使用的是第二种 第一种在Jenkins容器内部安装一个Docker。缺点是会占用很多的资源浪费容器空间不推荐使用。 第二种Jenkins容器内部使用宿主机的Docker也就是说Jenkins容器和宿主机共同使用同一个Docker。推荐 1切换目录到/var/run/ [rootcentos7-jenkins harbor]# cd /var/run/2修改docker.sock文件的所属组 [rootcentos7-jenkins run]# chown root:root docker.sock3修改docker.sock文件的权限 [rootcentos7-jenkins run]# chmod orw docker.sock4切换到Jenkins的docker-compose.yml文件的所在目录上 [rootcentos7-jenkins ~]# cd /root/jenkins/5如果启动了Jenkins的docker-compose文件则执行下面的down命令 [rootcentos7-jenkins jenkins]# docker-compose down6删除这个docker-compose文件 [rootcentos7-jenkins jenkins]# rm -rf docker-compose.yml7重新编辑Jenkins的docker-compose.yml文件其实就是在原来的Jenkins的docker-compose文件多添加了一些volume罢了所以干脆删除了重新编辑。 [rootcentos7-jenkins jenkins]# vi docker-compose.yml新文件内容如下 version: 3.1 services:jenkins:image: jenkins/jenkins:2.359container_name: jenkinsports:- 9200:8080- 50000:50000volumes:- /usr/local/docker/jenkins_docker/data/:/var/jenkins_home/- /var/run/docker.sock:/var/run/docker.sock- /usr/bin/docker:/usr/bin/docker- /etc/docker/daemon.json:/etc/docker/daemon.json8启动Jenkins的docker-compose docker-compose up -d9进入Jenkins容器内部测试现在是否可以使用Docker现在我们的Jenkins容器就可以使用Docker了 [rootcentos7-jenkins jenkins]# docker exec -it jenkins bash[rootcentos7-jenkins jenkins容器]# docker version架构图第5步案例Jenkins制作自定义镜像并上传到Harbor⭐ 1修改我们的springboot项目 2配置Jenkins 提示Execute shell的内容 修改点1下面的IP地址要改成你的Harbor的IP地址。修改点2harbor账号密码要是和我的不一样则也需要更改。 mv target/*.jar docker/ docker build -t mytest:$tag docker/ docker login -u admin -p Harbor12345 192.168.184.80:80 docker tag mytest:$tag 192.168.184.80:80/repo/mytest:$tag docker push 192.168.184.80:80/repo/mytest:$tag架构图第6-7步案例通知目标服务器可以从Harbor上拉取镜像并运行容器⭐ 1在所有目标服务器上都放一份shell脚本文件原理是Jenkins通知目标服务器去执行shell脚本文件从而让目标服务器在Harbor上面拉取指定镜像。 原来的架构图上是把Dockerfile传到目标服务器让目标服务器通过docker build构建镜像缺点是当目标服务器有多台那每一台目标服务器都需要build构建一次n台服务器就是n次这样十分浪费服务器资源。现在的架构图是把镜像在Jenkins容器内构建然后把镜像push到Harbor上Jenkins通知所有目标服务器不管有多少台然后目标服务器就会执行下面的shell脚本会从Harbor拉取指定镜像这样一来不管有多少台目标服务器都只是build构建一次节省了很多资源。 vi /root/deploy.sh内容如下 harbor_addr$1 harbor_repo$2 project$3 version$4 host_port$5 container_port$6imageName$harbor_addr/$harbor_repo/$project:$versioncontainerIddocker ps -a | grep ${project} | awk {print $1} if [ $containerId ! ] ; thendocker stop $containerIddocker rm $containerId fitagdocker images | grep ${project} | awk {print $2}if [[ $tag ~ $version ]] ; thendocker rmi -f $imageName fidocker login -u admin -p Harbor12345 $harbor_addrdocker pull $imageNamedocker run -d -p $host_port:$container_port --name $project $imageNameecho SUCCESS2给deploy.sh权限 chmod ax /root/deploy.sh3测试运行deploy.sh要更改对应的值 shell脚本参数传值解释 配置文件的$1为192.168.184.80:80 harbor_addr。harbor的地址配置文件的$2为repoharbor_repo。harbor的项目名配置文件的$3为mytestproject。拉取的镜像名配置文件的$4为v3.0.0version。拉取的镜像版本配置文件的$5为8082host_port。宿主机端口配置文件的$6为8082container_port。容器的端口 cd /root[rootcentos7-jenkins ~]# ./deploy.sh 192.168.184.80:80 repo mytest v3.0.0 8082 8082 3fd32cbb9557 3fd32cbb9557 Untagged: 192.168.184.80:80/repo/mytest:v3.0.0 Untagged: 192.168.184.80:80/repo/mytestsha256:bd9556efbf06af2fba04b482e318111266a725cc2b10edf215e1190874df06b3 WARNING! Using --password via the CLI is insecure. Use --password-stdin. WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded v3.0.0: Pulling from repo/mytest Digest: sha256:bd9556efbf06af2fba04b482e318111266a725cc2b10edf215e1190874df06b3 Status: Downloaded newer image for 192.168.184.80:80/repo/mytest:v3.0.0 192.168.184.80:80/repo/mytest:v3.0.0 2f73780159ee473a62e0d9e43874c8abcc7e173ac23ee0adfe162c442187e0f4 SUCCESS4查看项目镜像容器是否启动 [rootcentos7-jenkins ~]# docker ps | grep mytest 3fd32cbb9557 192.168.184.80:80/repo/mytest:v3.0.0 /bin/sh -c java -j… 38 seconds ago Up 37 seconds 0.0.0.0:8082-8082/tcp, :::8082-8082/tcp mytest5测试访问项目 6把所有目标服务器的deploy.sh都放到/usr/bin下 [rootcentos7-jenkins ~]# mv /root/deploy.sh /usr/bin/7配置两个端口的字符串参数宿主机端口和容器端口 8配置Jenkins构建后操作 提示 Exec command的内容 deploy.sh 192.168.184.80:80 repo ${JOB_NAME} $tag $host_port $container_port9测试构建
http://www.pierceye.com/news/523910/

相关文章:

  • 深圳网站建设类公司最大的网站开发公司
  • ps做图游戏下载网站有哪些内容百度ip地址
  • 网站到期续费吗网站首页缩略图 seo
  • 网站制作案例 立邦建立个人网站能赚钱吗
  • 重庆巨能建设集团网站网站seo置顶 乐云践新专家
  • 专业制作网站 上海黑糖 wordpress 主题
  • 数据库网站开发卡片风格网站
  • 信息发布平台建站网站服务器天付
  • 免费做网站方法北京公司排名seo
  • 网站备案登记表晋城市建设局 网站
  • 网站备案会检查空间运营策划
  • 关于做网站建筑人力网
  • 网站开发培训合肥企业解决方案工作组
  • 怎么看待网站开发做网站好赚钱
  • 网站开发工作方案建设网站用什么软件排版
  • 网站建设耂首先金手指建设一个电商网站需要多少钱
  • 网站建设需注意的企业网站建设好的例子
  • 30岁做网站运营优秀的html5网站
  • 专门做眼镜的网站国内重大新闻事件2021年10月
  • 具有价值的网站制作菜单宣传网站怎么做的
  • 做网站 博客信息网站开发网络公司
  • 网站建设有哪些荣誉做响应式网站好不好
  • 精品资料网站网站建立
  • 网站开发印花税营销咨询
  • 马鞍山建设集团有限公司网站找工程项目上哪个平台好呢
  • 网站建设发货流程图电子商务是什么
  • 与有权重网站做友链软件开发可以做网站么
  • html网站开发代码专业的网站开发团队
  • 聚美优品的网站建设状况wordpress 微商城
  • 网络营销型网站律师做推广的网站