Chefを使ってWebLogic Serverの基本ドメインを作ってみた
概要
Chefを使ってWebLogic Serverのサイレント・インストールを行いました。
WebLogicはインストールした後に、WebLogic Server ドメインという論理的な管理グループを作成する必要があります。
このWebLogic ServerドメインをChefを使って作成してみます。
WebLogic Server ドメイン
マニュアルでは次の箇所にWebLogic Server ドメインについて記載があります。
WebLogic Server ドメインは論理的な管理グループとお伝えしましたが、その管理対象に含まれる要素は以下のものがあります。
- サーバ
- 管理サーバ:ドメインに必ず1つ必要なドメインの設定を管理するサーバ
- 管理対象サーバ:アプリケーションやサービスをホストするサーバであり、管理サーバから設定を取得
- マシン:ハードウェアの境界(ノードマネージャを使用する場合は必須)
- クラスタ:アプリケーションに可用性と拡張性を提供するサーバの論理的なグループ
このWebLogic Server ドメインは論理的な単位なので、どのように区分するかは制限がありません。
基本的には、運用ポリシーやルール、サービスレベルが同じアプリケーションやサーバは同一のドメインに含めるようにします。
Chefを使ってやりたい事
Chefを使って1ドメイン中に1管理サーバのみの最もシンプルなWebLogic Server ドメインを作成します。
今回作成するRecipe
- WLSTのスクリプト・モードでWebLogic Server ドメインを作成します。
- 使用するドメイン・テンプレートは「Basic WebLogic Server Domain Template」
- ドメイン構成は1サーバインスタンス(管理サーバ)/1マシン
Recipe. WebLogic Server ドメインの作成
以下の3種類のファイルを作成します。
- Recipe
- Template
- Attribute
Templateでは、WebLogic Server ドメイン作成用のWLSTスクリプトを用意します。
- Template
以下の箇所でドメイン・テンプレート「Basic WebLogic Server Domain」を適用しています。
selectTemplate('Basic WebLogic Server Domain', '12.2.1.0')
loadTemplates()
以下の箇所で管理サーバのポートを指定しています。
cd('Servers/AdminServer')
set('ListenAddress','')
set('ListenPort', 7001)
create('AdminServer','SSL')
cd('SSL/AdminServer')
set('Enabled', 'True')
set('ListenPort', 7002)
そして以下の箇所で管理ユーザとパスワードの指定を行います。
cd('/')
cd('Security/base_domain/User/<%= node['weblogic-domain']['admin_user'] %>')
cmo.setPassword('<%= node['weblogic-domain']['admin_password'] %>')
WebLogic Serverは起動時に開発者モードとプロダクションモードの異なる起動サーバモードがあります。
以下で、起動モードを設定します。Attributeで開発者モード(dev)を設定しています。
setOption('ServerStartMode', '<%= node['weblogic-domain']['startmode'] %>')
最後にドメイン構成情報を書き込みます
writeDomain('<%= node['weblogic-domain']['domain_home'] %>/<%= node['weblogic-domain']['domain_name'] %>')
closeTemplate()
- Attribute
Attributeでは各デフォルト値を設定しています。
- default['weblogic-domain']['startmode']
- WLSTスクリプトのServerStartModeの設定
default['weblogic-domain']['startmode'] = 'dev'
# default['weblogic-domain']['startmode'] = 'prod'
- ['weblogic-domain']['domain_home']
- ['weblogic-domain']['domain_name']
- WebLogic Server ドメインの構成場所とドメインの名前を指定
default['weblogic-domain']['domain_home'] = '/u01/app/oracle/config/domains'
default['weblogic-domain']['domain_name'] = 'mydomain'
- Recipe
RecipeではWLSTをスクリプト・モードで実行しています。
-(参考)スクリプト・モード
execute "wlst.sh create_#{node['weblogic-domain']['domain_name']}_domain.py" do
environment "CONFIG_JVM_ARGS" => "-Djava.security.egd=file:/dev/./urandom"
command <<-EOH
. #{node['weblogic-domain']['wls_home']}/server/bin/setWLSEnv.sh
#{node['weblogic-domain']['oracle_common']}/common/bin/wlst.sh #{node['weblogic-domain']['response_file_dir']}/create_#{node['weblogic-domain']['domain_name']}_domain.py
EOH
user node['weblogic-domain']['user']
group node['weblogic-domain']['group']
action :run
creates "#{node['weblogic-domain']['domain_home']}/#{node['weblogic-domain']['domain_name']}/bin"
end
- WLS_HOME/server/bin/setWLSEnv.shで、必要な環境変数を設定しています。
- ORACLE_HOME/oracle_common/common/bin/wlst.sh WLSTスクリプトファイル(xxx.py)で、WLSTをスクリプト・モードとして実行しています。
Chefの実行イメージ
まとめ
WebLogic Serverの導入は構成ウィザードを用いたGUIによる対話的な操作と、今回利用したWLSTスクリプトによるサイレント実行が可能です。
WLSTスクリプトはドメイン構成情報をテンプレート化しているので、Chefと組み合わせての環境の冪等性を担保するInfrastructure as Codeとして便利に利用できます。
-
今回のレシピ:https://github.com/shinyay/chef-oracle-weblogic-domain/tree/publish_20160615
- WebLogic Server ドメインを作成するCookbookです。
Author And Source
この問題について(Chefを使ってWebLogic Serverの基本ドメインを作ってみた), 我々は、より多くの情報をここで見つけました https://qiita.com/shinyay/items/8ea3c25b0160ec91d666著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .