簡體   English   中英

檢查是否已部署應用程序,如果使用Jenkins中的Bash部署,則取消部署它

[英]Check if an app is deployed and undeploy it if it is deployed using Bash in Jenkins

我在Junkins中使用工作來構建我的應用程序(.ear),然后將其部署在Glassfish中。 我想在部署應用程序(新版本)之前執行asadmin undeploy myApp 問題在於第一次執行中沒有部署任何應用程序,因此執行asadmin undeploy myApp產生錯誤。 任何解決這種情況的建議。 任何主張都是最受歡迎的。 謝謝。


編輯:

如果我的方法不對,請糾正我,也許我做錯了! 這是擁有Sowtware生產鏈的正確方法嗎? 我是否必須停止服務器並重新啟動它?

我從未使用過Glassfish,但您可以在執行取消部署之前檢查是否已部署您的應用程序。

如果您知道應用程序應在其中執行的端口,則可以簡單地使用netstat或lsof進行檢查。

編輯:

看一下該文檔 (示例2–3列出應用程序),似乎可以通過以下方式看到它:

list-applications --type web

關於此:

如果我的方法不對,請糾正我,也許我做錯了! 這是擁有Sowtware生產鏈的正確方法嗎? 我是否必須停止服務器並重新啟動它?

我認為正確的答案是,這取決於您使用的Web服務器(例如Glassfish提供了autodeploy )。 但通常,這種方法行得通。

在Bash上觀看了一些視頻並在Davide Patti提供的幫助下,我想出了方法。

知道我使用了Davide Patti的答案,並感謝他的幫助,因此我選擇寫我自己的答案,原因很簡單:Patti的答案無效。

為了測試是否部署了應用程序,並取消部署了該應用程序,我使用了以下適用於我的Bash代碼:

apps=`asadmin list-applications -t --user=admin --passwordfile=password.txt`

for app in $apps
do
    if [ $app = "the_name_of_your_app" ]
    then
        asadmin --user=admin --passwordfile=password.txt undeploy the_name_of_your_app
    fi
done;

PS:password.txt的內容是一行: AS_ADMIN_PASSWORD=admin

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM