Edited at

wgetでintra-martのテナント管理のライセンス数の設定を行う

More than 3 years have passed since last update.


概要

wgetでintra-martのテナントの初期設定を実施するに引き続き、intra-martの初期設定をwgetでやろう第2弾です。

テナントの初期設定に続き、ライセンス数の設定もwgetでやってみたいと思います。

このライセンス設定画面の無制限のチェックボックスをチェックするのをwgetで対応したいと思います。

ライセンス設定.PNG


前提

以下の環境で動作確認した内容です。

環境としては、テナントの初期設定まで実施済みのものとします。

application
version

OS
CentOS7

JDK(Oracle)
8u91

Resin
4.0.48

intra-mart
8.0.11

Oracle  
12.1.0.2


nkfのインストール

本記事で紹介しているスクリプトを実行するには別途「nkf」のインストールが必要です。

URLエンコード用にnkfを利用しています。

nkfは以下のコマンドでCentOS6のリポジトリからインストールできるようです。

CentOS7にnkfをインストールする方法

yum localinstall -y http://mirror.centos.org/centos/6/os/x86_64/Packages/nkf-2.0.8b-6.2.el6.x86_64.rpm

なぜか私の環境ではmirror.ceonts.orgが解決できなかったので...


IP直で...

yum localinstall -y http://213.184.126.230/centos/6/os/x86_64/Packages/nkf-2.0.8b-6.2.el6.x86_64.rpm



wgetでシステム管理者のセッションを作成する

まず、ログイン前にログインページを表示してim_secure_tokenとim_admin_login_infoを取得します。

取得したログインページンのHTMLをgrepして2項目の値を取得して、nkfでURLエンコードをかましています。

  wget \

--keep-session-cookies \
--save-cookies cookies.txt \
http://localhost:8080/${CONTEXT_PATH}/system/login

IM_SECURE_TOKEN=`grep "im_secure_token" login | sed 's/.*value="\(.*\)".*/\1/g' | nkf -WwMQ | tr = %`
IM_ADMIN_LOGIN_INFO=`grep "im_admin_login_info" login | sed 's/.*value="\(.*\)".*/\1/g' | nkf -WwMQ | tr = %`

続いて、システム管理者でログインします。

ログインのpost送信時に、先ほど取得したim_secure_tokenとim_admin_login_infoが必要です。

  wget \

--keep-session-cookies \
--load-cookies cookies.txt \
--save-cookies cookies.txt \
--post-data "im_user=${SYSTEM_MANAGER_CD}&im_password=${SYSTEM_MANAGER_PASSWORD}&im_admin_login_info=${IM_ADMIN_LOGIN_INFO}&im_page_key=&im_secure_token=${IM_SECURE_TOKEN}" \
http://localhost:8080/${CONTEXT_PATH}/system/certification


wgetでライセンス数登録

ログイン時に取得したcookie情報を利用してライセンス数の登録を行います。

  wget \

--load-cookies cookies.txt \
--post-data "accountLicenseInfinity=infinity&applicationId=XXXXX&tenantLicenseInfinityXXXXX=infinity&applicationId=YYYYY&tenantLicenseInfinityYYYYY=infinity" \
http://localhost:8080/${CONTEXT_PATH}/system/settings/tenant/license/edit

無制限にチェックを入れたい場合は以下のようなPOSTデータを送信すればよいようです。


アカウントライセンス

"accountLicenseInfinity=infinity"



アプリケーションのライセンス

# XXXXX、YYYYYにはアプリケーションごとのIDを指定します。

"applicationId=XXXXX&tenantLicenseInfinityXXXXX=infinity&applicationId=YYYYY&tenantLicenseInfinityYYYYY=infinity"


まとめると

これで画面を開かずにライセンス数の設定ができます。


まとめ

#!/bin/bash

# システム管理者のユーザID
SYSTEM_MANAGER_CD="system"
# システム管理者のパスワード
SYSTEM_MANAGER_PASSWORD="manager"

CONTEXT_PATH="imart"

rm -f login

wget \
--keep-session-cookies \
--save-cookies cookies.txt \
http://localhost:8080/${CONTEXT_PATH}/system/login

IM_SECURE_TOKEN=`grep "im_secure_token" login | sed 's/.*value="\(.*\)".*/\1/g' | nkf -WwMQ | tr = %`
IM_ADMIN_LOGIN_INFO=`grep "im_admin_login_info" login | sed 's/.*value="\(.*\)".*/\1/g' | nkf -WwMQ | tr = %`

echo ${IM_SECURE_TOKEN}
echo ${IM_ADMIN_LOGIN_INFO}

LOGIN_POST_DATA="im_user=${SYSTEM_MANAGER_CD}&im_password=${SYSTEM_MANAGER_PASSWORD}&im_admin_login_info=${IM_ADMIN_LOGIN_INFO}&im_page_key=&im_secure_token=${IM_SECURE_TOKEN}"

echo ${LOGIN_POST_DATA}

wget \
--keep-session-cookies \
--load-cookies cookies.txt \
--save-cookies cookies.txt \
--post-data "${LOGIN_POST_DATA}" \
http://localhost:8080/${CONTEXT_PATH}/system/certification

wget \
--load-cookies cookies.txt \
--post-data "accountLicenseInfinity=infinity&applicationId=XXXXX&tenantLicenseInfinityXXXXX=infinity&applicationId=YYYYY&tenantLicenseInfinityYYYYY=infinity" \
http://localhost:8080/${CONTEXT_PATH}/system/settings/tenant/license/edit