hirano00o's blog

技術的な記録、日常の記録

Oracle Traffic Director 12.2.1.1 (OTD) サイレントでAdminServer&ドメイン作成

はじめに

先日のサイレントインストールに引き続いて、今度はサイレントでAdminServerとドメインを作成しようと思います。
hirano00o.hateblo.jp

準備

AdminServer&ドメイン作成用のWLSTスクリプトを作成します。
WLSTとはWebLogic Scripting Toolの略で簡単に言うと、コマンドラインで設定できるツールです。
WLSTスクリプトは、基本Python形式で作成します。Pythonに触れたことない人も触れたことある人も、お手軽に作れます。
ではさっそくサイレントAdminServer&ドメイン作成用のスクリプトです。

スクリプトは下記の情報で作成してあるので、適宜変更してください。

ログインユーザー weblogic
ログインパスワード weblogic1
リッスンアドレス 全て
リッスンポート 7001
ドメイン camit
ドメインホーム /opt/oracle/otd12.2.1.1/user_projects/domains/camit

ドメイン作成

先ほど作成したスクリプトをWLSTに流して、ドメインを作成します。

/opt/oracle/otd12.2.1.1/oracle_common/common/bin/wlst.sh createDomain.py

エラーが出力されなければAdminServerとドメインの作成完了です。

OTD起動

あとは起動すれば、ブラウザから各種設定できるようになります。
起動はシェルスクリプト等にしておくと後々楽だと思います。

nohup.outとかにエラーとかShutdownとかの文字が出力されていなければ起動されているはずです。
netstat -ant 7001とかで確かめてもいいかもです。

あとはブラウザからhttp://[リッスンアドレス]:[リッスンポート]/emにアクセスすれば、下記のような画面が出ると思います。
ユーザー名/パスワードにweblogic/weblogic1を入れてサイン・インを押せば、あとは思いのままに。

f:id:hirano00o:20180428112230p:plain

思いのままに。とは言ったものの、このままではインスタンスも何もないので何もできません。
次回はひとまず使えるようになるまでを作っていこうと思います。

Oracle Traffic Director 12.2.1.1 (OTD) サイレントインストール

はじめに

OTDを知っている人いますか?
日頃Oracle製品を利用している方であれば、知っているかもしれません。

OTDとはOracle Traffic Directorの略で、いわゆるOracleの出しているソフトウェアロードバランサのことです。
ソフトウェアロードバランサといえば、他にはUltraMonkeyApachemod_proxy_balancerモジュール、POUNDといったものがありますね。
逆にハードウェアロードバランサといえば、BIG-IPやA10といった有名どころがあります。

ていうか、そもそもOracleがロードバランサ?なんて疑問がありますが、Oracleはだいぶ前からExalogic,Exadataという、HWとSWを統合してより早くJavaやOracleDBが動くようにするための基盤を出しています。その早く動くための1つとしてロードバランサがExalogicに組み込まれたんですかね。

OTDの構成

OTDは考え方がBIG-IP等とは若干違い、やはりOracleという感じです。
下図のように基本的にリスナー、仮想サーバー、オリジン・サーバー・プールの3つの層となります。
また、2台構成でフェイルオーバー/フェイルバックさせる場合は、フェイルオーバーグループというのを組みます。

f:id:hirano00o:20180428112318p:plain

  • リスナー

OracleDBと似たような感じで、リスナーにVIPとポートを割り当てます。
SSLをLBに持たせる場合は、リスナーもしくは仮想サーバーで設定することができます。

  • 仮想サーバー

リスナーが受け取ったアクセス情報より、URIから異なるオリジン・サーバー・プールへ振り分けることや、リスナーと同様にSSLの設定等、様々なことをする層です。

  • オリジン・サーバー・プール

オリジン・サーバーという振り先のアドレスとポートをまとめたものになります。ヘルスチェックの設定はここでやります。

  • フェイルオーバーグループ

Act-Act、Act-Sbyといった構成を組む場合に、フェイルオーバーグループを組みます。フェイルオーバーグループはVIPごとに作成します。また、異なるフェイルオーバーグループに同一のVIPを割り当てることはできません。

サイレントインストール準備

GUIでインストールするようですが、GUI入れてるサーバーは少ないでしょうから、サイレントインストールという方法をとります。
サイレントという名の通り、GUIを起動せず、また項目の選択もせずインストールします。

  • 必要なもの
  1. Fusion Middleware Infrastructure、OTDのインストーラjarファイル
  2. レスポンスファイル
  3. oraInst.locファイル

Fusion Middleware Infrastructureとは、OTD等のミドルウェアを管理するものみたいな感じです。

1.インストーラは以下からダウンロードします。サインインが必要なので、My Oracle SupportのIDを取得しておきます。(無料です)
Oracle Software Delivery Cloud
サインインをした後、「Fusion Middleware Infrastructure」と検索して「Oracle Fusion Middleware 12c Infrastructure 12.2.1.1.0」を選択、プラットフォームから「Linux x86-64」を選択します。
また、同様に「Oracle Traffic Director 12.2.1.1.0」で検索して「Oracle Traffic Director 12.2.1.1.0」を選択、プラットフォームから「Linux x86-64」を選択します。
選択したら、右の方にある「Continue」を押します。
画面が遷移したらもう一度「Continue」を押します。
そしてライセンス同意のチェックを入れて「Continue」を押します。
すると、ダウンロードリンクが出てきます。そこから以下の2つをダウンロードします。
・V138469-01.zip
・V266904-01.zip

2.レスポンスファイルは普通にFMW用とOTD用に2つ作ります。


基本的には上記をコピペでいいですが、ORACLE_HOMEは適宜インストールしたいディレクトリに変更してください。

3.次にoraInst.locファイルです。これは共通で使用します。
もしOracleDBやWLSをインストールしていたら、使用したものをコピーして使ったほうがいいです。
inst_groupはインストールするユーザーのグループを通常指定します。

サイレントインストール

必要なものは揃ったので、いよいよインストールしていきます。
インストールは以下のユーザー等で実施し、レスポンスファイルはホームディレクトリ、oraInst.locは/etc配下にあるものとします。

ユーザー oracle
グループ oinstall
ORACLE_HOME /opt/oracle/otd12.2.1.1

まずは、インストール先のディレクトリを作成します。理由は簡単、/optはroot権限なのでoracleユーザーではディレクトリを作成できないため。

$ su -
# mkdir -p /opt/oracle/{otd12.2.1.1,oraInventory}
# chown -R oracle:oinstall /opt/oracle
# exit

では、ダウンロードしたzipを解凍しつつ、インストールしていきます。

$ unzip V138469-01.zip
$ java -jar fmw_12.2.1.1.0_infrastructure.jar -silent -responseFile /home/oracle/fmw_inst.rsp -invPtrLoc /etc/oraInst.loc
$ unzip V266904-01.zip
$ ./fmw_12.2.1.1.0_otd_linux64.bin -silent -responseFile /home/oracle/otd_inst.rsp

エラーが出ていなければ、以上でインストールは完了です。
Warningはたいていは無視しても問題ないです。

次回はサイレントでドメイン作成していきます。

VIP(HSRP)間の接続について

長らく更新が途絶えてしまいました。。。

はじめに

ネットワークを構築するとき、各機器の冗長化は当たり前かと思います。
その際、CiscoのL3SWやRTを使用する場合はHSRPを組むことが多いでしょう。
今回はHSRPを組んだ機器間の接続について、実装して確認したのでブログに残そうと思います。

実験した構成

まず物理的な構成は↓の通りです。

f:id:hirano00o:20180428112405p:plain


この状態で、L3SW#1-RT#1間が切れた場合に予備系へ切り替わり、通信が継続できるかを実験しました。

f:id:hirano00o:20180428112521p:plain

次にIPアドレス等、論理構成です。
L3SW間はtrunkポートです。

f:id:hirano00o:20180428112543p:plain

IPアドレス マスク 機器
172.0.0.1 255.255.255.252 PC#1
172.0.0.2   L3SW#1
10.0.0.1 255.255.255.248 L3SW VIP
10.0.0.2   L3SW#1
10.0.0.3   L3SW#2
10.0.0.4   RT VIP
10.0.0.5   RT#1
10.0.0.6   RT#2
10.0.0.9 255.255.255.252 RT#1
10.0.0.10   RT#2
10.0.0.13 255.255.255.252 RT#1
10.0.0.14   PC#2

次にHSRPの設定です。
L3SW側とRT側で、HSRPのグループ番号が違うところが肝です。グループ番号を同じにした場合、同じグループにVIPを2つ持つことになり、下記のエラーメッセージが出力され続け、正常にHSRPが組まれません。

%HSRP-4-DUPADDR: Duplicate address 10.0.0.1 on Vlan100, sourced by xxxx.xxxx.xxxx.xxxx

L3SW#1 L3SW#2
standby 1 ip 10.0.0.1 standby 1 ip 10.0.0.1
standby 1 timers 1 4 standby 1 timers 1 4
standby 1 priority 110 standby 1 priority 100
standby 1 preempt standby 1 preempt
RT#1 RT#2
standby 2 ip 10.0.0.4 standby 2 ip 10.0.0.4
standby 2 timers 1 4 standby 2 timers 1 4
standby 2 priority 110 standby 2 priority 100
standby 2 preempt standby 2 preempt

実験結果

  • 現用系の場合

想定通りに、グループ1はL3SW#1がActive、L3SW#2はStandbyとなり、VIPはL3SW#1が持っている状態となりました。
同様にグループ2はRT#1がActive、RT#2がStandbyとなりました。
なお、グループ1,2ともに、HSRPのハローパケットは緑の経路を通って通信されています。

  • 予備系の場合

L3SW#1とRT#1間が切れた場合、RT#2がActiveとなり、下記のような経路で通信されるのでしょうか。

f:id:hirano00o:20180428112604p:plain


結果は、上図のとおりの経路で通信されました。
RT#1はHSRPを設定しているリンクがダウンしている状態のため、Initとなっていました。
RT#2はActiveとなっており、RT#2から見たStandby系はunknownとなっていました。

まとめ

片方がL3SW、片方がRTという構成で、両機器がそれぞれHSRPを組むという例が見当たらなかったので実験してみましたが、見事にうまくいきました。
あとはアクセスリストを入れてあげれば、実際に企業等で利用できる状態になるでしょう。
今回はHSRPだけでしたが、さらにRT側でSNATなどする場合は、予備系になったときのために、戻りのスタティックルーティングをRTに追加してあげる必要がでてきます。
そちらについてはまた今度ですかね。