この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

VMware vSphere仮想マシンテンプレートの作成

仮想マシンを繰り返し利用可能かつ信頼性の高い方法で作成することは、しばしば困難です。VMware vSphereは、1つのVMを構築し、それをテンプレートに変換する機能を提供します。そのテンプレートを使用して、同一に構成されたVMを作成できます。Rancherは、この機能を利用して同一のRKE/K3sノードを作成します。

新しいVMを作成するためにテンプレートを利用するには、Rancherが要求する特定の要件がVMに事前にインストールされている必要があります。これらの要件でVMを構成した後、VMを準備する必要があります。テンプレートを作成する前に、必ずこの手順を実行してください。最後に、準備が完了したら、VMはテンプレートに変換されコンテンツライブラリに移動されます

要件

vSphereノードドライバーで使用するためには、LinuxおよびWindows VMに特定のツールが必要です。最も重要な依存関係は、Linux用の cloud-initとWindows用の cloudbase-initです。これらは、ホスト名を構成し、SSHアクセスとデフォルトのRancherユーザーを設定することによって、VMをプロビジョニングするために使用されます。ユーザーは、他の構成が必要な場合、必要に応じてこれらにさらにコンテンツを追加できます。さらに、参考のために他の要件が以下に示されています。

特定のファイアウォールルールや構成がある場合は、テンプレートを作成する前にこれをVMに追加する必要があります。

Linuxの依存関係

テンプレートにインストールする必要があるパッケージは以下に示されています。これらはディストリビューションに基づいてわずかに異なる名前を持つ場合があります。たとえば、一部のディストリビューションはこれらの依存関係をデフォルトで提供します。クラスターのプロビジョナーは、Kubernetesに必要な依存関係を自動的にインストールします。以下に示す依存関係は、Rancherクラスターのプロビジョナーの機能に必要です(Kubernetes用ではありません):

  • curl

  • wget

  • git

  • net-tools

  • unzip

  • apparmor-parser

  • ca-certificates

  • cloud-init

  • cloud-guest-utils

  • cloud-image-utils

  • growpart(cloud-guest-utilsの一部)

  • cloud-initramfs-growroot

  • open-iscsi

  • openssh-server

  • open-vm-tools

Windows依存関係

テンプレートにインストールする必要があるパッケージのリストは以下の通りです:

テンプレートの作成

手動でVMを作成するか、他の代替手段を利用してVMを作成することができます。

手動作成

  1. VMwareからの これらの指示に従って手動でVMを作成します。VMが稼働したら、上記の依存関係を手動でインストールして、vSphereノードドライバー用に正しく構成できます。

  2. ご自身の環境や要件に応じてカスタマイズしてください。

  3. テンプレートを作成する前に最終準備を進めてください。

手動作成の代替手段

VMを作成するための他の代替オプションは以下に示されています:

Packerはよく使われる代替手段です。vSphereでの使用例については、この リファレンスを参照してください。

VMの準備

必要な依存関係(および追加で必要な項目)をすべて含むVMを作成した後、次に最も重要なステップを実行する必要があります。それは、VMをテンプレートに変換するための準備です。この準備により、VMのホスト名、IPアドレスなどの重要なデータがリセットされ、新しいVMにその情報が持ち込まれないようにします。このステップを実行しないと、同じホスト名、IPアドレスなどを持つVMを作成する可能性があります。

これらの準備ステップは、LinuxとWindowsで異なることに注意してください。

Linuxの準備

以下のコマンドは、LinuxでVMをリセットします:

# Cleaning logs.
if [ -f /var/log/audit/audit.log ]; then
  cat /dev/null > /var/log/audit/audit.log
fi
if [ -f /var/log/wtmp ]; then
  cat /dev/null > /var/log/wtmp
fi
if [ -f /var/log/lastlog ]; then
  cat /dev/null > /var/log/lastlog
fi

# Cleaning udev rules.
if [ -f /etc/udev/rules.d/70-persistent-net.rules ]; then
  rm /etc/udev/rules.d/70-persistent-net.rules
fi

# Cleaning the /tmp directories
rm -rf /tmp/*
rm -rf /var/tmp/*

# Cleaning the SSH host keys
rm -f /etc/ssh/ssh_host_*

# Cleaning the machine-id
truncate -s 0 /etc/machine-id
rm /var/lib/dbus/machine-id
ln -s /etc/machine-id /var/lib/dbus/machine-id

# Cleaning the shell history
unset HISTFILE
history -cw
echo > ~/.bash_history
rm -fr /root/.bash_history

# Truncating hostname, hosts, resolv.conf and setting hostname to localhost
truncate -s 0 /etc/{hostname,hosts,resolv.conf}
hostnamectl set-hostname localhost

# Clean cloud-init
cloud-init clean -s -l

Windowsの準備

Windowsには、 sysprepというユーティリティがあり、これは画像を一般化し、Linuxのために上記にリストされた同じ項目をリセットするために使用されます。コマンドは次のとおりです:

sysprep.exe /generalize /shutdown /oobe

テンプレートへの変換

  1. VMをシャットダウンして電源をオフにします。

  2. インベントリリストのVMを右クリックし、*テンプレート*を選択します。

  3. *テンプレートに変換*をクリックします。

*結果:*プロセスが完了すると、使用可能なテンプレートが作成されます。

VMをテンプレートに変換するための追加情報については、 VMwareガイドを参照してください。

コンテンツライブラリへの移動

Rancherはコンテンツライブラリで提供されるテンプレートを利用できます。コンテンツライブラリは、vSphere内でコンテンツを保存および管理し、そのコンテンツを公開および共有する機能も提供します。

以下は、コンテンツライブラリに関するいくつかの役立つリンクです: