gpt4 book ai didi

curl - 通过 HTTP API 替换 Wildfly 上的部署

转载 作者:行者123 更新时间:2023-12-04 13:16:30 24 4
gpt4 key购买 nike

我们想用 curl 替换现有的 app.war 部署。下面的帖子提供了一种部署 war 文件的好方法。只要没有部署同名的 war 文件,这种方法就可以很好地工作。但是,如果已经存在部署,则它会失败。有什么方法可以通过 curl 替换现有的部署?

http://blog.arungupta.me/2014/01/deploy-to-wildfly-using-curl-tech-tip-10/

有没有办法获取wildfly的HTTP API的完整接口(interface)文档

最佳答案

非常感谢@nioe 的脚本!这是一个可配置的版本,带有静音 curl更适合 CI 脚本:

#!/bin/bash

# Deploys given WAR to WildFly server, pass full path to WAR as argument

set -e
set -u

[[ -f "$1" ]] || { >&2 echo "Usage: $0 WAR-filename ('$1' is not a file)"; exit 1; }

WILDFLY_MANAGEMENT_URL=http://username:password@hostname:9990
WAR_NAME=`basename $1`
WAR_PATH=`dirname $1`

echo "Deploying '$WAR_NAME' from '$WAR_PATH' to '$WILDFLY_MANAGEMENT_URL'"
echo '-------------------'

echo "-> Undeploy old war"
curl -sS -H "content-Type: application/json" -d '{"operation":"undeploy", "address":[{"deployment":"'"${WAR_NAME}"'"}]}' --digest ${WILDFLY_MANAGEMENT_URL}/management
echo ""

echo "-> Remove old war"
curl -sS -H "content-Type: application/json" -d '{"operation":"remove", "address":[{"deployment":"'"${WAR_NAME}"'"}]}' --digest ${WILDFLY_MANAGEMENT_URL}/management
echo ""

echo "-> Upload new war"
bytes_value=`curl -sF "file=@${WAR_PATH}/${WAR_NAME}" --digest ${WILDFLY_MANAGEMENT_URL}/management/add-content | perl -pe 's/^.*"BYTES_VALUE"\s*:\s*"(.*)".*$/$1/'`
echo $bytes_value

json_string_start='{"content":[{"hash": {"BYTES_VALUE" : "'
json_string_end='"}}], "address": [{"deployment":"'"${WAR_NAME}"'"}], "operation":"add", "enabled":"true"}'
json_string="$json_string_start$bytes_value$json_string_end"

echo "-> Deploy new war"
result=`curl -sS -H "Content-Type: application/json" -d "$json_string" --digest ${WILDFLY_MANAGEMENT_URL}/management | perl -pe 's/^.*"outcome"\s*:\s*"(.*)".*$/$1/'`
echo $result

if [ "$result" != "success" ]; then
exit -1
fi

关于curl - 通过 HTTP API 替换 Wildfly 上的部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22981199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com