Jenkins +svn +maven +tomcat+ ansible 自动化批量部署
Jenkins +svn +maven +tomcat+ ansible 自动化批量部署
一.部署svn
yum install subversion
先创建目录
mkdir /home/svn
创建版本库
1 cd /home/svn //先进入svn目录
2svnadmin create /home/svn/test //用svn管理员创建proname库
3 cd /home/svn/test //进入库
4.subversion目录说明
db目录:就是所有版本控制的数据存放文件。
hooks目录:放置hook脚本文件的目录。
locks目录:用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端。
format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)。
进入conf目录(该svn版本库配置文件)cd conf/
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
5.svn配置文件
[root@localhost conf]# vi svnserve.conf
[general]
anon-access = read
auth-access = write
authz-db = /home/svn/test/conf/authz
realm = /home/svn/test
权限配置
[root@localhost conf]# cat authz
########用户组############
manager = boss
server = server1,server2
clinet = client1,clinet2
art = art1,art2
design = design1,design2
##########权限##############
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
test=rw
配置密码
[root@localhost conf]# cat passwd
[users]
# harry = harryssecret
# sally = sallyssecret
test=test123
Svn启动命令
svnserve -d -r /home/svn/test
Svn链接工具使用小乌龟
二.下载jenkins安装包
首先去jenkins官网下载jenkins,官网有两个下载的选择:
如果是公司使用,建议选择左边的。
如果是个人使用,可以使用右边的
http://archives.jenkins-ci.org/war/2.121/jenkins.war
将该包直接放到tomcat /webapps下面即可,启动tomcat
部署tomcat
JAVA_HOME=/usr/local/java/jdk1.8.0_161
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
###########################################
直接写入到 tomcat 的catalina.sh 文件中。
JAVA_HOME=/usr/local/java/jdk1.8.0_161
CLASSPATH=$JAVA_HOME/lib/
CATALINA_BASE=/home/usr/local/tomcat
CATALINA_HOME=/home/usr/local/tomcat
JAVA_OPTS="-server -Xms3200m -Xmx3200m -XX:PermSize=256M -XX:MaxNewSize=1024m -XX:MaxPermSize=512m -Djava.awt.headless=true "
tar xf apache-tomcat-7.0.62.tar.gz
安装git
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
tar xf git-2.8.3.tar.gz
cd git-2.8.3/
make prefix=/usr/local/git all
make prefix=/usr/local/git install
三.部署maven
apache-maven-3.5.3-bin.tar.gz
tar xf apache-maven-3.5.3-bin.tar.gz
[root@localhost local]# cat /etc/profile
export PATH="$PATH:$MYSQL_HOME/bin"
export MAVEN_HOME=/usr/local/apache-maven-3.5.3
export PATH=$MAVEN_HOME/bin:$PATH:/usr/local/nexus/bin
export PATH=$PATH:/usr/local/git/bin
source
/etc/profile
[root@localhost local]# mvn -V
配置maven 文件
[root@localhost conf]# vi settings.xml
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
<mirror>
<id>nexus</id>
<name>internal nexus repository</name>
<url>http://192.168.10.148:8081/repository/maven-public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
<profile>
<id>env-dev</id>
<activation>
<property>
<name>target-env</name>
<value>dev</value>
</property>
</activation>
<properties>
<tomcatPath>/path/to/tomcat/instance</tomcatPath>
</properties>
</profile>
-->
<distributionManagement>
<repository>
<id>releases</id>
<name>Nexus Release Repository</name>
<url>http://192.168.10.148:8081/repository/maven-public/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://192.168.10.148:8081/repository/maven-public/</url>
</snapshotRepository>
</distributionManagement>
</profiles>
四:部署nexus 私有库
1.部署nexus
下载地址
https://www.sonatype.com/download-oss-sonatype
nexus-3.10.0-04-unix.tar.gz
tar xf nexus-3.10.0-04-unix.tar.gz
建立软连接 ln -s nexus-3.10.0-04 nexus
## 进入nexus的配置文件目录
cd nexus
## 拷贝一份配置文件,不要直接修改default文件
## nexus管理程序运行在jetty上,默认端口为8081
## 可以编辑nexus.properties修改
cp nexus-default.properties nexus.properties
## 配置运行时用户
cd nexus
## 编辑nexus.rc文件
vi nexus.rc
run_as_user=root
nexus start
初始帐号与密码:admin,admin123
五.配置安全信息
- 系统设置
- 安装插件
Maven Repository Server Plugin
Pipeline Maven Integration Plugin
- 可以点击test configure 成功会出提示
- 第二台主机ssh
- 添加保存
- 配置系统安全
六.新建项目
- 构建名字
七.项目构建配置
- 构建任务
- 源码管理
- 构建触发器
- 构建环境
- 构建
- 构建后操作
最后点击 ->应用—>保存
7立即构建, 成功会显示蓝色
.点击
- 成功。
八.配置ansible 使用自动批量分发部署。
Jenkins +svn +maven +tomcat+ ansible 自动化批量部署的更多相关文章
- Jenkins+SVN+maven+Tomcat构建自动化集成任务
Jenkins安装方法详解:https://www.cnblogs.com/lizhe860/p/9901257.html 一.安装maven插件 1.依次进入系统管理→插件管理→可选插件, 找到Ma ...
- 项目持续集成环境(jenkins + SVN + maven + tomcat)
整体流程 每次SVN上代码有变动,触发自动构建动作,并部署到服务器的tomcat上,具体流程: 1.SVN上提交代码修改 2.maven执行Goals 3.将web工程打成war包 4.关闭服务器的t ...
- Jenkins+SVN+Maven+shell 自动化部署实践
JAVA环境中利用Jenkins+svn+maven进行自动化部署实践 一. 前言2 1.介绍jenkins2 1.本地项目打包2 2.通过secureCRT工具,手动传输到服务器2 3.然后 ...
- jenkins+Gitlab+maven+tomcat实现自动集成、打包、部署
一.前言 首先出于提高自己技术水平和琢磨能做点什么能提高工作效率,上线工作实在无聊.重复(手动编译.打包,传包,重启),于是就想到了jenkins,jenkins持续集成已经不是什么新鲜的话题,网上文 ...
- Jenkins+svn+ant+tomcat持续集成
转载自 http://www.cnblogs.com/liuhaixia/p/7267473.html Jenkins是基于Java开发的一种持续集成工具,用于监控秩序重复的工作.通过Jenkins+ ...
- JavaWeb+SVN+Maven+Tomcat +jenkins实现自动化部署
网址:https://blog.csdn.net/liyong1028826685/article/details/88289218 在日常开发项目中常见的开发模式是使用代码库来存放我们的项目例如:S ...
- Docker搭建Jenkins+Gogs+Maven/Gradle——代码自动化运维部署平台(三)
一.简介 1.CI/CD CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法.CI/CD 的核心概念是持续集成.持续交付和持续部署.作为一个面向开发和运营团队的解决方案,CI/C ...
- Jenkins2.32.1+svn+maven安装配置与构建部署
这两天学习了一下持久化集成工具Jenkins,在自己的本地搭建一个简单的Jenkins环境. 使用环境:Windows64系统,JDK1.8,eclipse,svn(Windows版本VisualSV ...
- Jenkins+svn+maven
首先我们在我们的服务器上安装好svn和maven 这里在前两步骤基本上没有啥问题,主要就是在Jenkins的步骤我弄了好长时间,这里记录一下 Jenkins的问题我是在这个网址解决的:http://b ...
随机推荐
- EF CodeFirst下的自动迁移
当我们修改数据模型,添加一个如下字段 再次运行程序,会因为数据库结构与模型不一致而报错 为解决以上错误可以采取以下三种方式 1. 删除数据库,重新运行站点,会重新生成数据库,这样就会丢失数据 2. ...
- 生成器-yield初接触
什么是生成器? 生成器的实质就是迭代器 在python中有三种方式来获取生成器 1. 通过生成器函数 2. 通过各种推导式实现生成器 3. 通过数据的转换也可以获取生成器 将函数中的return换成y ...
- 内置数据结构(str)
一.字符串(str) 1.字符串在python2版本中为一个byte序列,在python3版本中为一个unicode序列,并且字符串是不可变的. sr = str() sr = 'string' sr ...
- 通过 python-xmp-toolkit 读取图片xmlp信息
这个模块使用很简单,下面是示例: file_name = '/path/to/xxx.JPG' from libxmp import XMPFiles, constsxmpfile = XMPFile ...
- JPA规范实现
JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. JPA 是 JCP定义的一种规范,要使用此规 ...
- CORS跨域与Nginx反向代理跨域优劣对比
最近写了一些关于前后端分离项目之后,跨域相关方案的基本原理和常见误区的帖子,主要包括CORS和Nginx反向代理.这两种方案项目中都有在用,各有优缺,关于具体使用哪种方案,大家的观点也不大一致,本文主 ...
- Django在admin模块中显示auto_now_add=True或auto_now=True的时间类型列
转载自: http://www.tuicool.com/articles/ZryE7f 在Django如果model中的列定义了auto_now_add或auto_now属性,那么这种列不会在admi ...
- 横向滑动页面,导航条滑动居中的 js 实现思路
最近在做新闻咨询页的项目,各个新闻频道通过横向滑动切换,顶部的导航active栏需要跟着切换到对应频道,并且active到达中部时,要一直处在中间. 类似效果就是uc浏览器<UC头条>的导 ...
- JDBC连接池使用
一:一个服务在操作数据库的操作的时候,连接和关闭资源是很消耗系统的资源,不能再每次用户操作数据库的时候,都需要重新建立连接和 关闭连接. 如果这样操作的话,对系统和用户来说,都会消耗大量的资源.所以操 ...
- Kafka设计解析(十七)Kafka 0.11客户端集群管理工具AdminClient
转载自 huxihx,原文链接 Kafka 0.11客户端集群管理工具AdminClient 很多用户都有直接使用程序API操作Kafka集群的需求.在0.11版本之前,kafka的服务器端代码(即添 ...