Cover Image

Docker コンテナによる VersionVault Dynamic View クライアントアクセス

2023/1/11 - 読み終える時間: 12 分

Docker Container with VersionVault Dynamic View Client Access の翻訳版です。


Docker コンテナによる VersionVault Dynamic View クライアントアクセス

はじめに

本ブログでは、HCL VersionVaultとDockerをインストールしたDockerホストに、Docker Container with Dynamic View Client Accessを提供する設定方法について説明します。これまで開発者は、1台のマシンで異なるバージョンのソフトウェアに対応する環境を構成するのは面倒な作業でした。しかし現在では、アプリのバージョンごとに「Dockerコンテナ」と呼ばれる隔離された環境を作成し、各コンテナは、開発者マシン上で同時に実行されるOSや他のコンテナの構成に影響を与えない個別の環境設定を保持することができます。このような柔軟な環境をユーザーに提供するため、HCL VersionVaultはDockerに対応するよう強化されました。

Si No: トピック
1 VersionVaultとDockerコンテナの統合のための前提条件
2 LinuxホストへのVersionVaultとDockerのインストール
3 NFS サーバーと Linux Automounter を Docker ホストにインストールする。
4 Dockerホスト上でのVOBとViewの作成
5 サンプルDockerコンテナ - 動的なビュークライアントアクセスを持つコンテナ
6 最終的な統合の動作
1. VersionVaultとDockerコンテナの統合のための前提条件

Linuxホスト上に以下の4つがインストールされ、稼働していることが必要です。

  • HCL VersionVault バージョン2.0.1以降
  • Docker
  • NFSサービス
  • Automounter サービス
  • LinuxホストへのDockerとVersionVaultのインストール

2.1. VersionVaultのインストール

  • MVFSとMVFSデバイスを共有するために、Dockerホストは最低限VersionVault 2.0.1をインストールし、VersionVaultダイナミックビュークライアントとして動作するように設定する必要があります。
  • コマンドラインユーザーのソフトウェア開発ワークステーションに必要な最小数のVersionVaultコンポーネントをインストールするため、Dockerホストでは、VersionVault最小開発者用インストールのみが必要です。
  • Dockerコンテナに含まれ、共有が必要な主なコンポーネントは、MVFSとview/VOBサーバーです。
  • HCL VV 2.0.1をDockerホストにインストールするには、IBM Installation Manager 1.8.6、1.9.1およびその将来の修正パックを使用する必要があります。

画像の説明

  • VV 2.0.1インストール後の "cleartool-version "コマンドのスクリーンショットを以下に掲載します。

画像の説明

2.2. Dockerのインストール

  • VersionVault 2.0.1がインストールされたLinuxホストには、最新バージョンのDockerをインストールすることができます。以下は、Docker Engineのインストール概要のリンクで、異なるLinuxプラットフォームでのインストール手順を共有しています。

https://docs.docker.com/engine/install/

1. DockerホストへのNFSサーバとLinux Automounterのインストール

  • VersionVaultは、NFSとLinuxオートカウンターを使用して、ビューやVOBストレージにアクセスします。Dockerホストシステムは、NFSとLinuxオートカウンター用に設定されている必要があります。

3.1. NFSサーバーのインストール

  • このブログ記事では、RedHat OSを使用しています。以下に示すコマンドは、使用する特定のLinuxディストリビューションによって異なります。

ステップ 1:サーバーの更新とホスト名の設定

サーバーには、再起動後も有効な固定IPアドレスと固定ホスト名が必要です。

画像の説明

ステップ 2:NFSサーバーのインストール。

次に、LinuxホストへのNFSサーバ・パッケージのインストールです。

画像の説明

インストール後、nfs-serverサービスを開始し、有効にします。

画像の説明

ステータスが "running" と表示されるはずです。

画像の説明

2. Linuxオートカウンターのインストール

ステップ 1:Linuxホストにautofsをインストールします。

画像の説明

  • AutoFSパッケージをインストールする場合、インストールプロセスでは以下のことが行われます。
  • /etcディレクトリに auto.master、auto.net、auto.misc などの複数の設定ファイルを作成します。
  • systemd に AutoFS サービスを作成 (Create) します。
  • 「nsswitch.conf」ファイルに automount エントリを追加し、files ソースにリンクします。

ステップ 2: インストール直後、systemctl status コマンドで AutoFS サービスが起動していることを確認します。

画像の説明

ステップ 3: スタートアップ時に実行されるように、AutoFSサービスを有効にすることもできます。

画像の説明

3. Docker Host での VOB、View 作成について

  • Dockerコンテナ内で使用するVOB/Viewを作成する場合、オプションを指定する必要があります。-ホスト、-hpath、-gpath を指定します。hpathとgpathは、いずれもVOB/Viewの格納ディレクトリのグローバルパス名を指定します。

例えば、ホスト名がtest_hostであるマシンにVOB/Viewを常駐させたいとします。DockerホストとVOB/Viewサーバーのホストであるtest_hostは、automounterを使用しています。

コンテナ内で使用するVOB/ViewをDockerホスト上に作成する場合は、以下のようにします。

cleartool mkview -tag testview -host dockhost -hpath /net/ dockhost /viewstg/testview.vws -gpath /net/dockhost/user/viewstg/testview.vws /net/dockhost /user/viewstg/testview.vwsを実行します。

cleartool mkvob -tag /vob/testvob -host dockhost -hpath /net/dockhost/vobstg/testvob.vbs - gpath /net/dockhost/user/vobstg/testvob.vbs /net/dockhost/user/vobstg/testvob.vbsを実行します。

VOB/View が Docker ホストまたは Docker コンテナ上に存在する場合に必要です。

Dockerコンテナでは、コンテナの設定次第でストレージもホスト名も一時的なものになるため、Dockerコンテナの外部のVOB/Viewを使用することをお勧めします。

1. サンプルのDockerコンテナ

動的なビュークライアントアクセスが可能なDockerコンテナ

  • この方法では、コンテナ内にビューを作成し、VOBにアクセスして新しいファイル/ディレクトリの要素を作成したり、既存のファイル/ディレクトリの要素を変更したりすることができます。
  • Docker build ディレクトリは、Dockerfile, config_ssh.sh, config_dir, docker_compose.yml から構成されています。
  • Linuxのベースイメージは、Dockerホスト上で動作するVersionVaultのリリースでサポートされている必要があり、initプロセスもサポートされている必要があります。RedHatとSUSEの両社は、それぞれのレジストリでベースイメージを提供しています。
  • Linuxベース・イメージには、VersionVaultを実行するために必要なすべてのパッケージが含まれていない場合があります。ユーザーは、これらのパッケージをインストールするためにコンテナを更新する必要があります。Technote 535653887639718343 を参照してください。
  • Dynamic View Client Access 搭載コンテナに関連するDocker buildディレクトリとサンプルDockerfile、docker_compose.yml、config_ssh.sh、config_dirの詳細については、以下のリンク先を参照してください。ウィンドウ右上のResourcesドロップダウンで、"HCL VersionVault and Docker Containers"という記事へのリンクを探します。

https://www.hcltechsw.com/versionvault

2. 最終的な統合の実行

  • Dockerfile と docker_compose.yml ファイルが必要な設定内容で作成されたら、Docker build ディレクトリに移動して、以下のコマンドを実行してコンテナを構築・実行する必要があります。引数"-d "は、コンテナをデタッチャブルモードで実行するために使用されます。

画像の説明

  • 上記のコマンドは、サービス用のコンテナのビルド、(再)作成、起動、アタッチメントを行うものです。実行中のコンテナを確認するには、以下のコマンドを実行する。

画像の説明

画像の説明

  • コンテナにsshでアクセスするためには、コンテナのIPアドレスを見つける必要があります。これを実現するために、以下のコマンドを実行する必要があります。

画像の説明

コマンドの出力の最後に、IPアドレスが表示されます。以下は、参考のためのサンプルスニペットです。

画像の説明

  • コンテナのIPアドレスが見つかったら、Dockerホストの/etc/hostsファイルにコンテナのIPとホストネームを入力します。同様に、Dockerfileで提供された入力に従って、コンテナ作成時に作成したアカウントを使用してコンテナにsshした後、コンテナの/etc/hostsファイルにDockerホストのIPアドレスとホスト名の詳細情報を追加してください。

  • このブログ記事では、コンテナ作成時に「root」アカウントを作成するようにDockerfileをカスタマイズしているため、コンテナのログインにも同じアカウントを使用します。また、Dockerfileを修正して、そのアカウントがClearCaseコマンドの実行、ビューの作成、VOBへのアクセスを確実に行えるようにすれば、必要に応じてVOBオーナーや通常のVersionVaultユーザーを作成することができます。

  • VOBオーナーアカウントは、Dockerホストに存在するようなコンテナ内に作成されるため、ログイン後に切り替えることができます。VersionVaultのVOBオーナーアカウントを特定する理由は、VOBやVOBオブジェクトをrootアカウントやVersionVault管理者グループに所有させることは、権限の問題に直面することになるため、良い習慣とは言えないからです。

