第5章 RHEL CDK の使用
5.1. RHEL CDK の使用
Vagrant box が追加され、1 つ以上の VM が実行中である場合、CDK 環境の使用および管理を開始するためにいくつかのタスクを実行できます。本章では、Red Hat CDK の使用に関連するトピックを扱います。
5.1.1. CDK Vagrantfile の選択
CDK zip ファイルには、Vagrant から異なる方法で設定された RHEL VM を起動するために使用できる複数の異なる Vagrant ファイルがあります。現時点では、rhel-ose、rhel-docker-eclipse、および rhel-k8s-singlenode-setup を選択できます。
5.1.1.1. OpenShift を使用した開発における rhel-ose の使用
rhel-ose ディレクトリーから vagrant up
を実行する場合、Vagrantfile はインストールした vagrant box から RHEL 仮想マシンを起動します。その box の特徴は以下の通りです。
- OpenShift を使用して CDK 開発環境をセットアップします (https://www.openshift.com/enterprise/whats-new.html を参照)。
- RHEL VM からホストシステムにサービスを公開するためにプライベートネットワークを作成します。
rhel-ose Vagrantfile から CDK RHEL VM を起動し、この使用を開始するには、以下を実行します。
rhel-ose ディレクトリーに切り替え、RHEL VM を起動します (Windows の場合、
%USERPROFILE%\cdk\components\rhel\rhel-ose
を使用します)。$ cd ~/cdk/components/rhel/rhel-ose/ $ vagrant up
同じディレクトリーから、以下のように box をプロビジョニングします。
注意:
vagrant provision
が必ずしも必要な訳ではありませんが、これはタイムアウトの問題を解決するのに役立ち、次のステップについてのヘルプメッセージを表示するのに使用できます。$ vagrant provision ==> default: Running provisioner: shell... default: Running: inline script ... ==> default: [INFO] Create 'test-admin' user and 'test' project ... ==> default: ==> default: You can now access OpenShift console on: https://10.1.2.2:8443/console ==> default: ==> default: To use OpenShift CLI, run: ==> default: $ vagrant ssh ==> default: $ oc status ==> default: ==> default: To become a cluster-admin, add '--config' to oc commands: ==> default: $ vagrant ssh ==> default: $ oc status --config=/var/lib/origin/openshift.local.config/master/admin.kubeconfig ==> default: ==> default: To browse the OpenShift API documentation, follow this link: ==> default: http://openshift3swagger-claytondev.rhcloud.com ==> default: ==> default: Then enter this URL: ==> default: https://10.1.2.2:8443/swaggerapi/oapi/v1 ==> default: .
プロビジョニングの終わりに、OpenShift コンソールにアクセスする方法について説明した出力が表示され、
oc
コマンドラインを使用して OpenShift プロジェクトの使用を開始することができます。以下は、これを開始する 1 つの方法です。- Web ブラウザーが https://10.1.2.2:8443/console などの OpenShift コンソールの表示される URL を指すようにします。
test-user
として、パスワードtest-user
を使ってログインします。- OpenShift Web コンソールの手引きについては、Getting Started for Developers: Web Console ガイドを参照してください。
- 初回時の OpenShift アプリケーションの作成については、OpenShift Creating New Applications ガイドを参照してください。
注記OpenShift (ose) サービスを停止するには、仮想マシンをシャットダウンする必要があります。
atomic stop
コマンドは現時点では適切に機能しません。+
rhel-ose Vagrantfile から作成された RHEL VM を使用する方法の詳細は、rhel-ose ディレクトリーの README.rst ファイルを参照してください。
5.1.1.2. Eclipse を使用した開発における rhel-docker-eclipse の使用
rhel-docker-eclipse ディレクトリーから vagrant up
を実行する場合、Vagrantfile はインストールした vagrant box から RHEL 仮想マシンを起動します。この box の特徴は以下の通りです。
- docker サービスを有効にし、起動します。
- VM はホストから Eclipse IDE で利用できます。
rhel-docker-eclipse Vagrantfile から CDK RHEL VM を起動し、その使用を開始するには、以下を実行します。
rhel-docker-eclipse ディレクトリーに切り替え、RHEL VM を起動します (Windows の場合、
%USERPROFILE%\cdk\components\rhel\rhel\rhel-docker-eclipse
を使用します)。$ cd ~/cdk/components/rhel/rhel-docker-eclipse/ $ vagrant up
vagrant ssh
を使用してログインし、RHEL VM のシェルを開き、systemctl
を使用して docker のステータスを確認します。$ vagrant ssh [vagrant@localhost ~]$ systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Drop-In: /usr/lib/systemd/system/docker.service.d └─flannel.conf Active: active (running) since Mon 2016-01-25 13:28:55 EST; 13min ago Docs: http://docs.docker.com ...
vagrant ssh
コマンドを使うと、ユーザーvagrant
(パスワードvagrant
) は RHEL VM に自動ログインします。systemctl
コマンドは、docker サービスがアクティブで、有効にされていることを示しています。- docker コマンドの使用によるコンテナーの取得、実行、停止、起動、構築またはその他の方法による使用を開始できます。直接
docker
コマンドを使用する方法の詳細は、「Get Started with Docker Formatted Container Images (Docker フォーマットのコンテナーイメージの使用方法)」を参照してください。
5.1.1.3. Kuberntes を直接使用した開発における rhel-k8s-singlenode-setup の使用
rhel-k8s-singlenode-setup ディレクトリーから vagrant up
を実行する場合、Vagrantfile は RHEL 仮想マシンを、インストールした vagrant box から起動します。その box の特徴は以下のようになります。
- docker サービスを起動します。
- RHEL VM で一体型の Kubernetes Master および Node を実行するために必要なすべてのサービスを起動します。
結果として作成される仮想マシンでは、Kubernetes pod、サービス、レプリケーションコントローラーおよびその他の機能を構築するためにkubectl
コマンドの使用を開始できます。
rhel-docker-eclipse ディレクトリーに切り替え、RHEL VM を起動します (Windows の場合、
%USERPROFILE%\cdk\components\rhel\rhel\rhel-k8s-singlenode-setup
を使用します)。$ cd ~/cdk/components/rhel/rhel-k8s-singlenode-setup/ $ vagrant up
vagrant ssh
を使用して RHEL VM にアクセスし、kubernetes のステータスを確認します。$ vagrant ssh [vagrant@localhost ~]$ kubectl cluster-info Kubernetes master is running at http://localhost:8080
- RHEL Kubernetes 対応の VM の使用を開始します。Kubernetes で実行するコンテナー化されたアプリケーションを開発する方法の詳細は、『Get Started Orchestrating Containers with Kubernetes』ガイドの「Launching container pods with Kubernetes」セクションを参照してください。
5.1.2. RHEL VM へのアクセス
Red Hat CDK を使用して起動する仮想マシンにアクセスするにはいくつかの方法あります。同様に、OpenShift および Eclipse などの Web UI から CDK VM にアクセスする方法は複数あります。以下のセクションでは、Vagrant から CDK にアクセスする方法について説明します。
5.1.3. 実行中の Running Vagrant Box との相互作用
起動している Vagrant box を使用するには、まずその box を起動したディレクトリーに切り替えます。たとえば、cd %USERPROFILE%\cdk\components\rhel\rhel-ose
(Windows) または cd ~/cdk/components/rhel/rhel-ose
(Fedora、RHEL、または Mac OS X) などに移動します。この場所から複数の異なる vagrant
コマンドを実行して、boxを異なる方法で使用し、管理することができます。
vagrant
コマンドと一緒に使用できるサブコマンドを一覧表示します。
$ vagrant list-commands
SSH を使用して Red Hat Enterprise Linux CDK Vagrant Box にログインします。
$ vagrant ssh
上記により、ユーザーは vagrant ユーザーとしての RHEL 仮想マシンに自動ログインします。これが終了したら、SSH セッションを終了します (exit
を入力)。Vagrant box を停止するには、以下を実行します。
$ vagrant halt
システム上ですべての Vagrant box の状態を確認し、box が適切に停止されていることを確認するには、以下を使用します。
$ vagrant global-status
任意の時点で作成した VM および仮想化の空きリソースを削除する必要がある場合は vagrant destroy
コマンドを使用します。ホームディレクトリーの.vagrant.d
にある Vagrantfile および box イメージはそのまま残り、後続の vagrant up
コマンドを使って新規バージョンの環境を再作成できます。
$ vagrant destroy
Vagrant がマシンごとの状態を保持する .vagrant
サブディレクトリーを削除する前に vagrant destroy
コマンドを使用して仮想化 (libvirt または Virtualbox) リソースを解放します。libvirt を使用するシステムに .vagrant
サブディレクトリーがない場合は、virt-manager
(GUI) または virsh
(CLI) などの libvirt ツールを使用して、Vagant が作成したリソースを手動で削除してから同じ名前の Vagrant box を立ち上げることができます。同様に、仮想化に Virtualbox を使用しているシステムでは、Virtualbox GUI を使用して Vagrant で作成したリソースを削除します。
vagrant destroy
の後に、Vagrant box を元の正常な状態で再び立ち上げることができます。
5.1.4. Vagrant CDK プラグインの使用
CDK には、CDK Vagrant box の使用に対して追加機能を提供するいくつかのプラグインが同梱されます。以下は、それらのプラグインとそれらを使用する方法についての説明です。
5.1.4.1. vagrant-adbinfo プラグインの使用
vagrant-adbinfo プラグインを使用すると、Vagrant CDK RHEL VM 内の docker サービスにアクセスするために必要な環境変数を表示できます。以下は、その情報を表示し、使用する方法例です。
$ vagrant adbinfo # Set the following environment variables to enable access to the # docker daemon running inside of the vagrant virtual machine: export DOCKER_HOST=tcp://192.168.121.45:2376 export DOCKER_CERT_PATH=/home/chris/cdk/components/rhel/rhel-ose/.vagrant/machines/default/libvirt/.docker export DOCKER_TLS_VERIFY=1 export DOCKER_MACHINE_NAME=785b349 $ eval $(vagrant adbinfo)
adbinfo の詳細は、CDK プラグインディレクトリーの vagrant-adbinfo-README.md
ファイルを参照してください。
5.1.4.2. landrush プラグインの使用
landrush プラグインを使用すると、ホストシステムと仮想ゲストの両方が識別できる単一 DNS サービスをセットアップできます。landrush プラグインを使用する方法の詳細は、CDK プラグインディレクトリーの vagrant-landrush-README.md
ファイルを参照してください。
5.1.4.3. vagrant-registration プラグインの使用
vagrant-registration プラグインを使用すると、RHEL VM の Red Hat サブスクリプションを Vagrant で管理できます。このプラグインは、ゲストで利用可能なタイプのサブスクリプションサービスでサブスクリプションを管理できます。ただし、現時点でこのプラグインは RHEL Suscription Manager (subscription-manager
および関連コマンド) およびこれ以前の rhn_register
コマンドのみをサポートしています。
「Red Hat Enterprise Linux Vagrant Boxe の Red Hat への登録」セクションには、CDK でサブスクリプションを管理する方法の詳細情報が記載されています。vagrant-registration プラグインの詳細は、CDK プラグインディレクトリーの vagrant-registration-README.md
ファイルを参照してください。
5.1.5. Red Hat Enterprise Linux Vagrant Boxe の Red Hat への登録
vagrant up
で RHEL VM を起動する時点で RHEL VM を登録していない場合は、すぐにこれを登録する必要があります。この際、RHEL システムの登録を強くお勧めします。登録しない場合、正式の Red Hat リポジトリーを使用して以下を行うことはできません。
- RHEL 仮想マシンでのソフトウェアのアップグレード。
- RHEL 仮想マシンへのソフトウェアパッケージの追加。
- VM に構築または実行する RHEL コンテナーへのソフトウェアパッケージの追加。
RHEL ベースコンテナーイメージは、ホストシステムの資格情報を Docker が使用できるように設定されます。コンテナー内にパッケージをインストールしようとすると、yum
コマンドはホストの資格情報を使用して、Red Hat のそれらのパッケージにアクセスできるようにします。有効な Red Hat サブスクリプションがないと、RHEL コンテナーの構築に必要な完全に機能する設定を行うことはできません。
Red Hat に CDK 仮想マシンを登録するプロセスは、Vagrant プラグインの vagrant-registration
を使って自動化されます。デフォルトで Vagrant box が起動すると、Red Hat カスタマーポータルのユーザー名とパスワードを入力するようにプロンプトが出されます。登録プラグインは Vagrant box を利用可能なサブスクリプションに自動的に割り当てます。
RHEL VM が CDK に登録されると、ID および有効期限のあるエンタイトルメントが VM 用に作成されます。いったん登録されると、CDK エンタイトルメントの期限が切れるまで VM を再登録する必要はありません。この期限が過ぎると、コンテナーは Red Hat ソフトウェアリポジトリー (CDN) にアクセスできなくなります。
サブスクリプションがアクティブな状態で CDK VM を登録する場合、90 日間有効な新規のエンタイトルメントを取得できます。同じ VM を再登録する場合、新たに 90 日のエンタイトルメントを取得できます。これを何度も繰り返すことができます。
vagrant halt
または vagrant destroy
のいずれかを使用して Vagrant box を停止する場合、このプラグインは Red Hat サブスクリプションを自動的にリリースします。ホストシステムの再起動などのその他の手段で Box を停止する場合、サブスクリプションを別の Box で使用するために手動でサブスクリプションを削除する必要がある場合があります。Red Hat カスタマーポータル で subscription management を使用し、すでに使用されなくなった仮想システムを見つけ、これを削除します。
RHEL サブスクリプションがない場合、Red Hat Enterprise Linux Developer Suite の無料のエンタイトルメントを提供する計画が検討されています。それらのエンタイトルメントにより、RHEL ホストをダウンロードし、CDK で登録することができます。これらについての更新情報を確認してください。
5.1.5.1. 登録プロセスの自動化 (資格情報の保存)
Vagrant box を起動するたびにプロンプトに対応しなくてもよいように Red Hat の資格情報を保存することをお勧めします。これは、単一の Vagrantfile から複数の仮想マシンを立ち上げる複雑な Vagrantfile の場合に必須になります。
資格情報を保存するには、以下の行をユーザー別の Vagrantfile に追加してください。このファイルへのパスはプラットフォームごとに異なります。
- Windows: %USERPROFILE%\.vagrant.d\Vagrantfile
- Fedora, RHEL, or Mac OS X: ~/.vagrant.d/Vagrantfile
設定はそのユーザー ID で開始したすべての boxで利用できます。ユーザーごとの Vagrantfile は自動作成されません。
Vagrant.configure('2') do |config| config.registration.subscriber_username = '<your Red Hat username>' config.registration.subscriber_password = '<your Red Hat password>' end
または、Red Hat の資格情報の詳細をファイルシステムに保存しないことを選択する場合は、以下の設定を使用して、資格情報を環境変数から取得することができます。ユーザー名は $SUB_USERNAME
環境変数 (Windows の SUB_USERNAM) に、パスワードは $SUB_PASSWORD
環境変数 (Windows の SUB_PASSWORD) に保存してから Vagrant を開始するようにしてください。
Vagrant.configure('2') do |config| config.registration.subscriber_username = ENV['SUB_USERNAME'] config.registration.subscriber_password = ENV['SUB_PASSWORD'] end
さらに、これらの設定はユーザーごとの ~/.vagrant.d/Vagrantfile
の設定を上書きする特定の Vagrantfile でも使用できます。既存の Vagrantfile では、Vagrant.configure('2') do |config|
で開始されるブロックがすでにあるため、既存のブロックにこれらの 2 つの config.registration
行 (上記を参照) のみを追加します。
詳細情報は、CDK ソフトウェアコンポーネントを含む ZIP ファイルの ~/cdk/plugins
ディレクトリーにある vagrant-registration-README.md
ファイルを参照してください。
Comments