使用wsadmin修改WebSphere控制台密碼


背景:目前項目需要在不重啟的情況下定期修改WebSphere控制台密碼。

1.1 wsadmin使用簡介

WebSphere控制台版本:9.0.5.5

wsadmin 支持兩種腳本語言: jacl(Java Command Language , deprecated) & Jython 。

要想得到 wsadmin 語法相關的幫助,進入實例的 bin 目錄下可以輸入 wsadmin.sh  -h,以下是幫助的詳細內容:

WASX7001I: wsadmin 是用於 WebSphere 腳本編制的可執行文件。

語法:

  wsadmin

        [ -h(elp)  ]

        [ -?]

        [ -c <command> ]

        [ -p <properties_file_name>]

        [ -profile <profile_script_name>]

        [ -f <script_file_name>]

        [ -javaoption java_option]

        [ -lang  language]

        [ -wsadmin_classpath  classpath]

        [ -profileName profile]

        [ -conntype

                SOAP

                        [-host host_name]

                        [-port port_number]

                        [-user userid]

                        [-password password] |

                RMI

                        [-host host_name]

                        [-port port_number]

                        [-user userid]

                        [-password password] |

                NONE

        ]

        [ -jobid <jobid_string>]

        [ -tracefile <trace_file>]

        [ -appendtrace <true/false>]

        [ script parameters ]

 

其中     “ command ”是要傳遞給腳本處理程序的命令;

        “ properties_file_name ”是要使用的 java 屬性文件;

        “ profile_script_name ”是在主命令或文件前要執行的腳本文件;

        “ script_file_name ”是要傳遞給腳本處理程序的命令;

        “ java_option ”是要傳遞給 Java 程序的 java 標准或非標准選項;

        “ language ”是要用於解釋腳本的語言;受支持的值為“ jacl ”和“ jython ”。

        “ classpath ”是附加到內置路徑中的類路徑;

        “ -conntype ”指定要使用的連接類型;

                缺省參數是“ SOAP ”

                conntype 為“ NONE ”意味着沒有建立服務器連接

                且某些操作會以本地方式執行;

        “ host_name ”是用於 SOAP 或 RMI 連接的端口;

                缺省值是本地主機;

         “ port_number ”是用於 SOAP 或 RMI 連接的端口;

        “ userid ”是服務器以安全方式運行時

                所需的用戶標識;

        “ password ”是服務器以安全方式運行時

                所需的密碼;

        “ script parameters ”是命令行上的任何其他內容。它們

                在 argv 變量中傳遞給腳本;參數的數目

                可在 argc 變量中獲得。

        “ jobid_string ”是要用來審計 wsadmin 的每個調用的

                作業標識字符串;

        “ trace_file ”是 wsadmin 跟蹤輸出定向至的

                日志文件名和位置;

如果未指定命令或腳本,將創建一個解釋器 shell

以供交互使用。要離開交互式腳本編制會話,

使用“ quit ”或“ exit ”命令。

 

可以在單個命令行上指定幾個命令、屬性文件和

概要文件。它們是按照其指定的順序處理和執行的。

=============================================================

1.2 Wsadmin 的調用有三種不同的方式:

使用單行命令方式 (-c)

       wsadmin –c AdminControl.getNode()

使用交互方式

       wsadmin

運行腳本文件,使用 -f 參數

       wsadmin –f myScript.py

 

使用 -profile 參數,表示要執行的一些預先執行的腳本。

使用 -p 可以定義屬性文件的位置。

 

Wsadmin 管理的對象包括:

AdminControl 用於操作控制。通過 MBean 來進行通訊,包含查詢在在的運行中的對象和其屬性,並在這些對象上調用操作。另外,支持關於連接服務的查詢,客戶端跟蹤的方便命令,重新連接至服務器,啟動和停止服務器。

AdminConfig 管理存儲在倉庫中的配置信息。通過 WAS 的配置服務組件來查詢和更改配置。可以使用它來查詢存在的配置對象,創建配置對象,修改存在的對象和移除配置對象。在分布式的環境中,此命令僅僅能用於連接到 DM ,不能連接到 Node Agent 或管理某一 Application Server ,因為這些服務器的進程配置僅僅是保存在 DM 上的一個 Copy( 副本 ) 。

AdminApp 能更新應用的元數據,映射虛擬主機到 Web 模塊,映射已安裝的模塊至服務器。對一個應用程序進行更改,比如為應用程序指定一個共享庫,設置會話管理的配置屬性。

AdminTask 用於訪問面向任務的管理命令。這些命令用於訪問配置命令和運行時對象管理命令。當腳本客戶端運行時,可以自動發現管理命令。可用的管理命令以用於安裝 WAS 的版本。

Help :

       print Help.AdminControl()

運行環境: AdminConfig , AdminTask , AdminApp 對象都是處理配置功能。可以在連接或不連接至服務器的環境下運行,但 AdminControl 需要連接到服務器才能運行,因為他是通過調用正在運行的 JMX MBean 來執行的。

=============================================================

1.3  修改密碼腳本

#!/bin/bash
#wsadminPath:wsadmin.sh腳本路徑
#wasUser:was平台用戶
#wasPasswd:was平台用戶舊口令
#wasUPasswd:was平台用戶新口令
#uniqueName:was用戶的唯一標識,可以在was平台頁面查找
wasUser='admin'
wasPasswd='Test@1234'
wasUPasswd='Test@5678'
wsadminPath='/was/IBM/WebSphere/AppServer/bin'
uniqueName='uid=admin,o=defaultWIMFileBasedRealm'

if  [[ "$wasUser"  == ""  ]]
then
    echo "參數:[wasUser]不能為空"
    exit -1
fi

if  [[ "$wasPasswd"  == ""  ]]
then
    echo "參數:[wasPasswd]不能為空"
    exit -1
fi

if  [[ "$wasUPasswd"  == ""  ]]
then
    echo "參數:[wasUPasswd]不能為空"
    exit -1
fi

if  [[ "$wsadminPath"   != ""  ]]
then
    cd $wsadminPath
    cmd='$AdminTask updateUser {-uniqueName  '$uniqueName' -password '$wasUPasswd' -confirmPassword  '$wasUPasswd'}'
    echo "CMD:[${cmd}]"
    ./wsadmin.sh -user $wasUser   -password $wasPasswd <EOF
    ${cmd}
exit
EOF
else
    echo "參數:[wsadminPath]不能為空"
    exit -1
fi

=============================================================

參考鏈接:
WebSphere Application Server之wsadmin學習(一)
http://www.blogjava.net/fastzch/archive/2008/09/18/229797.html

通過使用wsadmin腳本編制來運行AdminTask對象命令

https://www.ibm.com/docs/zh/was-nd/9.0.5?topic=scripting-commands-admintask-object-using-wsadmin

=============================================================


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM