株式会社ユーザベースの技術チームブログです。インフラチームの小林です。前回の記事から引き続き、今回からHinemos5.0.1への移行のお話です。その前に1箇所訂正があります前回のブログで書いたジョブスケジュール日跨ぎの件ですが、0:00~48:00に設定する事で、日跨ぎができました!先日Hinemosセミナーに出た際に、NTTデータさんに教えてもらいました。ありがとうございます。(けれど、日付の指定が年・月・日をいちいち選ばないといけないので、やっぱり不便です。日付選択を、カレンダーから選択できる機能もつけてしてほしい・・・と思ってます。)移行の流れさて、話を本題に。弊社のHinemos環境をバージョンアップするにあたり、おおざっぱに以下の流れで行いました。動作検証Hinemos3のデータをHinemos5に移行Hinemos3からHinemos5への順次切り替え(正確にはHinemos3.1.2とHinemos5.0.1ですが、省略します。新規構築は、マニュアル通りに行えば特に問題はありません。動作検証においては、Hinemos3ではあまり高度な機能を使っていなかったこともあり、ジョブスケジューラとして、以下のような基本的な部分だけの検証で十分でした。(新機能は移行後に順次追加。)指定した通りにコマンド実行ができるかきちんと先行条件が効くかスケジューラが機能するか上の部分について全然問題はなかったのですが、Hinemos3と違うところがあったので、思いついた部分を列挙します。先行条件が自動で変わって便利!Himemos3の時、ジョブIDを変更したいと思っても、後続のジョブの先行条件も変更しなければならず、すごく億劫でした。ところが、今回のバージョンアップで試してみたところ、下記のようにジョブIDを変更すると、それに紐付く後続ジョブの先行条件が自動で変わってくれます!デフォルトのチェックが余計?新規ジョブ作成時、デフォルトで【条件を満たさなければ終了する】にチェックが入っているのですが、これにチェックが入っていると、前のジョブが異常終了した際などに終了してしまうので、弊社の環境では不便でした。ジョブをコピーして追加したい時に、うまくコピーができる場合と、できない場合(実行コマンド等が空になる)があるので、その謎を解きたいと思ってます。次に、2点目の「Hinemos3のデータをHinemos5に移行」では、弊社の環境でノード数は約70、ジョブの登録数は約3000とありました。これを人力で、ミスなく再設定する自信がない・・・という事で、Hinemosのデータ変換は、Hinemosソリューションパートナーのアトミテックさんに依頼をさせていただきました。後々それが大きな助けとなりました。ちなみに、アトミテックさんは、ブログでHinemosの情報発信をしており、いろいろな機能の検証をされてます。弊社側での残作業は3つ目の「Hinemos3からHinemos5への順次切り替え」になります。以下の要因から、一括切り替えではなく、順次確認をしながらの切り替えが可能でした。Hinemos3とHinemos5のエージェントは同居可能(Windows環境は除く)ジョブの組み方を単純にしているため、機能検証をする項目が少ない後者について、もう少し詳しく説明します。一般的なジョブの組み方としては、以下のようにジョブネット間を先行条件で繋ぐことが多いと思います。(Hinemosに限らず)ところが、弊社環境では、ジョブネット間の連携において、先行条件で繋いでいませんでした。次のジョブは、そのファイルがあると動くようにしており、ファイルの作成・監視もshellで動かしています。このおかげで、こんなことが可能になります。スケジュールに余裕を持たせた移行が可能な状況でした。以下のいずれかのopenjdkをインストールしてください。java-1.6.0-openjdkという事になっているのですが、弊社ではOracleJDK1.8を使ってました。Agentにいれるために、既存のサービスに影響が出そうなことをしたくない。バージョンが違ってもインストール先が一緒だということ。(rpmコマンドでのインストールなので、オプションを付ければ変更もできるかもしれませんが、デフォルトはこのまま)つまり、異なるバージョンが同居できるといっても、インストール先をデフォルトから変更をしないといけないのです。状況を整理すると、Agent用にサポート対象バージョンのOpenJDKを入れるか、OracleJDK1.8を使い続けるか。Hinemos3とHinemos5のAgentが同居できるといっても、どちらかのインストールディレクトリを変えないといけない。いう問題にぶつかりました。http://openjdk.java.net/をみると、yumからしかインストールができないようです。yumでインストールした場合、万が一環境変数に変更があったりすると、既存のジョブに影響が出てしまう。