项目管理一:从svn到Jenkins部署

本文详细介绍了如何从零开始搭建一套完整的持续集成环境,包括安装配置svn、Jenkins、Docker、Docker Compose、Nexus以及Tomcat。通过Docker Compose搭建Nexus私服,配置Maven和Jenkins进行项目部署,最后通过Jenkins实现自动化部署到Tomcat服务器,确保了代码版本管理和持续集成的高效运行。
摘要由CSDN通过智能技术生成

从svn到Jenkins部署案例

所需环境: svn环境、docker环境、maven环境、jdk环境、centos8、tomcat、Jenkins、nexus
如果不需要docker 不需要maven私服 可以不需要安装 直接忽略
案例搭建的环境会多一点,实际上只需要svn和Jenkins和tomcat就可以

环境搭建

搭建jdk

本次使用jdk1.8版本,下载jdk版本 jdk-8u241-linux-x64.tar.gz
上传到centos服务器解压 tar -zxvf jdk-8u241-linux-x64.tar.gz
配置环境变量:# vim /etc/profile

export JAVA_HOME=/usr/local/java/jdk/jdk1.8.0_241
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

执行source /etc/profile
查看jdk是否安装成功 java -version
在这里插入图片描述
出现这个表示成功

搭建maven

和jdk类似同样下载解压配置环境变量。
最终的profile文件

export JAVA_HOME=/usr/local/java/jdk/jdk1.8.0_241
export M2_HOME=/usr/local/java/maven/apache-maven-3.6.3
export PATH=$JAVA_HOME/bin:$M2_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

测试maven是否安装成功:mvn -version
在这里插入图片描述
出现这个表示成功

搭建docker环境

搭建docker

centos7: $ sudo yum install docker
centos8:

#centos8直接yum后启动会出错Failed to start docker.service: Unit not found,需要使用centos8的步骤。
#卸载docker:
yum -y  remove docker  docker-common docker-selinux docker-engine
#安装yum-config-manager命令:
yum -y install yum-utils
#设置yum源:
#阿里云yum源
yum-config-manager  --add-repo  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
#安装新版的containerd.io软件包
wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
yum -y install containerd.io-1.2.6-3.3.el7.x86_64.rpm 
#安装完成后重新安装Docker
yum -y install docker-ce

测试是否安装成功:docker -v
在这里插入图片描述
表示成功
设置开机自启:systemctl enable docker

搭建dockercompose

安装:

curl -L https://github.com/docker/compose/releases/download/1.23.0-rc3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose version

在这里插入图片描述
表示成功

搭建svn

安装:yum install subversion
测试svn安装是否成功:svn --version 出现一大串信息表示成功
创建svn文件夹 将所有版本库都放到这个文件夹中
创建版本库:svnadmin create 版本库路径
版本库创建好,会出现conf文件夹,该文件夹有svn的配置文件

  • svnserve.conf:服务配置
  • passwd:用户账号密码
  • authz :用户权限

修改svnserve.conf:该文件仅由一个[general]配置段组成。
[general]
anon-access = none #j不允许匿名访问
auth-access = write
password-db = passwd #passwd文件的目录
authz-db = authz #authz文件的目录

在passwd 配置用户名密码
[users]
用户名 = 密码

在authz 配置用户名的访问权限
[/]
l用户名 = rw
表示在svn启动路径下的该用户的权限为可读可写
启动svn:svnserve -d -r /usr/local/svn

搭建nexus

通过dockercompose搭建私服
创建docker-compose.yml文件

version: '3'
services:
  nexus:
   image: sonatype/nexus3
   restart: always
   container_name: nexus
   ports:
      - "8081:8081"
   volumes:
      - /usr/local/nexus/data:/nexus-data

启动 docker-compose up -d
访问http://ip:8081/
在这里插入图片描述
如果nexus3占用内存太大 内存不足的话使用nexus2版本

version: '3'
services:
  nexus:
   image: sonatype/nexus
   restart: always
   container_name: nexus
   ports:
      - "8081:8081"
   volumes:
      - /usr/local/nexus/data:/nexus-data
        # - /usr/local/nexus/conf:/opt/sonatype/nexu

第一次启动需要把conf这行给注释掉否则报错
在这里插入图片描述
启动后 通过docker cp nexus:/opt/sonatype/nexus/conf ./
nexus 是容器名 /opt/sonatype/nexus/conf 容器内文件的路径 ./表示复制到当前路径
然后开启 # - /usr/local/nexus/conf:/opt/sonatype/nexu 这一行
再次启动
在这里插入图片描述
访问http://ip:8081/nexu
如果出现这种情况
在这里插入图片描述
解决方案:在复制出来的conf中找到nexus.properties
修改nexus.properties
nexus-webapp-context-path=/nexus
再次访问
在这里插入图片描述
项目pom文件配置

