4.2. ドライバープラグインのトラブルシューティング
4.2.1. 概要
本セクションでは、CDK のドライバープラグインを設定する際に発生する可能性のある一般的な問題の解決策を説明します。
4.2.2. KVM/libvirt
4.2.2.1. Undefining virsh snapshots fail
KVM/libvirt で virsh
を使用して開発ワークフローにスナップショットを作成する場合は、minishift delete
を使用してスナップショットを削除すると、以下のエラーが発生する可能性があります。
$ minishift delete Deleting the Minishift VM... Error deleting the VM: [Code-55] [Domain-10] Requested operation is not valid: cannot delete inactive domain with 4 snapshots
原因: スナップショットは ~/.minishift/machines に保存されますが、定義は /var/lib/libvirt/qemu/snapshot/minishift に保存されます。
回避策: スナップショットを削除するには、root で以下の手順を実行します。
定義を削除します。
# virsh snapshot-delete --metadata minishift <snapshot-name>
CDK ドメインの定義を解除します。
# virsh undefine minishift
minishift delete
を実行して仮想マシンを削除して CDK を再起動できるようになりました。
これらの手順で問題が解決しない場合は、以下のコマンドを使用してスナップショットを削除することもできます。
$ rm -rf ~/.minishift/machines
スナップショットを作成する際にメタデータを使用しないことが推奨されます。これを確認するには、--no-metadata
フラグを指定します。以下は例になります。
# virsh snapshot-create-as --domain vm1 overlay1 --diskspec vda,file=/export/overlay1.qcow2 --disk-only --atomic --no-metadata
4.2.2.2. Error creating new host: dial tcp: missing address
この問題は、libvirtd サービスが実行していない可能性があります。これは、以下のコマンドで確認できます。
$ systemctl status libvirtd
libvirtd が実行していない場合は、システムの起動時に開始して有効にできるようにします。
$ systemctl start libvirtd $ systemctl enable libvirtd
4.2.2.3. Failed to connect socket to '/var/run/libvirt/virtlogd-sock'
この問題は、virtlogd サービスが実行されていない可能性があります。これは、以下のコマンドで確認できます。
$ systemctl status virtlogd
virtlogd が実行していない場合は、システムの起動時に開始して有効にできるようにします。
$ systemctl start virtlogd $ systemctl enable virtlogd
4.2.2.4. Domain 'minishift' already exists…
minishift start
を試行し、このエラーが表示される場合は、minishift delete
を使用して、先に作成した仮想マシンを削除するようにしてください。ただし、これに失敗し、CDK を完全にクリーンアップして新規に起動する場合は、以下の手順を実施します。
root で、既存の CDK 仮想マシンが実行中かどうかを確認します。
# virsh list --all
CDK 仮想マシンが実行している場合は、停止します。
# virsh destroy minishift
仮想マシンを削除します。
# virsh undefine minishift
通常のユーザーとして、~/.minishift/machines ディレクトリーを削除します。
$ rm -rf ~/.minishift/machines
これをすべて失敗した場合は、CDK をアンインストール し、CDK の新規インストールを行う場合があります。
4.2.3. VirtualBox
4.2.3.1. エラーマシンが存在しない
Windows を使用する場合は、minishift start
コマンドで --vm-driver virtualbox
フラグを設定してください。よって、この問題は、VirtualBox の古いバージョンである可能性があります。
この問題を回避するには、VirtualBox 5.1.12 以降を使用することが推奨されます。
4.2.4. Hyper-V
4.2.4.1. Hyper-V commands must be run as an Administrator
通常のユーザーまたは管理者権限を持つユーザーとして Hyper-V を使用して Windows で CDK を実行すると、以下のエラーが発生する可能性があります。
Error starting the VM: Error creating the VM. Error with pre-create check: "Hyper-V commands must be run as an Administrator".
回避策: 推奨されている Hyper-V Administrators グループに追加するか、昇格モードでシェルを実行することができます。
PowerShell を使用している場合は、以下のように Hyper-V Administrators グループに追加できます。
管理者として、以下のコマンドを実行します。
PS> ([adsi]"WinNT://./Hyper-V Administrators,group").Add("WinNT://$env:UserDomain/$env:Username,user")
- 変更を有効にするには、ログアウトしてログインします。
また、GUI を使用して、以下のように Hyper-V Administrators グループに追加することもできます。
- スタート ボタンをクリックして、コンピューターの管理 を選択します。
- Computer Management 画面で、Local Users And Groups を選択してから、Groups をダブルクリックします。
- Hyper-V Administrators グループをダブルクリックして、Hyper-V Administrators Properties ダイアログボックスが表示されます。
- Hyper-V Administrators グループにアカウントを追加し、ログオフしてからログインして変更を反映します。
これで、Hyper-V コマンドを通常のユーザーとして実行できるようになりました。
Hyper-V のオプションの詳細は、「Hyper-V 管理者のローカルグループの作成」を参照してください。
4.2.4.2. CDK running with Hyper-V fails when connected to OpenVPN
OpenVPN などの VPN に接続している間に、外部の仮想スイッチを使用して Hyper-V で CDK を使用しようとすると、CDK が仮想マシンのプロビジョニングに失敗する可能性があります。
原因: Hyper-V ネットワークは、VPN に接続する際に、ネットワークトラフィックを双方向で適切にルーティングしない可能性があります。
回避策: VPN から接続を解除し、Hyper-V マネージャーから仮想マシンを停止した後に再試行します。