提交 e1c6e3cc authored 作者: chenshiying's avatar chenshiying

[新增] 配置修改 添加准生产环境配置生成

上级 80860dfa
......@@ -37,6 +37,7 @@ build/
**/src/main/resources/bin/server/**
**/src/main/resources/bin/jenkins/**
**/src/main/resources/bin/jenkinsDeploy/**
**/src/main/resources/bin/jenkinsGit/**
**/src/main/resources/bin/jenkinsPush/**
**/src/main/resources/bin/elk/**
......
package com.loit.common.script;
import com.loit.common.script.dto.BackendFrontEnum;
import com.loit.common.script.dto.BuildEnvEnum;
import com.loit.common.script.dto.DeployInfoDataDTO;
import com.loit.common.script.dto.FrontInstanceDto;
import com.loit.common.utils.ListUtil;
......@@ -26,9 +27,13 @@ public class GeneratorDeployJobScript {
protected static String root_path = "F:\\9Git140\\loit-build-common\\loit-build-component\\loit-build-deploy-env\\src\\main\\resources\\bin";
protected static String root_path_jenkins_full = root_path + "\\jenkins";
/**
* 构建环境 生产或者 准生产
* TODO 构建前需修改环境
*/
private static BuildEnvEnum buildEnvEnum = BuildEnvEnum.PRE_PRODUCT;
private static Map<String, FrontInstanceDto> frontInstanceDtoMap = new LinkedHashMap<>();
protected static String root_path_jenkins_full = root_path + "\\jenkinsDeploy";
public static void main(String[] args) {
......@@ -71,7 +76,7 @@ public class GeneratorDeployJobScript {
*/
private static void buildInitEnv(DeployInfoDataDTO grayVersionDataDTO) {
String fileDir = root_path_jenkins_full;
String fileDir = root_path_jenkins_full + "\\" + buildEnvEnum.getCode();
File folder = new File(fileDir);
if (!folder.exists()) {
......@@ -88,7 +93,7 @@ public class GeneratorDeployJobScript {
return;
}
String createJobFile = root_path_jenkins_full + "\\createJob.txt";
String createJobFile = root_path_jenkins_full + "\\" + buildEnvEnum.getCode() + "\\createJob.txt";
String jenkinsJobName = createJenkinsJobName(grayVersionDataDTO);
String deployShFileName = "deploy-" + serviceName + "-" + port + ".sh";
......@@ -102,10 +107,10 @@ public class GeneratorDeployJobScript {
model.put("floatingIp", floatingIp);
model.put("deployJar", deployJar);
String result = FreeMarkerUtils.process("deploy\\jenkinsJobCreate.ftl", model);
String result = FreeMarkerUtils.process("deploy" + "\\" + buildEnvEnum.getCode() + "\\jenkinsJobCreate.ftl", model);
FileUtils.appendNewLine(createJobFile, result);
String jobsDir = root_path_jenkins_full + "\\" + jenkinsJobName;
String jobsDir = root_path_jenkins_full + "\\" + buildEnvEnum.getCode() + "\\" + jenkinsJobName;
File jobsFolder = new File(jobsDir);
if (!jobsFolder.exists()) {
jobsFolder.mkdirs();
......@@ -113,12 +118,12 @@ public class GeneratorDeployJobScript {
BackendFrontEnum backendFrontType = BackendFrontEnum.getEnumByCode(grayVersionDataDTO.getBackendFrontType());
if (BackendFrontEnum.BACKEND.equals(backendFrontType)) {
String configFilePath = jobsDir + "\\config.xml";
String jobConfig = FreeMarkerUtils.process("deploy\\jobConfigBackend.ftl", model);
String jobConfig = FreeMarkerUtils.process("deploy" + "\\" + buildEnvEnum.getCode() + "\\jobConfigBackend.ftl", model);
FileUtils.appendNewLine(configFilePath, jobConfig);
} else {
String configFilePath = jobsDir + "\\config.xml";
String jobConfig = FreeMarkerUtils.process("deploy\\jobConfigFront.ftl", model);
String jobConfig = FreeMarkerUtils.process("deploy" + "\\" + buildEnvEnum.getCode() + "\\jobConfigFront.ftl", model);
FileUtils.appendNewLine(configFilePath, jobConfig);
}
......
package com.loit.common.script;
import com.loit.common.script.dto.BackendFrontEnum;
import com.loit.common.script.dto.DeployInfoDataDTO;
import com.loit.common.script.dto.FrontGroupEnum;
import com.loit.common.script.dto.FrontInstanceDto;
import com.loit.common.script.dto.*;
import com.loit.common.utils.ListUtil;
import com.loit.common.utils.StringUtils;
import com.loit.common.utils.excel.ImportExcel;
......@@ -28,6 +25,12 @@ public class GeneratorPushScript {
protected static String root_path = "F:\\9Git140\\loit-build-common\\loit-build-component\\loit-build-deploy-env\\src\\main\\resources\\bin";
/**
* 构建环境 生产或者 准生产
* TODO 构建前需修改环境
*/
private static BuildEnvEnum buildEnvEnum = BuildEnvEnum.PRE_PRODUCT;
protected static String root_path_jenkins_full = root_path + "\\jenkinsPush";
private static Map<String, FrontInstanceDto> frontInstanceDtoMap = new LinkedHashMap<>();
......@@ -115,7 +118,7 @@ public class GeneratorPushScript {
*/
private static void buildInitEnv(FrontInstanceDto frontInstanceDto) {
String fileDir = root_path_jenkins_full;
String fileDir = root_path_jenkins_full + "\\" + buildEnvEnum.getCode();
File folder = new File(fileDir);
if (!folder.exists()) {
......@@ -128,24 +131,24 @@ public class GeneratorPushScript {
return;
}
String createJobFile = root_path_jenkins_full + "\\createJob.txt";
String createJobFile = root_path_jenkins_full + "\\" + buildEnvEnum.getCode() + "\\createJob.txt";
String jenkinsJobName = createJenkinsJobName(serviceName);
Map model = new HashMap();
model.put("deployJobName", jenkinsJobName);
String result = FreeMarkerUtils.process("push\\jenkinsJobCreateZww.ftl", model);
String result = FreeMarkerUtils.process("push" + "\\" + buildEnvEnum.getCode() + "\\jenkinsJobCreateZww.ftl", model);
FileUtils.appendNewLine(createJobFile, result);
String jobsDir = root_path_jenkins_full + "\\" + jenkinsJobName;
String jobsDir = root_path_jenkins_full + "\\" + buildEnvEnum.getCode() + "\\" + jenkinsJobName;
File jobsFolder = new File(jobsDir);
if (!jobsFolder.exists()) {
jobsFolder.mkdirs();
}
String configFilePath = jobsDir + "\\config.xml";
String jobConfig = FreeMarkerUtils.process("push\\zww-push-config.ftl", model);
String jobConfig = FreeMarkerUtils.process("push" + "\\" + buildEnvEnum.getCode() + "\\zww-push-config.ftl", model);
FileUtils.appendNewLine(configFilePath, jobConfig);
}
......
package com.loit.common.script;
import com.loit.common.script.dto.BackendFrontEnum;
import com.loit.common.script.dto.DeployInfoDataDTO;
import com.loit.common.script.dto.FrontGroupEnum;
import com.loit.common.script.dto.FrontInstanceDto;
import com.loit.common.script.dto.*;
import com.loit.common.utils.ListUtil;
import com.loit.common.utils.StringUtils;
import com.loit.common.utils.excel.ImportExcel;
......@@ -28,8 +25,13 @@ public class GeneratorScript {
protected static String root_path = "F:\\9Git140\\loit-build-common\\loit-build-component\\loit-build-deploy-env\\src\\main\\resources\\bin";
/**
* 构建环境 生产或者 准生产
* TODO 构建前需修改环境
*/
private static BuildEnvEnum buildEnvEnum = BuildEnvEnum.PRE_PRODUCT;
protected static String root_path_full = root_path + "\\server";
protected static String root_path_full = root_path + "\\server" + "\\" + buildEnvEnum.getCode() ;
private static Map<String, FrontInstanceDto> frontInstanceDtoMap = new LinkedHashMap<>();
......@@ -174,7 +176,7 @@ public class GeneratorScript {
String nginxConfigShFileName = fileDir + "\\copyNginxConfig.sh";
String nginxConfigShResult = FreeMarkerUtils.process("sh\\copyNginxConfig.ftl", null);
String nginxConfigShResult = FreeMarkerUtils.process("sh"+ "\\" + buildEnvEnum.getCode() + "\\copyNginxConfig.ftl", null);
FileUtils.write(nginxConfigShFileName, nginxConfigShResult);
}
......@@ -219,12 +221,12 @@ public class GeneratorScript {
model.put("serviceNameAbb", serviceNameAbb);
model.put("springProfilesActive", springProfilesActive);
String result = FreeMarkerUtils.process("sh\\bootstrap.ftl", model);
String result = FreeMarkerUtils.process("sh"+ "\\" + buildEnvEnum.getCode() + "\\bootstrap.ftl", model);
FileUtils.write(bootstrapFileName, result);
String deployShFileName = fileDir + "\\deploy-" + serviceName + "-" + port + ".sh";
String deployShResult = FreeMarkerUtils.process("sh\\deploy-sh.ftl", model);
String deployShResult = FreeMarkerUtils.process("sh" + "\\" + buildEnvEnum.getCode() + "\\deploy-sh.ftl", model);
FileUtils.write(deployShFileName, deployShResult);
}
......@@ -270,16 +272,16 @@ public class GeneratorScript {
model.put("frontGroup", frontGroup);
String deployShFileName = fileDir + "\\deploy-" + serviceName + "-" + port + ".sh";
String deployShResult = FreeMarkerUtils.process("sh\\deploy-web-sh.ftl", model);
String deployShResult = FreeMarkerUtils.process("sh" + "\\" + buildEnvEnum.getCode() + "\\deploy-web-sh.ftl", model);
if ("portal-web".equals(serviceName)) {
deployShResult = FreeMarkerUtils.process("sh\\deploy-portal-web-sh.ftl", model);
deployShResult = FreeMarkerUtils.process("sh" + "\\" + buildEnvEnum.getCode() + "\\deploy-portal-web-sh.ftl", model);
}
FileUtils.write(deployShFileName, deployShResult);
if (StringUtils.isNotBlank(nginxConfigName)) {
String nginxName = root_path_full + "\\" + fixedIp + "\\nginxConfig" + "\\" + nginxConfigName;
String nginxConfigResult = FreeMarkerUtils.process("sh\\nginx_config.ftl", model);
String nginxConfigResult = FreeMarkerUtils.process("sh"+ "\\" + buildEnvEnum.getCode() + "\\nginx_config.ftl", model);
FileUtils.write(nginxName, nginxConfigResult);
}
......@@ -291,7 +293,7 @@ public class GeneratorScript {
String nginxConfigDir = root_path_full + "\\zww-nginx.conf";
FileUtils.appendNewLine(nginxConfigDir, "----------------------------------" + model.get("serviceName") + "----------------------------------");
String nginxConfig = FreeMarkerUtils.process("sh\\zww-nginx-upstream.ftl", model);
String nginxConfig = FreeMarkerUtils.process("sh"+ "\\" + buildEnvEnum.getCode() + "\\zww-nginx-upstream.ftl", model);
FileUtils.appendNewLine(nginxConfigDir, nginxConfig);
}
......@@ -300,7 +302,7 @@ public class GeneratorScript {
String nginxConfigDir = root_path_full + "\\hlw-nginx.conf";
FileUtils.appendNewLine(nginxConfigDir, "----------------------------------" + model.get("serviceName") + "----------------------------------");
String nginxConfig = FreeMarkerUtils.process("sh\\hlw-nginx-upstream.ftl", model);
String nginxConfig = FreeMarkerUtils.process("sh"+ "\\" + buildEnvEnum.getCode() + "\\hlw-nginx-upstream.ftl", model);
FileUtils.appendNewLine(nginxConfigDir, nginxConfig);
}
......@@ -309,7 +311,9 @@ public class GeneratorScript {
String nginxConfigDir = root_path_full + "\\gateway.conf";
FileUtils.appendNewLine(nginxConfigDir, "----------------------------------" + model.get("serviceName") + "----------------------------------");
String nginxConfig = FreeMarkerUtils.process("sh\\gateway.ftl", model);
String nginxConfig = FreeMarkerUtils.process("sh" + "\\" + buildEnvEnum.getCode() + "\\gateway.ftl", model);
FileUtils.appendNewLine(nginxConfigDir, nginxConfig);
}
}
package com.loit.common.script.dto;
/**
* 构建环境
*/
public enum BuildEnvEnum {
/**
* 生产
*/
PRODUCT("product", "生产"),
/**
* 准生产
*/
PRE_PRODUCT("preProduct", "准生产");
private String code;
private String name;
private BuildEnvEnum(String code, String name) {
this.code = code;
this.name = name;
}
public String getName() {
return name;
}
public String getCode() {
return code;
}
/**
* 根据Code 获取枚举
*/
public static BuildEnvEnum getEnumByCode(String code) {
for (BuildEnvEnum bfEnum : BuildEnvEnum.values()) {
if (bfEnum.getCode().equals(code)) {
return bfEnum;
}
}
return null;
}
}
curl -X POST -u admin:adminloit -H "Content-Type:application/xml" -d "@config.xml" http://192.169.200.175:12012/createItem?name=${deployJobName}
<?xml version='1.1' encoding='UTF-8'?>
<project>
<actions/>
<description></description>
<keepDependencies>false</keepDependencies>
<properties>
<com.dabsquared.gitlabjenkins.connection.GitLabConnectionProperty plugin="gitlab-plugin@1.5.13">
<gitLabConnection>gitlab140</gitLabConnection>
</com.dabsquared.gitlabjenkins.connection.GitLabConnectionProperty>
<jenkins.model.BuildDiscarderProperty>
<strategy class="hudson.tasks.LogRotator">
<daysToKeep>-1</daysToKeep>
<numToKeep>3</numToKeep>
<artifactDaysToKeep>-1</artifactDaysToKeep>
<artifactNumToKeep>-1</artifactNumToKeep>
</strategy>
</jenkins.model.BuildDiscarderProperty>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.StringParameterDefinition>
<name>deployName</name>
<description>文件名称</description>
<defaultValue></defaultValue>
<trim>true</trim>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>modelVersion</name>
<description>模块版本</description>
<defaultValue></defaultValue>
<trim>true</trim>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>modelServiceName</name>
<description>模块服务名</description>
<defaultValue></defaultValue>
<trim>true</trim>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>projectCode</name>
<description>项目编号</description>
<defaultValue></defaultValue>
<trim>true</trim>
</hudson.model.StringParameterDefinition>
<hudson.model.ChoiceParameterDefinition>
<name>status</name>
<description>start 启动 ,stop停止,deploy部署
(deploy代码传递参数,界面不要选择此项)</description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>start</string>
<string>stop</string>
<string>deploy</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
</properties>
<scm class="hudson.scm.NullSCM"/>
<canRoam>true</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<authToken>1156ddb265bc6ec3c190a17d74735d8f28</authToken>
<triggers/>
<concurrentBuild>false</concurrentBuild>
<builders>
<hudson.tasks.Shell>
<command>
echo &quot;###################begin start#############&quot;
echo &apos;deployName:&apos; + $deployName
echo &apos;modelServiceName:&apos; + $modelServiceName
echo &apos;modelVersion:&apos; + $modelVersion
echo &apos;projectCode:&apos; + $projectCode
echo &apos;status:&apos;+ $status
echo &quot;###################end print#############&quot;
echo &quot;###################begin write#############&quot;
rm -rf updowncommand.txt
echo $status &gt; updowncommand.txt
echo &quot;###################end write###############&quot;
ls -la
if [ &quot;$status&quot; = &quot;deploy&quot; ]; then
rm -rf $deployName
destDir=&quot;/home/version/push-jar/${r"${"}projectCode}/${r"${"}modelServiceName}/${r"${"}modelVersion}/${r"${"}deployName}&quot;
echo &apos;destDir:&apos; + $destDir
# copy jar to jenkins container
scp root@10.0.120.26:$destDir .
echo &quot;################### jar file#############&quot;
ls -la
fi
</command>
</hudson.tasks.Shell>
</builders>
<publishers>
<jenkins.plugins.publish__over__ssh.BapSshPublisherPlugin plugin="publish-over-ssh@1.20.1">
<consolePrefix>SSH: </consolePrefix>
<delegate plugin="publish-over@0.22">
<publishers>
<jenkins.plugins.publish__over__ssh.BapSshPublisher plugin="publish-over-ssh@1.20.1">
<configName>${floatingIp}(${fixedIp})</configName>
<verbose>false</verbose>
<transfers>
<jenkins.plugins.publish__over__ssh.BapSshTransfer>
<remoteDirectory>${deployPath}</remoteDirectory>
<sourceFiles>${deployJar},updowncommand.txt</sourceFiles>
<excludes></excludes>
<removePrefix></removePrefix>
<remoteDirectorySDF>false</remoteDirectorySDF>
<flatten>false</flatten>
<cleanRemote>false</cleanRemote>
<noDefaultExcludes>false</noDefaultExcludes>
<makeEmptyDirs>false</makeEmptyDirs>
<patternSeparator>[, ]+</patternSeparator>
<execCommand>
cd ${deployPath}
exec bash ${deployShFileName} start
</execCommand>
<execTimeout>120000</execTimeout>
<usePty>true</usePty>
<useAgentForwarding>false</useAgentForwarding>
</jenkins.plugins.publish__over__ssh.BapSshTransfer>
</transfers>
<useWorkspaceInPromotion>false</useWorkspaceInPromotion>
<usePromotionTimestamp>false</usePromotionTimestamp>
</jenkins.plugins.publish__over__ssh.BapSshPublisher>
</publishers>
<continueOnError>false</continueOnError>
<failOnError>false</failOnError>
<alwaysPublishFromMaster>false</alwaysPublishFromMaster>
<hostConfigurationAccess class="jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin" reference="../.."/>
</delegate>
</jenkins.plugins.publish__over__ssh.BapSshPublisherPlugin>
</publishers>
<buildWrappers/>
</project>
<?xml version='1.1' encoding='UTF-8'?>
<project>
<actions/>
<description></description>
<keepDependencies>false</keepDependencies>
<properties>
<com.dabsquared.gitlabjenkins.connection.GitLabConnectionProperty plugin="gitlab-plugin@1.5.13">
<gitLabConnection>gitlab140</gitLabConnection>
</com.dabsquared.gitlabjenkins.connection.GitLabConnectionProperty>
<jenkins.model.BuildDiscarderProperty>
<strategy class="hudson.tasks.LogRotator">
<daysToKeep>-1</daysToKeep>
<numToKeep>3</numToKeep>
<artifactDaysToKeep>-1</artifactDaysToKeep>
<artifactNumToKeep>-1</artifactNumToKeep>
</strategy>
</jenkins.model.BuildDiscarderProperty>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.StringParameterDefinition>
<name>deployName</name>
<description>文件名称</description>
<defaultValue></defaultValue>
<trim>true</trim>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>modelVersion</name>
<description>模块版本</description>
<defaultValue></defaultValue>
<trim>true</trim>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>modelServiceName</name>
<description>模块服务名</description>
<defaultValue></defaultValue>
<trim>true</trim>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>projectCode</name>
<description>项目编号</description>
<defaultValue></defaultValue>
<trim>true</trim>
</hudson.model.StringParameterDefinition>
<hudson.model.ChoiceParameterDefinition>
<name>status</name>
<description>start 启动 ,stop停止,deploy部署
(deploy代码传递参数,界面不要选择此项)</description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>start</string>
<string>stop</string>
<string>deploy</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
</properties>
<scm class="hudson.scm.NullSCM"/>
<canRoam>true</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<authToken>1156ddb265bc6ec3c190a17d74735d8f28</authToken>
<triggers/>
<concurrentBuild>false</concurrentBuild>
<builders>
<hudson.tasks.Shell>
<command>
echo &quot;###################begin start#############&quot;
echo &apos;deployName:&apos; + $deployName
echo &apos;modelServiceName:&apos; + $modelServiceName
echo &apos;modelVersion:&apos; + $modelVersion
echo &apos;projectCode:&apos; + $projectCode
echo &apos;status:&apos;+ $status
echo &quot;###################end print#############&quot;
echo &quot;###################begin write#############&quot;
rm -rf updowncommand.txt
echo $status &gt; updowncommand.txt
echo &quot;###################end write###############&quot;
ls -la
if [ &quot;$status&quot; = &quot;deploy&quot; ]; then
rm -rf $deployName
destDir=&quot;/home/version/push-jar/${r"${"}projectCode}/${r"${"}modelServiceName}/${r"${"}modelVersion}/${r"${"}deployName}&quot;
echo &apos;destDir:&apos; + $destDir
# copy jar to jenkins container
scp root@10.0.120.26:$destDir .
tempFileName=&quot;${r"${"}deployName}.temp&quot;
rm -rf tempFileName
echo &quot;###################rename zip#############&quot;
mv $deployName $tempFileName
mv $tempFileName dist.zip
fi
ls -la
</command>
</hudson.tasks.Shell>
</builders>
<publishers>
<jenkins.plugins.publish__over__ssh.BapSshPublisherPlugin plugin="publish-over-ssh@1.20.1">
<consolePrefix>SSH: </consolePrefix>
<delegate plugin="publish-over@0.22">
<publishers>
<jenkins.plugins.publish__over__ssh.BapSshPublisher plugin="publish-over-ssh@1.20.1">
<configName>${floatingIp}(${fixedIp})</configName>
<verbose>false</verbose>
<transfers>
<jenkins.plugins.publish__over__ssh.BapSshTransfer>
<remoteDirectory>${deployPath}</remoteDirectory>
<sourceFiles>dist.zip,updowncommand.txt</sourceFiles>
<excludes></excludes>
<removePrefix></removePrefix>
<remoteDirectorySDF>false</remoteDirectorySDF>
<flatten>false</flatten>
<cleanRemote>false</cleanRemote>
<noDefaultExcludes>false</noDefaultExcludes>
<makeEmptyDirs>false</makeEmptyDirs>
<patternSeparator>[, ]+</patternSeparator>
<execCommand>
cd ${deployPath}
exec bash ${deployShFileName} start
</execCommand>
<execTimeout>120000</execTimeout>
<usePty>true</usePty>
<useAgentForwarding>false</useAgentForwarding>
</jenkins.plugins.publish__over__ssh.BapSshTransfer>
</transfers>
<useWorkspaceInPromotion>false</useWorkspaceInPromotion>
<usePromotionTimestamp>false</usePromotionTimestamp>
</jenkins.plugins.publish__over__ssh.BapSshPublisher>
</publishers>
<continueOnError>false</continueOnError>
<failOnError>false</failOnError>
<alwaysPublishFromMaster>false</alwaysPublishFromMaster>
<hostConfigurationAccess class="jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin" reference="../.."/>
</delegate>
</jenkins.plugins.publish__over__ssh.BapSshPublisherPlugin>
</publishers>
<buildWrappers/>
</project>
curl -X POST -u admin:adminloit -H "Content-Type:application/xml" -d "@config.xml" http://192.169.200.175:12012/createItem?name=${deployJobName}
<?xml version='1.1' encoding='UTF-8'?>
<project>
<actions/>
<description></description>
<keepDependencies>false</keepDependencies>
<properties>
<com.dabsquared.gitlabjenkins.connection.GitLabConnectionProperty plugin="gitlab-plugin@1.5.13">
<gitLabConnection>gitlab140</gitLabConnection>
</com.dabsquared.gitlabjenkins.connection.GitLabConnectionProperty>
<jenkins.model.BuildDiscarderProperty>
<strategy class="hudson.tasks.LogRotator">
<daysToKeep>-1</daysToKeep>
<numToKeep>10</numToKeep>
<artifactDaysToKeep>-1</artifactDaysToKeep>
<artifactNumToKeep>-1</artifactNumToKeep>
</strategy>
</jenkins.model.BuildDiscarderProperty>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.TextParameterDefinition>
<name>jarFile</name>
<description>源部署包路径</description>
<defaultValue></defaultValue>
<trim>false</trim>
</hudson.model.TextParameterDefinition>
<hudson.model.TextParameterDefinition>
<name>modelServiceName</name>
<description></description>
<defaultValue>模块服务名</defaultValue>
<trim>false</trim>
</hudson.model.TextParameterDefinition>
<hudson.model.TextParameterDefinition>
<name>projectCode</name>
<description>项目编号</description>
<defaultValue></defaultValue>
<trim>false</trim>
</hudson.model.TextParameterDefinition>
<hudson.model.TextParameterDefinition>
<name>modelVersion</name>
<description></description>
<defaultValue>模块版本</defaultValue>
<trim>false</trim>
</hudson.model.TextParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
</properties>
<scm class="hudson.scm.NullSCM"/>
<canRoam>true</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<authToken>1156ddb265bc6ec3c190a17d74735d8f28</authToken>
<triggers/>
<concurrentBuild>false</concurrentBuild>
<builders>
<hudson.tasks.Shell>
<command>
echo &quot;###################print param begin#############&quot;
echo &apos;jarFile:&apos; + $jarFile
echo &apos;modelServiceName:&apos; + $modelServiceName
echo &apos;modelVersion:&apos; + $modelVersion
echo &apos;projectCode:&apos; + $projectCode
echo &quot;################### print param end#############&quot;
if [ -z &quot;$jarFile&quot; ]; then
echo &apos;jarFile must not be empty&apos;
exit -1
fi
if [ -z &quot;$modelServiceName&quot; ]; then
echo &apos;modelServiceName must not be empty&apos;
exit -1
fi
if [ -z &quot;$modelVersion&quot; ]; then
echo &apos;modelVersion must not be empty&apos;
exit -1
fi
if [ -z &quot;$projectCode&quot; ]; then
echo &apos;projectCode must not be empty&apos;
exit -1
fi
fileName=${r"${"}jarFile##*/}
rm -rf $fileName
# copy jar to docker container
scp -r root@10.0.120.128:$jarFile .
ls -la
# create remote dir
echo &quot;##################create remote dir#############&quot;
destDir=&quot;/home/version/push-jar/${r"${"}projectCode}/${r"${"}modelServiceName}/${r"${"}modelVersion}&quot;
ssh root@10.0.120.26 &quot;
pwd &amp;&amp;
mkdir -p $destDir &amp;&amp;
ls -la $destDir&quot;
echo &quot;##################pushing jar begin#############&quot;
scp -r $fileName root@10.0.120.26:$destDir
echo &quot;###################pushing jar end#############&quot;</command>
</hudson.tasks.Shell>
</builders>
<publishers/>
<buildWrappers/>
</project>
spring.profiles.active=${springProfilesActive}
spring.application.name=loit-${serviceName}
# Nacos \ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u0135\ufffd\u05b7
spring.cloud.nacos.config.server-addr=10.0.120.13:80
spring.cloud.nacos.config.namespace=8b2a59c5-232d-4a12-949e-09062c046d8d
spring.cloud.nacos.config.file-extension=yaml
spring.main.allow-bean-definition-overriding=true
#!/bin/sh
echo '---------------kill_start----------------'
params1=$1
echo "pramas1:" $params1
command=$(cat updowncommand.txt)
echo 'command:' $command
if [ -z "$params1" ]; then
command='start'
echo 'command reset value:' $command
fi
if [ "$params1" = "stop" ]; then
command='stop'
echo 'command params value:' $command
fi
KILL_PROCESS_NAME='${deployPath}/${deployJar}'
PROCESS_ID=`ps -ef | grep $KILL_PROCESS_NAME | grep -v 'grep' | awk '{print $2}'`
echo 'ProcessId: ' $PROCESS_ID
for id in $PROCESS_ID
do
echo 'KILL_ID: ' $id
kill -s 9 $id
done
echo '---------------killed_stop----------------'
if [ "$command" != "stop" ]; then
echo '---------------start----------------'
nohup /usr/java/jdk1.8.0_241-amd64/bin/java -Xms256m -Xmx256m -jar $KILL_PROCESS_NAME --server.port=${port} --spring.profiles.active=${springProfilesActive} >/dev/null 2>&1 &
echo '---------------started----------------'
for i in {1..30};do
sleep 1
tail -n5 ${deployPath}/logs/loit-${serviceName}.log
done
fi
#!/bin/bash
\cp -rf /home/soft/nginxConfig/* /usr/local/nginx/conf/conf.d.start/
#!/bin/sh
params1=$1
command=$(cat updowncommand.txt)
echo 'command:'$command
if [ -z "$params1" ]; then
command="start"
echo 'command reset value:' $command
fi
if [ "$params1" = "stop" ]; then
command="stop"
echo 'command params value:' $command
fi
nginxConf="/${nginxConfigName}"
nginxPath="/usr/local/nginx/"
startPath=$nginxPath'conf/conf.d.start'
startConf=$startPath$nginxConf
stopPath=$nginxPath'conf/conf.d.stop'
stopConf=$stopPath$nginxConf
echo 'startConf:'$startConf
if [ "$command" = "stop" ]; then
echo 'test'
if [ -e "$startConf" ]; then
echo 'copy to stop file'
mv $startConf $stopPath
fi
fi
if [ "$command" != "stop" ]; then
if [ -e "$stopConf" ]; then
echo 'copy to start file'
mv $stopConf $startPath
fi
cd ${deployPath}
rm -rf dist
rm -rf static
rm -rf vue-permission/static
unzip dist*.zip
cp -r dist/static static
cp -r dist/static vue-permission/static
fi
pid_file=$nginxPath"logs/nginx.pid"
if [ ! -e "$pid_file" ]; then
/usr/local/nginx/sbin/nginx
fi
if [ -e "$pid_file" ]; then
/usr/local/nginx/sbin/nginx -s reload
fi
#!/bin/sh
params1=$1
command=$(cat updowncommand.txt)
echo 'command:'$command
if [ -z "$params1" ]; then
command="start"
echo 'command reset value:' $command
fi
if [ "$params1" = "stop" ]; then
command="stop"
echo 'command params value:' $command
fi
nginxConf="/${nginxConfigName}"
nginxPath="/usr/local/nginx/"
startPath=$nginxPath'conf/conf.d.start'
startConf=$startPath$nginxConf
stopPath=$nginxPath'conf/conf.d.stop'
stopConf=$stopPath$nginxConf
echo 'startConf:'$startConf
if [ "$command" = "stop" ]; then
echo 'test'
if [ -e "$startConf" ]; then
echo 'copy to stop file'
mv $startConf $stopPath
fi
fi
if [ "$command" != "stop" ]; then
if [ -e "$stopConf" ]; then
echo 'copy to start file'
mv $stopConf $startPath
fi
cd ${deployPath}
rm -rf dist/
rm -rf ${serviceNameAbb}/
mkdir -p ${serviceNameAbb}/dist
unzip dist*.zip
cp -r dist/* ${serviceNameAbb}/dist
cp -r dist/static ${serviceNameAbb}/
fi
pid_file=$nginxPath"logs/nginx.pid"
if [ ! -e "$pid_file" ]; then
/usr/local/nginx/sbin/nginx
fi
if [ -e "$pid_file" ]; then
/usr/local/nginx/sbin/nginx -s reload
fi
- id: loit-${serviceName}
uri: lb://loit-${serviceName}
predicates:
- Path=/api-${serviceName}/**
filters:
- StripPrefix=1
upstream sone.${serviceNameSub}.${backendFrontType} {
server 192.169.201.191:80 weight=5 max_fails=5 fail_timeout=30s;
server 192.169.201.111:80 weight=5 max_fails=5 fail_timeout=30s;
server 192.169.201.184:80 weight=5 max_fails=5 fail_timeout=30s;
}
location /${serviceNameAbb} {
proxy_pass http://sone.${serviceNameSub}.${backendFrontType};
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
input {
file {
path => [
<#list mapList as item>
"${item.deployPath}/logs/loit-${item.serviceName}.log"<#if item_has_next>,</#if>
</#list>
]
discover_interval => 15
stat_interval => 1
codec => multiline {
pattern => "^\["
negate => true
what => "previous"
charset => "UTF-8"
}
type => "elasticsearch"
start_position => "beginning"
}
}
filter {
# pattern matching logback pattern
grok {
match => {
"message" => "\[%{TIMESTAMP_ISO8601:exeTime}\]\s+%{DATA:appName}\s+\[%{DATA:reqInfo}\]\s+\[%{DATA:userId}\]\s+\[%{DATA:thread}\]\s+%{LOGLEVEL:logLevel}\s+%{DATA:class}\s+-\s+%{GREEDYDATA:msg}"
}
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => ["10.0.120.212:9200","10.0.120.44:9200","10.0.120.143:9200"]
index => "loit${esindex}-%{+YYYY.MM}-%{+xxxx.ww}"
}
}
#!/bin/sh
echo '---------------start logstash portal----------------'
mkdir -p /home/soft/logstash/${folderName}
nohup /usr/local/logstash-6.4.3/bin/logstash --path.data=/home/soft/logstash/${folderName} -f /home/soft/elkconfig/${fileName} >/dev/null 2>&1 &
echo '---------------end start logstash portal----------------'
#!/bin/sh
echo '---------------kill_${fileName}----------------'
KILL_PROCESS_NAME='/home/soft/elkconfig/${fileName}'
PROCESS_ID=`ps -ef | grep $KILL_PROCESS_NAME | grep -v 'grep' | awk '{print $2}'`
echo 'ProcessId: ' $PROCESS_ID
for id in $PROCESS_ID
do
echo 'KILL_ID: ' $id
kill -s 9 $id
done
server{
listen ${port};
server_name localhost;
gzip on;
gzip_buffers 32 4K;
gzip_comp_level 6;
gzip_min_length 100;
gzip_types application/javascript text/css text/xml;
gzip_vary on;
location /{
root ${deployPath}/;
try_files $uri $uri/ =404;
index index.html;
}
}
upstream sone.${serviceNameSub}.gray.${backendFrontType} {
least_conn;
<#list grayList as gray>
server ${gray} weight=5 max_fails=5 fail_timeout=30s;
</#list>
}
upstream sone.${serviceNameSub}.normal.${backendFrontType} {
least_conn;
<#list normalList as normal>
server ${normal} weight=5 max_fails=5 fail_timeout=30s;
</#list>
}
upstream sone.${serviceNameSub}.all.${backendFrontType} {
<#list grayList as gray>
server ${gray} weight=5 max_fails=5 fail_timeout=30s;
</#list>
<#list normalList as normal>
server ${normal} weight=5 max_fails=5 fail_timeout=30s;
</#list>
}
location /${serviceNameAbb} {
set $gray_url "";
set $gray_url $cookie_${serviceNameCookie}_fronturl;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
if ($gray_url = "none") {
return 404;
}
if ($gray_url = "normal"){
proxy_pass http://sone.${serviceNameSub}.normal.${backendFrontType};
}
if ($gray_url = "gray"){
proxy_pass http://sone.${serviceNameSub}.gray.${backendFrontType};
}
if ($gray_url ~* ^(.*?)\.(.*?)\.(.*?)$){
proxy_pass http://$gray_url;
}
if ($gray_url = ''){
proxy_pass http://sone.${serviceNameSub}.all.${backendFrontType};
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论