2025年5月11日日曜日

Prism Centralの活用その7(ストレージコンテナのマイグレーション)

vSphere環境においては、Datastoreに配置した仮想マシンを別のDatastoreに配置変更する、Storage vMotionが存在します。

Nutanix+AHV環境においては、従来の3Tierストレージのように利用用途に応じてDatastoreを分ける運用は非効率なため、ストレージコンテナを複数作るケースは、そこまで多くなかったことから、実装としてもそこまで重要視されていないように思われました。

しかし、ストレージのポリシー違い(圧縮・重複排除やデータ冗長度)で複数ストレージコンテナを作成するケースはあり、運用ポリシーの変更で、仮想マシン(仮想ディスク)を別のストレージコンテナに移行したいケースは0ではありません。

そのため、仮想ディスクのストレージコンテナの移行については、AOS 5.19のアップデートで実装されたことを以前に紹介しました。

AOS 5.19アップデート(その2)AHV環境における仮想マシンのストレージコンテナ移動

この当時、acliコマンドでしか操作ができなかったのですが、現在では、Prism Centralを介すことで、既に作成された仮想マシンの仮想ディスクを別のストレージコンテナに移行することができます。

では、そのオペレーションをご紹介します。

まずは、Prism Centralの「Infrastructure」から「VMs」を開きます。

仮想ディスクのストレージコンテナを変更したい仮想マシンを選択し、「Update」をクリックします。


仮想マシンのvCPU等の変更画面が出ますので、特に変更の必要が無ければそのまま「Next」をクリックします。


続いて、Disksの画面を確認します。

ここでは、1つの仮想ディスクが「000.DEFAULT-MSG-CONTAINER」に配置されております。この仮想ディスクを鉛筆マークをクリックし変更を行います。


ここから、移行したいストレージコンテナを選択します。


選択後Updateをクリックします。

ただ、Update VMの表示は変更されません...。(多分バグだと思います)

選択後、あとはNextを数度クリックし、サマリーを確認します。

個々の表示も、移行前の仮想ディスクの表示になります。(おそらく現在の配置されているストレージコンテナが表示される仕様なのでしょう...)気にせずSaveをクリックします。


すると、Updateが行われ、タスクには、Migrate vDiskのタスクが作成され、仮想ディスクの移行が行われます。


タスクが成功すると、仮想マシンのUpdateから情報を見るとストレージコンテナが今回変更した「WORKING-CONTAINER」に変更されていることがわかります。


未だに、コマンド含めVolume Groupのストレージコンテナ移行は、サポートされていませんが、GUIで操作ができるようになったことで、少しオペレーションのハードルは下がったかと思います。(UI表示が所々おかしいですが)







2025年5月5日月曜日

Prism Centralの活用その6(テンプレートから展開時にSysprepを自動実行する/その4)

前回までに、Sysprepで一般化した状態でシャットダウンした仮想マシンをテンプレート登録しました。併せて、テンプレート登録時に「unattend.xml」の内容を登録し、Sysprepにおける応答ファイルを自動で適用されるように設定しました。

この設定が反映されたうえで展開されるかを含め、実際にテンプレートから仮想マシンを展開してみたいと思います。

では早速仮想マシンを展開してみましょう。

Prism CentralのVMsから「Create VM from Templaet」を選択し、先ほど登録した、「Windows 11 Enterprise 24H2」を選択し、「Begin」をクリックします。


ここでは、仮想マシン名と展開台数を入力します。ここでは、展開台数を5台にしてみましょう。Startup Scriptを見ると、テンプレート登録時に登録したXMLの情報が記載されています。個別で別のXMLの内容をこちらで入力することもできます。

Advanced Deployでスペック等も変更可能ですが、今回はこのまま、「Next」をクリックします。


サマリーが表示されます。ポイントは、CDROMドライブの存在です。この環境では、テンプレート展開時に2台のCDROMドライブで構成された仮想マシンを登録していますので、テンプレート時の構成である2台のCDROMドライブを搭載した状態で展開されます。

そのまま「Deploy」をクリックします。


