2017-03-19

HP Operations Orchestration(HPOO) On VMWare(CentOS7 inside)

【そもそもの話】


最近、仕事絡みで、「HP Operations Orchestration」(以後「HPOO」)なる製品を調査することになった。
「Ansible」とか「Chef?」「Puppet」とか所謂「Infrastructure As Code」の領域に入るような
「運用自動化」的カテゴリに入る代物のようである。(「Cloud Slang」とかいうのもあるらしい)

さてさて、これなんですが、サーバ系製品ということで、対応環境は

・Windows Server
・RedHat Enterprise Linux

という具合・・・

「そんな高価もん買えまっしぇ~ん」
というボンビーな私。
ということで、CentOS様のご登場ということで。
到底サポートされないものに、無理やり乗せてしまおうという暴挙に出る。(笑)
ただし、使用したのは製品ではなくHPのページで公開されている、Community版(一応無償もの)である。(笑)

結果として、最初はちょっと困ったものの、わりと「さくっと」導入可能になったので、以下備忘録的に記録。
・・・
とはいえ、マニュアルとかお約束のようにアレ・・・なんで、それなりに試行錯誤したことは確か。
#分かってしまえば、「なんだかなあ・・・」ってなことなでんすが。

なお、あくまで備忘録なので見た目は重視してません。w
あと、非公式情報なのですべて自己責任な作業です。(ここ重要)

【ソフトウェア環境】


・HP Operations Orchestration Community版
 →ZIPになっていてインストールガイド等(英語)の各種ドキュメントも同梱されている。

・CentOS7インストールDVD
 →お約束ですが公式ホームページからゲットしてください。

・VMWarePlayerインストーラダウンロード
 →これもお約束です。ホームページからゲットしてください。

【ハードウェア環境】


基本ノートPCしか使わないのですが、今回はそれなりに重いソフトウェアなので、
ちょっと豪華仕様。ということで、今回はやはりSSDの効果がデカかった

□Lenovo Thinkpad W530
 ・CPU:Core i7 3630QM (4core/8threads)
 ・メモリ:32GB
 ・HDD:480GB(SSD)
 ・O S:Windows7 Professional(64bit)

 →なお、スペックの根拠は全くなく、私の所有するPCで一番スペックの高いものにしただけです。 

【参考資料】


そんなもんありません!
ということで、Community版同梱のドキュメント群が頼り。
まあ、内容はちょっと・・・アレだが、それなりにちゃんとしています。

【前提条件】


・Centralのみインストール
 →Community版自体は、Central(メインのサーバ)、RAS(スレーブノードサーバのようなもの)
  Studio(運用フローをビジュアルにデザインできるツール)がすべて同梱されている豪華仕様だが、
  用途的にはCentralだけでオケ。(そもそもStudioはWindowsのみ)
  
・DBはPostgresql
 →こういった製品によくある、管理情報をDBで保持するって方式です。
  いくつか選択できる(Oracle、MySQL、MSSQL Server・・・)が、インストールガイドをみて
  (なんとなく)一番手間が少なそうなPostgresqlに決定。
  →実は、内部に組み込みのDBというのもあるのだが、ガイドで「推奨しない・・・」とかあるのと
   まあ、検証の一環でもあるので・・・というのが非選択理由である。
  
  →んでもって、HPOOとPostgreqlは同じサーバ内といことでLocal接続で。
  
・あくまで検証用の割り切り環境構築
 →ユーザ権限とかFirewallの穴あけとか、Production環境だと色々検討すべきだが、
  個人環境の検証なんで、安直にやってたりしてます。

【構築手順】



→以下、私の気分でやっているので、他にもやり方はあります。