<repositories>
		<repository>
			<id>public</id>
			<name>nexus</name>
			<url>http://ip:8081/nexus/content/groups/public/</url>
			<releases>
				<enabled>true</enabled>
			</releases>
		</repository>
</repositories>
<pluginRepositories>
	<pluginRepository>
		<id>public</id>
		<name>nexus</name>
		<url>http://ip:8081/nexus/content/groups/public/</url>
		<releases>
			<enabled>true</enabled>
		</releases>
		<snapshots>
			<enabled>false</enabled>
		</snapshots>
	</pluginRepository>
</pluginRepositories>
<distributionManagement>
		<repository>
			<id>nexus-release</id>
			<name>nexus release</name>
			<url>http://ip:8081/nexus/content/repositories/releases/</url>
		</repository>
		<snapshotRepository>
			<id>nexus-snapshot</id>
			<name>nexus snapshot</name>
			<url>http://ip:8081/nexus/content/repositories/snapshots/</url>
		</snapshotRepository>
</distributionManagement>

maven settings 文件配置 快照和发布版的用户名和密码

<server>
	<id>nexus-snapshot</id>
	<username>deployment</username>
	<password>deployment123</password>
</server>
<server>
	<id>nexus-release</id>
	<username>deployment</username>
	<password>deployment123</password>
</server>

其中id要和pom文件distributionManagement里面的快照、发布版的id相同
执行mvn clean deploy 就可以部署到nexus

搭建tomcat

通过docker compose搭建tomcat

version: '3'
services:
  tomcat:
    restart: always
    image: tomcat:8.5.59-jdk8
    container_name: tomcat8
    environment:
      TZ: Asia/Shanghai
      JAVA_OPTS: -Xms1024m -Xmx1024m  -XX:+UnlockCommercialFeatures -XX:+FlightRecorder
    volumes:
      - ./conf:/usr/local/tomcat/conf
      - ./logs:/usr/local/tomcat/logs
      - ./webapps:/usr/local/tomcat/webapps
    ports:
      - 8080:8080

conf目录需要从容器cp,初次启动可注释掉 - ./conf:/usr/local/tomcat/conf
启动以后执行 docker cp tomcat8:/usr/local/tomcat/conf ./
tomcat8是容器的名称,/usr/local/tomcat/conf是容器内的路径 ./表示本机的当前路径
这样就可以把容器内的配置文件拷贝出来

搭建Jenkins完成部署

下载:https://jenkins.io/download/
jenkins 支持Docker、yum、msi 等安装,在这里推荐大家直接选择war包
通过java -jar 命令启动 或者放入tomcat等容器启动都可以 默认端口8080
nohup java -jar jenkins.war &
首次启动需要密码验证和插件安装 密码验证根据查找 插件安装选择默认的就好 其他根据提示配置
在这里插入图片描述
在这里插入图片描述
等待插件安装完成
然后配置管理员账号即可
在这里插入图片描述
安装完成
安装其他插件
更换站点源:使用默认的源站点下载会慢
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将原来的站点地址更改为:http://mirror.esuni.jp/jenkins/updates/update-center.json?
下面开始安装插件:本次需要安装的插件有svn、maven和容器部署的插件
在这里插入图片描述
在搜索处 搜索 Maven Integration、Deploy to container、subversion 然后安装
在这里插入图片描述
在这里插入图片描述
其他同理 安装完成后重启
配置全局环境
主要配置java、maven、
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

开始项目搭建:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
主要配置源码管理、build、构建后操作
源码管理
在这里插入图片描述
bulid配置
在这里插入图片描述
如果是项目的话,clean install 就好 ;如果是模块需要发布到私服,clean deploy

配置构建后操作
将构建后的项目部署到tomcat
在这里插入图片描述
在这里插入图片描述
第一次构建需要从svn拉去代码,构建成功失败不重要,需要先把代码拉下来
在这里插入图片描述
这就是这个项目的工作环境,代码都在工作区中
在这里插入图片描述
配置tomcat
想要把war部署到tomcat ,tomcat容器中必须要有manager项目,在这里插入图片描述
如果tomcat中没有的话就从其他的tomcat中复制一份
在tomcat目录下编辑conf/tomcat-users.xml
在这里插入图片描述




这样这个流程就配置好了。
访问http://ip:port/manager/
在这里插入图片描述
如果出现这个需要在manager/META-INF/context.xml下 将
在这里插入图片描述
注释
再次访问 需要输入用户名和密码 这个之前配置的admin
在这里插入图片描述
出现这个表示成功

重新构建项目
在这里插入图片描述
出现success表示部署完成

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值