Deployボタンを押すと、ストレージブロックのポインターベースのクローンのため、瞬時に仮想マシンが展開されます。

では、展開した仮想マシンを一斉に起動してみましょう。


Lunch Cosoleで見ていると仮想マシンが起動しSysprepが動作しているのがわかります。ここまでくると後はしばらく待つばかりです。


一度再起動がかかり、以下のような画面が出ますが、まだ我慢です。


再び再起動します。もうちょっとの辛抱です。


すると、自動でデスクトップが表示されました。


コンピューター名も変更され、ADに参加していることがわかります。


Active Directoryのサーバーから見ても、コンピューターアカウントが5台登録されていることが確認できます。


SysprepによるAD参加までの設定が完了したことがわかりました。


さて、これでよかったよかったと思いたいところなのですが、あのSysprepのXML定義は一体どうやって仮想マシンに渡されたのでしょうか?今回は、AD参加のため、ネットワークに接続することが前提でしたが、ネットワークに接続できない環境であってもSysprepの定義ファイルを指定可能です。

この謎は、まずテンプレートから展開された仮想マシンの構成を見てみましょう。

Update VMから仮想マシンの構成を見ると、テンプレート登録時には、CDROMドライブは2台でしたか、いつしか3台に変わっており、かつ一番下のドライブを見ると、何らかのISOがマウントされていることがわかります。


展開されたOSから見ると、この環境の場合Fドライブとして3台目のドライブが認識しており、「cidata」というボリューム名が見えます。


中を見ると、Prism Centralでテンプレート作成時に見たXMLの内容がファイルになっています。


つまり、Sysprepのファイルは、CDROMドライブを経由し、ファイルを渡していることがわかります。

では、このISOはどこに存在しているのでしょうか?

Prism Elementで、確認すると「SelfServiceContainer」に存在しているISOをマウントしていることがわかります。


このUUDIのISOを探してみましょう。

SelfServiceContainerの中身を、WinSCPで覗いてみると

「SelfServiceContainer\.vm_customization_isos」配下に、作成されていることがわかります。


他にもたくさんのISOがあるので、これは仮想マシンごとに作成され、おそらくずっとそのまま放置され続けるのではないかと思います...。

また、もっと重要なことは、テンプレートからSysprepをかけて展開した仮想マシンは、必ずこのISOをアンマウントしてください!このISOは、自動でアンマウントされません!

XMLの定義ファイル内に、ローカルアカウントのパスワードや、Active Directoryに参加する用のメンテナンス用アカウントのユーザー名やパスワードが記載されている場合、そのまま利用者に渡すとアカウント情報の漏洩につながる可能性があります。

通常、Sysprepする場合は、マシン自体にカスタマイズ用の「unattend.xml」を配置し、Sysprep実行後バッチ等で削除する運用が一般的かと思います。
Nutanixのテンプレート機能の場合は、仮想マシン自体にファイルで配置するのではなく、ISOマウントになりますので、手動でアンマウントするか、何らかの形で自動でアンマウントする方法を考える必要があります。

このSysprep自動実行機能は、大変便利な機能ではありますが、最後に重要な落ちがありますので、注意が必要です。

かならず展開後はISOアンマウントだけはお忘れなく。









 

Prism Centralの活用その6(Sysprepが利用可能なテンプレートを作成する/その3)

WindowsやLinuxが入った仮想マシンを一括で展開したい場合、併せてホスト名やIPアドレスなどのカスタマイズも自動で行いたいものです。

Windowsの場合は、特にActive Directoryに参加する際、複数の仮想マシンが同じホスト名で参加すると動作に不具合が生じますし、SIDが重複しているとWSUSなど一部の機能が正常に動作しない場合があります。

Windowsの場合は、Sysprep、Linuxの場合は、cloud-initを利用して、仮想マシン展開時に独自のパラメーターにカスタマイズすることができます。Nutanixは、もちろん仮想マシンクローン時にSysprepやcloud-initと連携して、カスタマイズが可能です。

今回は、よく利用されるWindowsとSysprepの連携方法をテンプレートを使ってご紹介いたします。

まずは、テンプレートになる仮想マシンを用意しましょう。

今回は、Windows 11 Enterprise 24H2を用意しました。VDIの場合、VDIソフトウェアを利用した一括展開ができるので、あまりNutanixの機能を利用してクローンは行わないかもしれませんが、手動でのVDI環境構築や、もちろんサーバーOSでも同じ手順でSysprepを実行した仮想マシンを展開可能です。

Windows 11は、UEFIブート、セキュアブート、vTPM有効化などWindows 11の条件に従って仮想マシンを作成し、OSのインストールを行ってください。

OSのインストールを行ったら、Windows Updateや、あらかじめ利用するソフトウェアのインストールなど必要な作業を行ってください。

さて、準備ができたら、以下の作業を行います。

  • セットアップ時に作成したローカルアカウントを削除し、ローカルのAdministratorユーザーを有効化し、Administratorユーザーでサインインする
  • シャットダウン制御を行うため、「AHV環境におけるWindows仮想マシンのシャットダウンについて」を参考に画面の省電力OFFと、ロック時のシャットダウンを有効化する(任意)
  • デフォルトで有効化されるビットロッカーを無効化する
    「manage-bde -off c: 」を実行し、「manage-bde -status」で、暗号化領域が0%になっていることを確認する
  • Sysprep中にストアアプリのエラーが出る場合は、ストアアプリを削除する(後述)

Sysprepを実行する前に、インストール漏れなどがないように、一度OSをシャットダウン後にスナップショットを取得しておくことをお勧めします。

では、実際にSysprepを実行します。

ファイル名を指定して実行から「c:\windows\system32\sysprep\sysprep」を実行します。


Sysprepで、SIDを再生成する必要がありますので、「一般化する」にチェックを入れ、シャットダウンを選択してください。(再起動を選択すると、再起動をSID再生成処理が走ってしまいますので、テンプレート化してもSIDが再生成されません)


では、OKを押してSysprepを実行します。

が、おそらく以下のような「SysprepでWindowsのインストールを検証できませんでした。詳細については~」メッセージが出るのではないかと思います。


何らかの理由でSysprepが失敗していると考えられます。

まずは、指定された「C:\Windows\System32\Sysprep\Panther\setuperr.log」を参照します。


このログを見ると、LanguageExpreriencePackja-JPのパッケージが原因でSysprepに失敗していることがわかります。ほかにもEdgeなどで同様に引っかかる場合もあります。

この場合、PowerShellで該当のストアアプリパッケージを削除する必要があります。

上記のログの場合、以下のコマンドをPowerShellで管理者権限で実行します。

Get-AppxPackage -AllUsers <パッケージ名> | Remove-AppxPackage -AllUsers


上記ログの例)

Get-AppxPackage -AllUsers Microsoft.LanguageExperiencePackja-JP | Remove-AppxPackage -AllUsers

実際にPowerShellでの実行の画面


この状態で再度、Sysprepを実行し、一般化にチェックを入れて「シャットダウン」を選択し、OKをクリックします。


再び同じエラーが出ることがあります。

場合は、再度C:\Windows\System32\Sysprep\Panther\setuperr.log」を参照します。

ここでは、新たなログとして、WidgetsPlatformRuntimeが引っかかっているのがわかります。


同様に管理者権限で、パッケージを削除します。

Get-AppxPackage -AllUsers Microsoft.WidgetsPlatformRuntime | Remove-AppxPackage -AllUsers


再び、Sysprepで「一般化する」にチェックを入れ、「シャットダウン」を選択し、OKをクリックします。


今度は、画面が変わりました。このプログレスバーが表示されるダイアログが表示されたらあとは、少し時間がかかりますが、その後自動でOSがシャットダウンされます。


では、次に作成した、Windows 11のマスターをテンプレートに登録します。

Prism CentralのVMsから、テンプレートにしたい該当のマシンをチェックし、「Action」から、「Create VM template」を選択します。


次にテンプレートの名称及び、メモを入れます。
今回、SysprepのXMLは、あらかじめ登録しておくようにします。

Script Typeを「Sysprep(Windows)」を選択し、ConfigurationMethodを「Custom Script」を選択します。

