使用Jenkins管理多个服务器

Jenkins作为一个CI工具在各种插件的加持下可以变成一个十分强大的工具,可以实现对各个平台代码的持续集成和部署。 甚至可以通过一些方法对多个节点进行同步更新代码等操作。 例如if.uy 多节点ping服务,目前ping节点服务器使用python3编写。虽然代码只有短短几百行但是如果每次更新都得手动上服务器对代码进行更新的话无疑是一件浪费时间精力的实情。所以为了防止因更新太频繁而放弃更新的情况出现,需要使用一种方法一次更新多节点自动同步的方案。 提出方案 所以根据需求可以设计出以下几种方案: flask debug 模式热更新代码 Zookeeper 统一管理节点 jenkins Publish over SSH 插件管理节点 ...

一月 5, 2019 · 猫贩子薛定谔

使用Maven、jenkins、docker实现持续集成

之前使用过jenkins+maven的方法自动构建项目并推送到tomcat的方法–>传送门 由于spring boot/cloud等的微服务的流行,人们更喜欢即开即用的方式。docker作为一个免费开源的容器,越来越多的应用也都会存在一个docker版本(比如jenkins、gitlab)。不过spring boot只需要一句命令就能启动也可以不需要创建一个docker版本。 安装 必须的系统环境: Jdk(推荐还是用Oracle JDK,Jenkins执行编译的过程还是需要Oracle JDK的,方便起见替换掉系统的openjdk) Maven Docker Git Jenkins docker hub 配置 使用docker官方的registry保存镜像,并不知道有没有限制。 创建一个私有Repo,repository的名称将作为镜像的名称 Maven配置 使用Maven构建docker镜像的话需要使用docker-maven-plugin 在pom.xml添加插件和配置信息,根据官方的实例修改配置 <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.11</version> <configuration> <!-- 目标位置 --> <serverId>docker-hub</serverId> <!-- 用户名/镜像名 --> <imageName>tusik/web</imageName> <!-- Dockerfile的位置 --> <dockerDirectory>src/main/docker</dockerDirectory> <pushImage>true</pushImage> <!-- 镜像的标签,project.version在properties标签下添加 --> <imageTags> <imageTag>${project.version}</imageTag> <imageTag>latest</imageTag> </imageTags> <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint> <!-- copy the service's jar file from target into the root directory of the image --> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> 根据上面的配置在Maven的setting.xml下添加全局的docker hub信息 ...

七月 29, 2018 · 猫贩子薛定谔

Jenkins maven自动部署

吾选择的是Java的后台开发方向,目前只学到SSH和SSM的开发,之前虽然是在比赛中做了几个后台,但是都是使用的祖传代码,是上上届流传下来的代码。我也只能从这代码中进行修改,每次都得打包成war然后再发布到TOMCAT上,每次改代码都得手动部署真是麻烦。 后来听说jenkins可以做持续集成,于是把新的项目都改成maven部署过程就节省了大部分时间。 ...

九月 26, 2017 · 猫贩子薛定谔