Jenkins и JBoss EAP 7.1.0.GA Проблема с развертыванием - PullRequest
0 голосов
/ 07 сентября 2018

У меня проблемы с выполнением развертывания на последнем этапе моей работы в Jenkins.

Caused by: org.jboss.as.cli.CommandFormatException: Undeploy failed: {"WFLYCTL0062: 
    Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-1"
       => "WFLYDC0043: Cannot remove deployment abc-web-1.0.101.war from the domain as it is 
       still used by server groups [abc-demo-latest]"}}
  at org.jboss.as.cli.handlers.UndeployHandler.doHandle(UndeployHandler.java:231)
  at org.jboss.as.cli.handlers.CommandHandlerWithHelp.handle(CommandHandlerWithHelp.java:86)
  at org.jboss.as.cli.impl.CommandContextImpl.handle(CommandContextImpl.java:581)

В настоящий момент у меня нет доступа к консоли администратора, но я буду признателен за любые подсказки или помощь в том, что может быть неправильно в моей конфигурации.

Ниже приведена ошибка выполнения задачи:

task removeUnusedArtifactsFromJbossRepository(dependsOn: ['outputTenantSettings', 'ensureValidTenant']) << {

    confirmToProceed("This command will remove unused artifacts from the Jboss Repository. Although this won't affect running systems, it may make manual rollbacks more difficult. Are you sure your wish to proceed?");

    def serverGroup = getTenantProperties('config.properties').server_group_name;

    ModelNode node = new ModelNode();
    node.get(ClientConstants.OP).set(ClientConstants.READ_RESOURCE_OPERATION);
    node.get(ClientConstants.OP_ADDR).add("/deployment");

    ModelNode result = getCommandHelper().getModelControllerClient().execute(node);

    def deployments = result.get("result").get("deployment");

    if(deployments.getType() == ModelType.UNDEFINED) {
        println "No artifacts to remove"
        return;
    }

    for(def deployment : deployments.asList()) {
        def deploymentName = deployment.asProperty().name
        if(deploymentName.contains("abc-web")) {

            println "Attempting to remove Deployment '${deploymentName}'"
            try {
                executeCliCommand("undeploy ${deploymentName}")
                println "Deployment '${deploymentName}'' removed"
            } catch(java.lang.IllegalArgumentException exception) {
                // JBAS014653 means that the file is deployed to servers and can't be removed
                // it's ok to ignore this
                if(exception.getMessage().contains("JBAS014653")) {
                    println "Deployment '${deploymentName}' cannot be removed as it's currently in use"
                } else {
                    throw exception;
                }
            }
        }
    }
}

После дальнейшего исследования я думаю, что скрипт пытается удалить развертывание из другой группы серверов i.e.abc-demo-latest, которое мне нужно оставить нетронутым или не развернутым.

Есть ли способ изменить сценарий, чтобы он мог быть отменен только из вновь созданной группы серверов перед развертыванием нового выпуска?

Я пробовал следующее:

if(serverGroup.equals("abc-demo-latest")) {
                println("Undeploying customer-abc-latest server group deployment ${deploymentName}")
                executeCliCommand("undeploy ${deploymentName}")
            }else{
                println("Undeploying customer-demo-ams-stable server group deployment ${deploymentName}")
                executeCliCommand("undeploy ${deploymentName} --server-groups=other-server-group --keep-content")
            }

Но получил следующую ошибку:

Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:

deploy (default-deploy) в проекте abc-parent: не удалось развернуть артефакты: Не удалось передать артефакт abc-parent: pom: 1.0.26 из / в развертывание (http://x.y.z:8080/nexus/content/repositories/releases/): Не удалось передать файл: http://x.y.z:8080/nexus/content/repositories/releases/abc-parent/1.0.26/abc-parent-1.0.26.pom. Код возврата: 400, Фраза-причина: Неверный запрос

1 Ответ

0 голосов
/ 07 сентября 2018

Ключ находится в сообщенной вами ошибке:

WFLYDC0043: Невозможно удалить развертывание abc-web-1.0.101.war из домена, так как оно все еще используется группами серверов [abc-demo-latest]

Возможно, у вас нет undeploy ed для всех групп серверов, и поэтому вы не можете undeploy из domain.См. документы для undeploy ing .Существует команда, в которой вы можете undeploy из всех соответствующих групп:

undeploy * --all-relevant-server-groups

Или только одна группа серверов:

undeploy * --server-groups=other-server-group

...