次に、本来Sysprep時に、「unattend.xml」ファイルとして記載するXMLの内容を「Startup Script」 の中に記載します。

今回サンプルで以下のような条件でファイルを記載しています。

  • ホスト名をランダムに変更
  • ADに参加(参加用のユーザー・パスワードを記載)
  • 言語を日本語に設定
  • 初回アニメーションを無効化するレジストリを追記
  • 初回起動時に「C:\script\startup.bat」を実行
  • 初回起動時にドメインユーザーでログイン(ユーザー・パスワードを記載)
  • EULAや無線LAN設定などをスキップする
  • オンラインアカウント登録を無効にする

設定した内容は、以下の通りです。

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
  <settings pass="specialize">
    <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64"
               publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"
               xmlns:wcm="http://schemas.microsoft.com/WMIConfig/v2002/State"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <ComputerName>*</ComputerName>
      <TimeZone>Tokyo Standard Time</TimeZone>
    </component>
    <component name="Microsoft-Windows-UnattendedJoin" processorArchitecture="amd64"
               publicKeyToken="31bf3856ad364e35" language="neutral"
               versionScope="nonSxS"
               xmlns:wcm="http://schemas.microsoft.com/WMIConfig/v2002/State"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <Identification>
        <JoinDomain>toriten.oita</JoinDomain>
        <Credentials>
          <Domain>toriten.oita</Domain>
          <Password>toritenpassword</Password>
          <Username>ikoi</Username>
        </Credentials>
      </Identification>
    </component>
  </settings>
  <settings pass="oobeSystem">
    <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/v2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <InputLocale>ja-JP</InputLocale>
      <SystemLocale>ja-JP</SystemLocale>
      <UILanguage>ja-JP</UILanguage>
      <UserLocale>ja-JP</UserLocale>
    </component>
    <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/v2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <OOBE>
        <HideEULAPage>true</HideEULAPage>
        <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
        <HideLocalAccountScreen>true</HideLocalAccountScreen>
        <ProtectYourPC>3</ProtectYourPC>
        <HideOnlineAccountScreens>true</HideOnlineAccountScreens>
      </OOBE>
      <DisableAutoDaylightTimeSet>false</DisableAutoDaylightTimeSet>
      <FirstLogonCommands>
        <SynchronousCommand wcm:action="add">
          <CommandLine>reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v EnableFirstLogonAnimation /t REG_DWORD /d 0 /f</CommandLine>
          <Description>Disable First Logon Animation</Description>
          <Order>1</Order>
        </SynchronousCommand>
        <SynchronousCommand wcm:action="add">
          <CommandLine>c:\script\startup.bat</CommandLine>
          <Description>Run FirstRun Batch Script</Description>
          <Order>2</Order>
        </SynchronousCommand>
      </FirstLogonCommands>
      <UserAccounts>
        <LocalAccounts>
          <LocalAccount wcm:action="add">
            <Password>
              <Value>local-password</Value>
              <PlainText>true</PlainText>
            </Password>
            <Name>nakayoshi</Name>
            <Group>Administrators</Group>
          </LocalAccount>
        </LocalAccounts>
      </UserAccounts>
      <AutoLogon>
        <Password>
          <Value>toritenpassword</Value>
<PlainText>true</PlainText> </Password> <Username>maruyama</Username> <Enabled>true</Enabled> <Domain>toriten.oita</Domain> </AutoLogon> </component> </settings> </unattend>


実際にXMLの内容を入力したうえで、「Next」をクリックします。


最後にサマリーの画面が表示されますので、ここで確認を行います。

