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 | 最終的な統合の動作 |
Linuxホスト上に以下の4つがインストールされ、稼働していることが必要です。
2.1. VersionVaultのインストール
2.2. Dockerのインストール
https://docs.docker.com/engine/install/
1. DockerホストへのNFSサーバとLinux Automounterのインストール
3.1. NFSサーバーのインストール
ステップ 1:サーバーの更新とホスト名の設定
サーバーには、再起動後も有効な固定IPアドレスと固定ホスト名が必要です。
ステップ 2:NFSサーバーのインストール。
次に、LinuxホストへのNFSサーバ・パッケージのインストールです。
インストール後、nfs-serverサービスを開始し、有効にします。
ステータスが "running" と表示されるはずです。
2. Linuxオートカウンターのインストール
ステップ 1:Linuxホストにautofsをインストールします。
ステップ 2: インストール直後、systemctl status コマンドで AutoFS サービスが起動していることを確認します。
ステップ 3: スタートアップ時に実行されるように、AutoFSサービスを有効にすることもできます。
3. Docker Host での 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コンテナ
https://www.hcltechsw.com/versionvault
2. 最終的な統合の実行
コマンドの出力の最後に、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管理者グループに所有させることは、権限の問題に直面することになるため、良い習慣とは言えないからです。
DockerホストがVersionVaultのバイナリをボリュームとしてコンテナと共有しているからこそ、「cleartool」コマンドの実行が可能なのです。
※本節では、サンプルビルドを実行します。
この例では、コンテナ内でのシンプルなclearmakeのビルドを確認しましたが、同様の方法で、Dockerコンテナ内で実行可能な他のカスタマイズされたビルドを設定することが可能です。このように、異なるビルド環境のために複数の物理ビルドマシンを構成する代わりに、異なるコンテナ内で実行するようにビルド環境を構成することができるので、コストと時間を節約することができます。
VersionVaultは、コンテナ内にインストールすることができます。コンテナではMVFSファイルシステムのインストールと起動を行わないため、インストールはサーバーインストールである必要があります(最小または完全な開発者用インストールではありません)。