画像の説明

  • コンテナ内で "cleartool "コマンドを実行できるようになりました。

画像の説明

DockerホストがVersionVaultのバイナリをボリュームとしてコンテナと共有しているからこそ、「cleartool」コマンドの実行が可能なのです。

画像の説明

  • Dockerコンテナから、DockerホストにホストされているVOBを一覧表示し、説明することができます。

画像の説明

  • DockerホストでホストされているVOBにアクセスするために、コンテナ内にビューを作成する。

画像の説明

画像の説明

  • VOBにアクセスするために、ビューをコンテナ内に作成した後、ビューに設定します。

画像の説明

  • チェックアウトを行い、"mkelem "を実行してVOBの下に新しいファイルエレメントを追加しました。最後にcatコマンドを実行し、test.txtファイルの中身を確認。

画像の説明

  • コンテナ内に作成したファイル「test.txt」は、Dockerホストからアクセスすることができます。

画像の説明

サンプルビルドの実行

※本節では、サンプルビルドを実行します。

  • このセクションでは、コンテナ内でビルドを実行する方法について説明します。
  • コンテナにsshで入り、VOBのオーナーアカウントに切り替えて、コンテナ内に作成したビューにセットし、VOBにcdします。

画像の説明

  • VOBの下にhelloworldディレクトリが作成され、その下に簡単なC言語プログラムが配置されているのがわかります。

画像の説明

  • 次に、ビルドユーティリティ "clearmake "を実行して、単純なCコードをコンパイルし、helloworldプログラムを実行して出力を見ます。

画像の説明

  • clearmakeの完了後、上記のスクリーンショットから、helloworldの実行ファイルが作成され、 実行可能な状態にあることが分かります。

画像の説明

  • この例では、コンテナ内でのシンプルなclearmakeのビルドを確認しましたが、同様の方法で、Dockerコンテナ内で実行可能な他のカスタマイズされたビルドを設定することが可能です。このように、異なるビルド環境のために複数の物理ビルドマシンを構成する代わりに、異なるコンテナ内で実行するようにビルド環境を構成することができるので、コストと時間を節約することができます。

  • VersionVaultは、コンテナ内にインストールすることができます。コンテナではMVFSファイルシステムのインストールと起動を行わないため、インストールはサーバーインストールである必要があります(最小または完全な開発者用インストールではありません)。

このブログについて

HCL Japan の Software 部門の複数担当者で HCL Software 全般について記しています。

Tags

Academy Accelerate Accelerator Actian Ambassador AoC AppDev Pack AppScan ASoC BigFix BigFix Workspace CAA CDP Clara Client Applicatin Access Cloud Native Commerce Common Local License Server Compass Connections Connnections CVE-2021-44228 DevOpes Velocity DevOps DevOps Code ClearCase DevOps Code RealTime DevOps Deploy DevOps.Launch.AppScan DevOps Model RealTim DevOps Model RealTime DevOps Plan DevOps Test DevOps Velocity Digital Experience Discover Domino Domino Leap Domino Volt Domino管理者アップデート認定試験対策 DQL DRYiCE DX Enterprise Integrator event General HCAA HCL Ambassador HCL Ambassadors HCL Domino REST API HCL OneTest Embedded HCL Z and I Emulator HCL Z and I Emulator for Transformation HCLSoftware U Hero history HTMO iControl iNotes IZSAM KEEP Launch Launch.DevOps Leap Link MarvelClient nds2019 ndv12beta Noets/Domino Nomad Nomad Mobile Nomad Web notes Notes/Domino notes-domino-9-10-limited-supportability-as-of-202204 Notes/Domino V12 Notes/Domion notescons Now OneDB OneTest OnTime REST RTist SafeLinx Sametime SoFy Total Experience Traveler Traveler for Microsoft Outlook Unica Unica Discover Unica Interact UrbanCode Deploy UrbanCode Velocity Velocity Verse VersionVault Volt Volt MX Volt MX Go Volt MX サンプルアプリ Wordload Automation Workload Automation youtube Z Z Abend Investigator Z and I Emulator Z and I Emulator for Transformation Z and I Emulator for Web Z and I Emulator for Web Client Z Asset Optimizer Z Data Tools Z Software Asset Manager ZAI ZAO ZIE ZIE for Transformation ZIE for Web ZIE for Windows ZIET ZIETrans ZIEWeb イベント ガイド クラウド サポート サポート技術情報 サポート終了 セキュリティ セキュリティー セキュリティー脆弱性 テクてく Lotus 技術者夜会 ニュース ノーツコンソーシアム パートナー ライセンス 九州地区 Notes パートナー会 出荷日 研修