1.CentOS仮想マシン構築

 1-1.HPOO Central用VM作成
  1-1-1.CentOS7インストールDVDダウンロード
  1-1-2.VMWarePlayerインストーラダウンロード
  1-1-3.VMWarePlayerインストール

 →ここまで、説明不要と思うが公式ページからISOファイルとか
  インストーラファイルをダウンロードして対応というやつである。

 1-2.VMWarePlayerで作成

 
 →使い方とは、「聞くな!」って感じであるが、これくらいかなという
  最低限必要なオプション設定を
 

  1-2ー1.VMオプション設定

    基本の設定項目は以下のような感じ。なんとなくなので根拠はありません。
     ・「後でOSをインストール」
     ・ゲストOS: 「Linux」
     ・バージョン: 「CentOS 64ビット」
     ・仮想マシン名: 任意
     ・場所:任意
    →以下の設定で「ハードウェアをカスタマイズしておく」。
     ・CPU: 4コア
     ・メモリ: 8GB
     ・HDD: 40GB
     ・CD/DVD: ダウンロードしたDVD-isoファイル

  1-2-2.CentOSインストール

    (1)インストールパッケージ指定
      →「ソフトウェアの選択」でオプション指定。以下のオプションにチェックを入れる。
       ・サーバ(GUI使用)
       ・Postgresql
       ・開発ツール(VMWareTools用)
       ・互換性ライブラリ(HPOOインストーラ用)
       
       ※1:CentOS7同梱のものはHPOOの対応バージョン以上なので楽します。
       ※2:gcc等がVMWareToolsのインストールに必要。
       ※3:HPOOのインストーラが使用するEclipseのライブラリ(結局はgtk)が、
        (どうやら、CentOS7からみて)古いOSのライブラリを使用するようになっているため。

    (2)ネットワーク設定
      →検証用ということもあり、以下のように必要なところだけ。
      ・イーサネット接続の設定は「ON」
      ・ホスト名(ドメイン名)は任意

    (3)rootユーザ設定
      →パスワードは任意。(笑)
    (4)追加(作業&実行用)ユーザ設定
     →任意。
      →ただし、このユーザをHPOOインストールユーザとする前提なので、それっぽい名称で。
      →以降の手順を考えるとここで「管理者」の設定をしてしまっても良いかもしれない。(未確認)

  1-2-3.起動確認(VM再起動) 

     →つーか、インストール完了したら、再起動するしかないですが。。。

 1ー3.VMWareToolsインストール 

    →説明省略。まあ、特になくても検証には関係ないので、しなくても良いです。
     (なら書くなよって。。。笑)

2.HPOO用DB環境設定

 2-1.DB初期化

  →DBスペースの作成を以下のように行う。
   →Postgresqlはインストール済みの前提なので、「root」から「postgres」ユーザにsuする。
    →当然、Postgresqlのインストール時に「postgres」ユーザも作成されている。

     -----------------------------------------------------
     [Postgresインストールディレクトリ]/bin/pg_ctl initdb
     -----------------------------------------------------

 2-2.Postgresqlネットワーク設定

  2-2-1.接続設定

   →必要に応じて、以下のファイルを編集。
     ただし、CentOS7の場合、デフォルトでlocalhostがtrustになっているので、
    実際は対応不要。
     -----------------------------------------------------
     [Postgresインストールディレクトリ]/data/pg_hba.conf
     -----------------------------------------------------

  2-2-2.Listen設定

   →よくあるパターンの記述で楽をする。以下のファイルを編集。
     -----------------------------------------------------
     [Postgresインストールディレクトリ]/data/postgresql.conf
     →listen_addresses = '*'
     -----------------------------------------------------

 2-3.HPOO用オプション設定

  →インストールガイドの記述に従い、以下ファイルのオプションを書き換える。
     -----------------------------------------------------
     [Postgresインストールディレクトリ]/data/postgresql.conf
     -----------------------------------------------------
     ・default_transaction_isolation = 'read committed'
     ・autovacuum = on
     ・track_counts = on
     ・max_connections = 1000
     -----------------------------------------------------

 2-4.自動起動設定

  →なんと、インストール完了時点ではOS起動に連動して起動してくれない仕様。
   ただし、設定ファイルはあるのでコマンドを実行するだけ。 

  2-4-1.設定有効可

   →CentOS7ではSystemdベースの仕掛けになっているので、以下のように実行。
    この時点では、いったん「root」に戻っておく。
     -----------------------------------------------------
     systemctl enable postgresql
     -----------------------------------------------------  

  2-4-2.起動確認

   →こちらも、お約束で以下のように実行。
    確認は「status」で確認する以外に、「ps」とかも併せて使ったほうが良いと思う。
     -----------------------------------------------------
     systemctl start postgresql
     -----------------------------------------------------

