自動デプロイの前準備
先程はローカルでコマンドを実行してデプロイをしていました。WebSphere Application Server Liberty Coreではリモートデプロイできる仕組みが準備されており、Jenkinsからデプロイする場合はその仕組みを使用します。
ここからは、WebSphere Application Server Liberty Coreに対してリモートデプロイの設定を行います。
この記事では同じマシーンにある場合の検証のみ行っていますが、実際にはこの設定はJenkinsとWebSphere Application Server Liberty Coreが別マシーンにある場合にも使用できます。
WebSphere Application Server Liberty Coreへリモートデプロイを受け入れる設定の追加
「%LIBERTY_HOME%¥usr¥servers¥liberty¥server.xml」を編集します。
1. restConnector-1.0を有効にするため、server.xmlに以下の記載を追加します。
<featureManager> <feature>restConnector-1.0</feature> </featureManager>
2. quickStartSecurityタグを追加します。
<quickStartSecurity userName="bob" userPassword="bobpassword" />
3. remoteFileAccessタグを追加します。
<remoteFileAccess> <readDir>${server.output.dir}/dropins</readDir> <writeDir>${server.output.dir}/dropins</writeDir> </remoteFileAccess>
4. httpEndpointタグにhost="*"属性を追加します。
<httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="9080" httpsPort="9443" />
5. SSL証明書の作成
以下のコマンドを実行し、SSL証明書を作成します。
%LIBERTY_HOME%\bin\securityUtility createSSLCertificate --server=liberty --password=[パスワード]
「パスワード」には自由な値を設定してください。後ほどJenkinsの画面で入力する必要があるので、忘れないようにしてください。
証明書の作成に成功するとserver.xmlに追加する内容が表示されるので、表示された内容をそのまま追加します。
また、実行結果の1行目に表示されている「key.jksファイル」は、Jenkinsの設定で必要となるファイルです。jenkinsをインストールするマシーンにファイルをコピーします。
最後にserver.xmlを反映させるために再起動を行います。
%LIBERTY_HOME%\bin\server stop liberty %LIBERTY_HOME%\bin\server start liberty
ここまでくればWebSphereの設定は終わりです。
JavaのKeyStoreへの証明書のインストール
この設定はJenkinsを動かすマシーンへ行います。
1. ブラウザからWebSphereにhttpsでアクセスします。
https://localhost:9443/
ポート番号はserver.xmlのhttpEndpointタグに記載されているhttpsPort属性の値です。host名は実際にWebSphereが動いている名前で読み替えてください。
2. 証明書が不正である旨が表示されますが、気にせず続行します。
3. 証明書のエラーの箇所をクリックし、証明書の表示をクリックします。
4. 証明書が表示されるので、詳細をクリックし、ファイルにコピーをクリックします。
5. 証明書エクスポートウィザードが起動するので、次へをクリックします。
6. 次へをクリックします。
7. 証明書をエクスポートする先を入力して、次へをクリックします。
エクスポートした証明書は、この後すぐに使用します。
8. 完了をクリックします。
9. ブラウザからエクスポートした証明書をJavaのキーストアに取り込みます。
管理者権限で起動したコマンドプロンプトで以下のコマンドを入力します。
"%JAVA_HOME%\jre\bin\keytool" -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -importcert -alias websphere-liberty-remote -file [先ほどエクスポートした証明書ファイル]
パスワードの入力を求められるので、「changeit」と入力してください。パスワードを変更している場合は、変更したパスワードを入力してください
「証明書を信頼しますか」と確認されるのでyを入力し、エラーが出なければ完了です。
管理者権限がないコマンドプロンプトで実行すると、アクセスが拒否されることがあります。その場合は管理者権限でコマンドプロンプトを起動しなおしてください。
ブラウザからエクスポートした証明書は、この作業が終われば不要なので削除しても大丈夫です。