3
3

More than 5 years have passed since last update.

WAS V9.0のサイレントインストールとAnsibleでの自動化

Last updated at Posted at 2019-05-20

ひさしぶりにtWAS(WebSphere Application Server traditional)のNetwork Deployment環境が検証用に必要になり、macOS版がないのでVagrant/VirtualBox上のCentOSに導入することにし、デスクトップ環境を入れたくないのでサイレントインストールの方法を確認したメモ。あわせてAnsibleで自動化したメモ。

サイレントインストールは以下の3通りがある。レスポンスファイルを作るのは面倒で、コンソールモードはCUIでの対話式のインストール方法なので、自動化にはコマンドモードが簡単。

仮想マシンの準備

2台のVMをVagrantで起動する。1台でよい場合はVagrantfileを修正すること。

前提ソフトウェア

brew install git
brew cask install virtualbox
brew cask install vagrant

VagrantはホストOSのVagrantfileがあるディレクトリーをVMの/vagrantにマウントするので、このディレクトリーを使ってDockerfileなどファイルの受け渡しができるが、デフォルトではVM起動時にrsyncするだけなので、リアルタイムに同期するためには、VirtualBoxのGuest Additionsが必要で、これを自動でインストールしてくれるvagrant-vbguestプラグインを導入しておく。

vagrant plugin install vagrant-vbguest

(補足)
VirtulBox 6.0.8、Vagrant 2.2.4、vagrant-vbguest 0.17.2の組み合わせでは以下のIssueに該当するのかマウントが上手くいかなかった。

そのような場合はデフォルトのrsyncにしたほうがよい。Vagrantfileconfig.vm.synced_folderをコメントアウトし、config.vbguest.auto_updatefalseにする。

VMのスナップショットをとれるようにsaharaプラグインも入れておくと便利。

vagrant plugin install sahara

リポジトリのクローン

GitHubからリポジトリをクローンしてVagrantfileを取得する。

# このgitリポジトリをクローン
git clone https://github.com/sotoiwa/vagrant-was-centos
# クローンしたディレクトリーに入る
cd vagrant-was-centos
# VM起動
vagrant up

インストールパッケージの準備

ダウンロードしたWASのインストールイメージとFixPackのファイルをVagrantfileがあるディレクトリーに置く。

$ ls -l *.zip
-rw-r--r--@ 1 sotoiwa  staff   559661094  5 20 13:48 9.0.0-WS-IHSPLG-FP011.zip
-rw-r--r--@ 1 sotoiwa  staff  1130998013  5 20 13:46 9.0.0-WS-WAS-FP011.zip
-rw-r--r--@ 1 sotoiwa  staff  1633871835  5 20 13:46 WAS_ND_V9.0_MP_ML.zip
-rw-r--r--@ 1 sotoiwa  staff   171926710  5 20 13:37 agent.installer.linux.gtk.x86_64_1.8.9004.20190423_2015.zip
-rw-r--r--@ 1 sotoiwa  staff   165819084  5 20 13:44 ibm-java-sdk-8.0-5.35-linux-x64-installmgr.zip
-rw-r--r--  1 sotoiwa  staff   992220534  5 20 15:50 sdk.repo.8030.java8.linux.zip
-rw-r--r--@ 1 sotoiwa  staff   205003961  5 20 13:28 was.repo.9000.ihs.zip
-rw-r--r--@ 1 sotoiwa  staff   318279547  5 20 13:29 was.repo.9000.plugins.zip
$

仮想マシンの起動

仮想マシンを起動してログインする。

vagrant up
vagrant ssh node1

WASのインストール

仮想マシン内でWASをインストールする。以下の作業はVMが2台の場合は両方のVMに対して実施。

準備

rootになる。

sudo -i

以下は全てrootで実行する。

echo 192.168.33.41 node1 >> /etc/hosts
echo 192.168.33.41 node1 >> /etc/hosts

/etc/hostsに名前解決エントリを追加する。

ulimit -n 8192
echo "ulimit -n 8192" >> .bashrc

SELinuxを無効化する。

setenforce 0
sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config

WASの前提パッケージをインストールする。

yum install -y gtk2 libXtst xorg-x11-fonts-Type1

ファイルの解凍に使用するのでunzipをインストールする。

yum install -y unzip

リポジトリの準備

/vagrantディレクトリーからzipファイルをコピーし、/workディレクトリーに展開する。スクリプトでまとめ実行する。

/vagrant/unzip_repo.sh
/vagrant/unziprepo.sh
#!/bin/bash

set -eu
set -o pipefail