3.HPOO用DB作成

 3-1.ユーザ(ロール)作成

  →DBが起動したら、再び「postgres」ユーザに「su」し、
   以下のコマンド実行でユーザを作成(DB作成権限付にしておく)する。
     -----------------------------------------------------
     createuser -a -d -U postgres -P hpoo1
     -----------------------------------------------------
    →パスワードの入力を求められる(2回)ので任意のパスワードを設定。"

 3-2.DB作成

  →上記で作成したDBユーザでpostgresqlにログインしDBを作成する。
     -----------------------------------------------------
     -bash-4.2$ psql -U hpoo1 postgres
     \psql (9.2.18)
     "help" でヘルプを表示します.
     
     postgres=# create database hpootest;
     -----------------------------------------------------
     →終わったら「\q」で抜ける。     

 3-3.作成DB確認

  →先のDBユーザで、作成したDBにログインできることを確認しておく。
   ログインできればOK。
     -----------------------------------------------------
     -bash-4.2$ psql -U hpoo1 hpootest
     \psql (9.2.18)
     "help" でヘルプを表示します.
     hpootest=# \q
     -bash-4.2$ 
     -----------------------------------------------------

4.HPOO Centralインストール用権限設定

 4-1.sudo設定

   →なんでも、HPOOのインストールは「管理者権限」をもったユーザ(rootではない)らしいので
    インスール時に追加したユーザで「sudo」できるようにする。
    →ということで、「root」に戻る。
   →HPOO Centralインストール用にroot権限を「追加」ユーザに設定するため設定ファイルを開く。
     -----------------------------------------------------
     # visudo
     -----------------------------------------------------
   →設定ファイルの末尾に「hpoo1」ユーザの設定を追加。
    ※インストール用の割り切りなので本番設定とは別に考えること。
     -----------------------------------------------------
     hpoo1   ALL=(ALL)       ALL    →これを追加
     -----------------------------------------------------
     終わったら「wq!」で →保存して抜ける。

