在Payara Server和GlassFish中配置密码
回答Stackoverflow問題可以為我發現我最喜歡的開源工具的正式文檔中的空白提供很好的反饋。 我在這里回答的問題之一是如何在docker容器中更改Payara Server主密碼 。 顯然,在標準服務器安裝中,這很簡單–只需使用asadmin change-master-password命令,然后在控制臺中輸入舊密碼和新密碼即可。 但是不在docker中,必須通過腳本自動進行配置。 這同樣適用于所有基礎架構即代碼解決方案,例如Chef或Puppet。 因此,我不得不更深入地研究文檔并進行一些實驗。
從文件中指定密碼
在腳本中使用密碼的關鍵是在文件中提供密碼。 每個asadmin命令都接受參數–passwordfile,以指示它從中讀取所有必需的密碼,從而避免以交互方式詢問密碼。 但是在此密碼文件中查找如何定義密碼有點棘手,因為它用于多種類型的密碼。 適用于GlassFish v3的Oracle文檔,該文檔也適用于GlassFish v4和v5以及Payara v4和5,其中記錄了4種類型的密碼 。 可以在密碼文件中使用帶有AS_ADMIN_前綴的變量來指定每種密碼。
- 帶有前綴AS_ADMIN_PASSWORD的管理員密碼,默認為空密碼
- 前綴為AS_ADMIN_MASTERPASSWORD的主密碼,默認為“ changeit”
- 前綴為AS_ADMIN_USERPASSWORD的用戶密碼
- 別名為AS_ADMIN_ALIASPASSWORD的別名密碼
因此,例如,如果我們需要使用管理員密碼“ mypassword”運行命令,那么密碼文件中必須包含以下行:
AS_ADMIN_PASSWORD=mypassword然后,我們可以將密碼與–passwordfile參數一起使用,如下所示:
asadmin list-applications --passwordfile=mypasswordfile上面的命令不會等待輸入密碼,而是會立即列出服務器上的所有應用程序。 如果密碼不正確,該命令將失敗。
從腳本非交互更改密碼
到目前為止,至少在舊版GlassFish v3文檔中已記錄了所有內容。 但是,文檔中缺少的是,如果我們想從腳本中更改密碼,該如何從文件中指定新密碼。 當我們執行命令以更改沒有密碼文件的任何密碼(例如,管理員密碼或主密碼)時,該命令將要求2個密碼-舊密碼和新密碼。 因此,我們需要在文件中指定2個密碼。
解決方案是將新密碼的另一個變量添加到同一密碼文件中。 新密碼的變量以AS_ADMIN_NEW前綴為前綴。 因此,要更改主密碼,我們的密碼文件中需要以下兩行:
AS_ADMIN_MASTERPASSWORD=oldmasterpassword AS_ADMIN_NEWMASTERPASSWORD=newmasterpassword然后,我們可以將兩個密碼與–passwordfile參數一起使用,如下所示:
asadmin change-master-password --passwordfile=mypasswordfile上面的命令不會等待輸入或重新輸入任何密碼,而是會立即將服務器上的主密碼更改為newmasterpassword。 如果舊密碼不正確,該命令將失敗。
在Docker映像中更改密碼
在Docker中,首選方法是在映像中配置服務器,以便在執行容器時自動應用配置。 避免配置容器,因為在容器中運行asadmin命令并不容易,并且更改某些密碼(例如主密碼)需要重新啟動服務器。
默認的Payara Server Docker映像已包含asadmin命令,這些命令可更改管理員密碼。 您可以復制創建/ opt / tmpfile的行,并將其與change-admin-password命令一起使用以更改管理員密碼。
可以更改主密碼。 以下是將主密碼更改為newpassword的示例自定義Dockerfile:
<span class="pln">FROM payara</span><span class="pun">/</span><span class="pln">server</span><span class="pun">-</span><span class="pln">full </span> <span class="pun">#</span><span class="pln"> specify a </span><span class="kwd">new</span><span class="pln"> master password </span><span class="str">"newpassword"</span><span class="pln"> instead of the </span><span class="kwd">default</span><span class="pln"> password </span><span class="str">"changeit"</span><span class="pln"> RUN echo </span><span class="str">'AS_ADMIN_MASTERPASSWORD=changeit\nAS_ADMIN_NEWMASTERPASSWORD=newpassword'</span> <span class="pun">>></span> <span class="pun">/</span><span class="pln">opt</span><span class="pun">/</span><span class="pln">masterpwdfile</span><span class="pun">#</span><span class="pln"> execute asadmin command to apply the </span><span class="kwd">new</span><span class="pln"> master password RUN $</span><span class="pun">{</span><span class="pln">PAYARA_PATH</span><span class="pun">}/</span><span class="pln">bin</span><span class="pun">/</span><span class="pln">asadmin change</span><span class="pun">-</span><span class="pln">master</span><span class="pun">-</span><span class="pln">password </span><span class="pun">--</span><span class="pln">passwordfile</span><span class="pun">=/</span><span class="pln">opt</span><span class="pun">/</span><span class="pln">masterpwdfile</span>在當前目錄中使用上述Dockerfile,您可以使用以下命令構建自定義Docker映像:
docker build -t my-payara/server-full . 然后運行my-payara / server-full而不是payara / server-full。
您可以使用以下命令在docker容器中驗證主密碼是否已更改:
如果鍵入新的主密碼,則應該看到密鑰庫的內容以及證書列表。
翻譯自: https://www.javacodegeeks.com/2017/11/configure-passwords-payara-server-glassfish.html
總結
以上是生活随笔為你收集整理的在Payara Server和GlassFish中配置密码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Arm上市暴涨28%,科技股IPO的春天
- 下一篇: 特斯拉第5万个汽车超充桩亮相:红色特殊涂