function unzip_repo () {
    repo=$1
    filename=${!repo}
    mkdir -p /work/${repo}
    cd /work/${repo}
    cp /vagrant/${filename} .
    unzip -q ${filename}
}

IIM=agent.installer.linux.gtk.x86_64_1.8.9004.20190423_2015.zip
WAS=WAS_ND_V9.0_MP_ML.zip
JDK=sdk.repo.8030.java8.linux.zip
IHS=was.repo.9000.ihs.zip
PLG=was.repo.9000.plugins.zip
WAS_FP=9.0.0-WS-WAS-FP011.zip
JDK_FP=ibm-java-sdk-8.0-5.35-linux-x64-installmgr.zip
IHSPLG_FP=9.0.0-WS-IHSPLG-FP011.zip

unzip_repo IIM
unzip_repo WAS
unzip_repo JDK
unzip_repo IHS
unzip_repo PLG
unzip_repo WAS_FP
unzip_repo JDK_FP
unzip_repo IHSPLG_FP

IIMのインストール

IIMをインストールする。

cd /work/IIM
./installc -acceptLicense

WAS/IHS/プラグインのインストール

WAS/IHS/プラグインをインストールする。

# インストール可能なパッケージの確認
cd /opt/IBM/InstallationManager/eclipse/tools
./imcl listAvailablePackages \
  -repositories /work/WAS,/work/JDK,/work/IHS,/work/PLG,/work/WAS_FP,/work/JDK_FP,/work/IHSPLG_FP
# WASのインストール
./imcl install com.ibm.websphere.ND.v90 com.ibm.java.jdk.v8 \
  -repositories /work/WAS,/work/JDK,/work/IHS,/work/PLG,/work/WAS_FP,/work/JDK_FP,/work/IHSPLG_FP \
  -installationDirectory /opt/IBM/WebSphere/AppServer \
  -installFixes all \
  -acceptLicense
# IHSのインストール
./imcl install com.ibm.websphere.IHS.v90 com.ibm.java.jdk.v8 \
  -repositories /work/WAS,/work/JDK,/work/IHS,/work/PLG,/work/WAS_FP,/work/JDK_FP,/work/IHSPLG_FP \
  -installationDirectory /opt/IBM/HTTPServer \
  -installFixes all \
  -acceptLicense
# プラグインのインストール
./imcl install com.ibm.websphere.PLG.v90 com.ibm.java.jdk.v8 \
  -repositories /work/WAS,/work/JDK,/work/IHS,/work/PLG,/work/WAS_FP,/work/JDK_FP,/work/IHSPLG_FP \
  -installationDirectory /opt/IBM/WebSphere/Plugins \
  -installFixes all \
  -acceptLicense

プロファイルの作成

デプロイメント・マネージャープロファイルを作成する(node1のみ)。

cd /opt/IBM/WebSphere/AppServer/bin
./manageprofiles.sh -create \
  -profileName Dmgr01 \
  -profilePath /opt/IBM/WebSphere/AppServer/profiles/Dmgr01 \
  -templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/management \
  -serverType DEPLOYMENT_MANAGER \
  -enableAdminSecurity true \
  -adminUserName wasadmin \
  -adminPassword wasadmin

INSTCONFPARTIALSUCCESSになるが、ログをみるとcreateProfileShortCut2StartMenuMgmt.antが失敗しているので、デスクトップ環境がないためであり問題ないと推測。

デプロイメント・マネージャーを起動する(node1のみ)。

/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin/startManager.sh

デプロイメント・マネージャーに接続するカスタムプロファイルを作成する。

./manageprofiles.sh -create \
  -profileName Custom01 \
  -profilePath /opt/IBM/WebSphere/AppServer/profiles/Custom01 \
  -templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/managed \
  -dmgrHost localhost \
  -dmgrPort 8879 \
  -dmgrAdminUserName wasadmin \
  -dmgrAdminPassword wasadmin

こちらもINSTCONFPARTIALSUCCESSになるが、ログをみるとcreateProfileShortCut2StartMenuManaged.antが失敗しているので、デスクトップ環境がないためであり問題ないと推測。

管理コンソールへアクセス

管理コンソールにアクセスできることを確認。

Ansible

Ansibleを勉強中なので、上記内容をAnsibleで実行するできるようにPlaybookにした。Vagrantにansible_localというモジュールもあるが、ローカルのAnsibleを使用するようにしているため、Ansibleをインストールする。

brew install ansible

VMを起動して、Playbookを実行。

vagrant up && ansible-playbook -i hosts site.yml

IPアドレスやパスワードを直書きしていたり、Playbookに改善の余地はあるがとりあえず動いたのでOK。冪等性も考慮してあるつもり。Playbookの内容はGitHubを参照。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3