注意してほしいことは、今回の事例では、ADに参加する処理が入っていますので、テンプレートから展開された仮想マシンがDHCPでIPアドレスを取得できる環境を用意しておく必要があります。IPAM設定、またはDHCPサーバを仮想マシンのVLANに用意しておく必要があります。(ADに参加しない場合など、Sysprep時にネットワークに接続する要件がない場合は、Sysprep時のネットワーク接続は必須ではありません


これで、テンプレートの作成は、完了です。

長くなってしまったので、次回で実際の展開の動きを確認したいと思います。




Prism Centralの活用その6(仮想マシンテンプレートをメンテナンスする/その2)

前回は、マスターVMから仮想マシンテンプレートの作成と展開方法をご紹介しました。

正直なところ、もともとの仮想マシンをクローンするときの画面とほぼ変わらないので、ある意味とっつきやすかったかと思います。

では、この仮想マシンテンプレートですが、Windowsであれば定期的なアップデートや関連ソフトウェアのパッチ適用など、マスターに対する定期的なメンテナンスが必要になるかと思います。

vSphereの場合、テンプレートか普通の仮想マシンかは、拡張子が「.vmx」か「.vmtx」かで切り替えられているだけでしたが、Nutanix+AHV環境の場合、仮想マシン環境情報は、ファイルでは管理されていないので、ユーザー側で自由に切り替えることはできません。

その代わりに、テンプレートのメンテナンス機能が用意されています。

今回は、このメンテナンス機能を利用し、テンプレートに入れていたゲストOSのアップデートを行ってみましょう。

まずは、Prism Centralの「Templates」を開き、メンテナンスしたい仮想マシンをクリックします。詳細画面の「Actions」から「Update Guest OS」をクリックします。


ここでは、初めてテンプレート化したものしかないので、「Initial Version」しか選択できませんので、そのまま「proceed」で進めます。


次に、説明画面が表示されます。ここでは、メンテナンス完了までの流れが表示されます。要は、テンプレートから仮想マシンが展開され、その仮想マシンにメンテナンスを行います。メンテナンスが完了したら、完了処理を行うことで、メンテナンスされた新しいバージョンとしてテンプレートに保存される(今までのメンテナンス前のバージョンも履歴として残る)旨が表示されます。続けて「Proceed」をクリックします。


「Proceed」をクリックすると、メンテナンス用の仮想マシンが展開されます。展開された仮想マシン名が画面に表示されますので、その仮想マシン名をクリックし、仮想マシン一覧画面に移動し、パワーオンした後にコンソールを開きメンテナンスを行います。


ここでは、Windows Updateを行い、TeraTermをインストールし、マスターのメンテナンスを完了させます。


メンテナンスが終わった仮想マシンは、きちんとOSからシャットダウンしましょう。


再び、Prism CentralのTemplates画面から、メンテナンスが完了したテンプレートを選択し、「Action」から「Complete Guest Update」をクリックします。

もし、メンテナンスが必要なかった場合や、あまりないとは思いますが、テンプレートから展開されたメンテナンス用の仮想マシンを誤って削除した場合などは「Cancel Guest OS Update」をクリックしましょう。


続いてメンテナンスが終わった仮想マシンの名称やメモを入力する画面が表示されます。必要に応じてメモは入力を行ってください。

下側には、今回反映する変更を、ユーザーがすぐに使えるテンプレートとしてActiveにするかのチェックボックスがあります。その後テストなどを行い、リリースまで時間を必要とする場合は、「Yes, set this new version as active」のチェックは外しておきましょう。


必要事項を入力したら、「Complete Update」をクリックします。

反映されると、画面左の「Versions」を開いてみましょう。

最初にテンプレートに登録したものが、「Initial Version」として扱われ、メンテナンスを行いそれを反映させるたびに、このバージョンが増えていくという流れになります。


先ほどのウィザードで「Yes, set this new version as active」にチェックを入れると、そのバージョンが、テンプレートから展開されるバージョンとなりますので、もし、違うバージョンをテンプレートから展開できるようにしたい場合は、そのバージョンを選択し、「Set as Active」をクリックします。この画面から不要なバージョンの削除も可能です。例えば1年前のWindows Updateのメンテナンスされたテンプレートなどは誰も使わないと思いますのでそう言った場合は、不要なテンプレートとして削除が可能です。


これで、テンプレートのメンテナンスは完了です。

テンプレートの運用ですが、Windowsの場合、初めにSysprepをしていないバージョンのものを最初に登録し、その後Update OSで、Sysprepを実行しシャットダウンしたものを別のバージョンとして登録しActive化しておきましょう。
Windows Updateで新規パッチを適用する際は、Sysprepしていないバージョンをメンテナンス用として利用し、その仮想マシンにパッチなどを適用しSysprepしシャットダウンしたものを新しいバージョンとしてことで、メンテナンス時のSysprepの時間を短縮することも可能となります。

気を付けておくべき点としては、ユーザーからすると、テンプレートから展開する際にテンプレートのバージョンは選択できず、Activeになっているバージョンが自動的に展開される点です。いくらメンテナンスを行っても、そのバージョンを「Active」にしていなければ、実際にはテンプレート展開時に利用されませんので、注意してください。







Prism Centralの活用その6(仮想マシンテンプレートを作成・展開する/その1)

vSphere環境(vCenter Server)を利用しているユーザーからよく聞かれる質問として、

  1. 「仮想マシンクローンをしたら、Sysprepって自動でされるんですか?」
  2. 「仮想マシンをテンプレート化して、仮想マシン一覧表示から消したいのですけど?」

という質問をよくいただきます。

この辺り、従来のPrism Elementだけでは完全にカバーしきれないところがあったのですが、Prism Centralのテンプレート機能ができたことで、通常運用する仮想マシンと別の管理のマスターVM(ゴールドイメージ)として管理ができます。

今回は、まずテンプレート機能の基本を見ていきたいと思います。


<テンプレートのつくり方>

テンプレートのつくり方は、簡単です。
Prism Centralから、テンプレート化したい仮想マシンをVMs画面で選択し、「Create VM from Template」をクリックします。

次にテンプレートの名前とメモを入力します。
併せて、デフォルトのカスタマイズ設定が可能です。Windowsであれば、Sysprepの応答ファイル、Linuxの場合は、cloud-initのファイルを記載します。

実際にテンプレート時にカスタムファイルを指定しなくても、テンプレートから展開する際には、個別でカスタムファイルの指定ができます。ここでは、テンプレート展開時にデフォルトで表示されるカスタムファイルが表示される内容となります。

最後にサマリーが表示されますので、そのままSaveをクリックします。


裏の動作を見ていると、テンプレートを作成すると、Recovery Pointが作成されますので、その時点のスナップショットが内部的に作成されていることがわかります。

実際にテンプレートの元になった仮想マシンのRecovery Pointには、テンプレート用に作成されたRecovery Pointが表示されていることがわかります。


なお、テンプレートの元になった仮想マシンは、削除しても問題ありません。



<テンプレートからの展開>

では、実際にテンプレート化した仮想マシンを展開してみましょう。
Prism CentralのVMsから、「Create VM from Template」をクリックし、展開したいテンプレートを選択し、Beginをクリックします。


次に仮想マシンの表示名や数量などを入力する画面が表示されます。


「Advanced Deploy」をクリックすると、仮想マシンのスペックやVLANの割り当て変更などができるようになります。

Advanced Deploy画面も見てみましょう。


スペックの変更ができることがわかります。ここでは、Memory Overcommitの設定変更はできないようになっています。「Next」をクリックして次の画面を確認してみましょう。
展開台数を複数台展開する場合は、Number of VMsで必要な数量を入力可能です。

ここでは、仮想マシンのドライブやNIC構成が確認できます。ディスク構成は、この画面では変更ができないようです。NICに関しては、NICの追加や既存NICのVLAN変更が可能です。


続いては、タイムゾーン設定やストレージポリシーの設定ができる画面となります。ストレージポリシーとゲストOSのカスタマイズ項目以外は、特に設定変更できないようです。



この後、サマリー画面が表示され、「Deploy」をクリックすると、仮想マシンが展開されます。

無事に仮想マシンが作成されました。



作成された仮想マシンは、通常の仮想マシンと同じように、スペックの変更やディスクの追加アタッチなども可能です。



テンプレートの追加とテンプレートからの展開は、非常に楽にできることがよくわかりました。基本中の基本の操作だけをご紹介しましたが、実際には、いつ作成したかわからない古いテンプレートは結果使われなくなりますので、次回は、テンプレートのメンテナンスについてご紹介いたします。