5.HPOO Centralインストール

 5-1.インストーラ入手&配置&実行

  (1)HPのサイトから、「HP Operations Orchestration Community版」を入手する。
    (登録が必要となります)
  (2)WinSCP等を使用してLinux用インストールファイル(要ZIP解凍)を
    先の作業用ユーザ(hpoo1)のホーム等に配置。
   
  (3)配置したインストールファイルを管理者権限を保持した状態で実行する。
    (以下の例はカレントディレクトリにインストーラがある前提)
    パスワードを聞かれるので、事前に設定したパスワードを入力する。
     -----------------------------------------------------
     $ sudo bash community-installer-linux64.bin 
     [sudo] password for <<追加ユーザ名>>:  →事前に設定したパスワード
     -----------------------------------------------------

 5-2.オプション設定等  

  →検証用の割り切り設定とするので、あまり設定するところはありませんが、以下のようになります。
   ・インストール先ディレクトリはデフォルト。
   ・HTTP ACCESSについては「8080」ポートを有効にする。
    →接続確認を実施すること
   ・DB設定は先に作成したDB(postgresql)の設定を入力。
    →接続確認を実施すること

 5-3.HPOO Central用FireWall設定

  →VM外部からCentralへのhttpへのアクセスをするので、にFireWallの設定をする。
   →HPOOで使用する以下の設定を追加する。(※)
     -----------------------------------------------------
     ・Configuration:Permanent
     ・Zone:Public
     ・Port:
      ・8080 tcp
      ・8443 tcp
     -----------------------------------------------------
     ※GUIのFirewall設定ツールを使う。(インストール済み)
      →アプリケーション→諸ツール→Firewall
      →管理者パスワードを聞かれるので入力する。
      →設定のReloadを忘れずに。       

 5-4.再起動設定
  5-4-1.systemd設定ファイル作成

   →現時点(201703)ではHPOOの再起動設定はSysVInitベースのものらしく、CentOS7のSystemdの仕組みに
    適合しないようです。
    →自動起動用のスクリプト作成オプションで作ったファイルはいわゆる「/etc/rcXX.d」で動くタイプでした。
     結局うまく動かなかった。(やり方悪い?)

   →ということで、以下のようにsystemd用の設定ファイルを独自に作成。
    (HPOO Centralのインストールディレクトリは仮に「/opt/hp/oo/central」としている)
     -----------------------------------------------------
     # vi /usr/lib/systemd/system/hpoocentral.service
     -----------------------------------------------------
     [Unit]
     Description=HP Operations Orchestration Central
     After=network.target
     Before=postgresql.service

     [Service]
     Type=forking

     ExecStart=/opt/hp/oo/central/bin/central start
     ExecStop=/opt/hp/oo/central/bin/central stop
     ExecReload=/opt/hp/oo/central/bin/central restart
     PIDFile=/opt/hp/oo/central/bin/HPOOCentral.pid

     [Install]
     WantedBy=multi-user.target"
     -----------------------------------------------------
     →Postgreqlを使うようにしているので、Postgresqlのサービスと連動させる
      のがポイント。"

  5-4-2.設定の有効化

   →ここまでくると、後はお約束で、作成した設定を有効化する。
     -----------------------------------------------------
     # systemctl enable hpoocentral
     -----------------------------------------------------
   →念のための起動確認。
     -----------------------------------------------------
     # systemctl start hpoocentral
     -----------------------------------------------------
   →ここは、「ps」でプロセス自体が起動しているかを確認したほうが良い。
     →HPOOがPostgresqlに接続するので、そのプロセスまで確認できれば完璧!
     -----------------------------------------------------
     $ ps aux | grep central
     -----------------------------------------------------

  5-4-3.設定の確認

   (1)VM再起動
      →ダメ押しで再起動後、RASのプロセスが起動していることを確認。
     -----------------------------------------------------
     $ ps aux | grep central
     -----------------------------------------------------
     →「5-4-2.」と同じくプロセスの確認ができればオケ。

   (2)HPOO接続
      →VM外部(ホストOS側)からインストール時に設定したURLにアクセス出来るか
       確認する。
      →ブラウザで以下のURLにアクセス。
     -----------------------------------------------------
     http://[CentralインストールマシンのIPアドレス]:8080/oo
     -----------------------------------------------------

6.HPOO デフォルトコンテンツデプロイ


  →以降は、おそらくCommunity版のみの対応。
   →Community版の「Getting_Started」ガイドに以下のような記述があり、
     -----------------------------------------------------
     The HP OO Community Edition comes with the Base, Request Fulfillment, and Remediation
     content packs. These content packs should be deployed in Studio after the installation. In
     Central you will be able to deploy them manually.
     -----------------------------------------------------
    Community版には「Base, Request Fulfillment, and Remediation」のコンテンツパックが同梱
    されるが、Studioをインストール後にデプロイしろとか、Centralには手動でデプロイできるとか
    いうことらしいので、要は自分でデプロイしろってことね。
     
  →ZIPを解凍すると、コンテンツパック(実はJAR)も展開されるので、Studioのインストールはすっ飛ばして
   さっさとデプロイをしてしまうことにする。

 6-1.HPOO接続

  →「5-4-3.(2)」と手順な同じ。

 6-2.デフォルトコンテンツパックデプロイ

  →管理コンソール画面の所定のタブから以下コンテンツパックをアップロードする。
     -----------------------------------------------------
     ・oo10-base-cp-1.6.2.jar
     ・oo10-remediation-cp-1.2.0.jar
     ・oo10-request-fulfillment-cp-1.2.0.jar"
     -----------------------------------------------------

→以上、お疲れである。
 SSDなら1時間いらない作業だがHDDだとどうかな~。w

この、環境でStudioで作った超テキトー作業フローの直接やスケジュール起動とか、
Javaで独自に作成する操作(プラグインと呼ぶらしい)のサンプルの起動は出来ているので、
まあ、検証環境的なものにはなったと思う。

ということで、まだ、スタートラインですが・・・

0 件のコメント:

コメントを投稿