システムのポストプロビジョニングを自動化するためのキックスタートまたはスクリプトの使用が実行可能または実用的でない場合、自分自身または同僚のためにテストシステムを作成することは困難な場合があります。たとえば、さまざまなRed Hat Satelliteシステムを自分の学習に使用しようとすると、仮想マシンのインストール、コンテンツの同期、コンテンツビューの作成などに長い時間がかかります。最終的にシステムを希望どおりに構築したが、勉強中に誤ってシステムを使用できなくなった場合はどうなりますか?そもそもシステムがどのように機能するかわからないときにシステムをデバッグしようとしているのか、システムを最初から再構築するという時間のかかるプロセスを実行しているのか。これらのシステムを同僚が利用できるようにすると、システムが使用できなくなる可能性が高くなります。
[次のこともお勧めします:論理ボリュームマネージャー(LVM)とLinuxの標準パーティション]
これらの課題の解決策として、Logical Volume Manager(LVM)スナップショットを使用しました。まず、バッキングストアが論理ボリュームである新しい仮想マシン(VM)を作成しました。オペレーティングシステムをインストールし、サービスを構成し、システムをゴールドイメージとして設定しました 。次に、LVMのスナップショットを取り、そのスナップショットから仮想マシンを起動しました。システムをゴールド状態にリセットする必要がある場合、それは現在のVMを破棄して削除し、新しいスナップショットを作成するという単純なプロセスでした。次に、再作成されたスナップショットから仮想マシンを起動できます。
これをユーザーが利用しやすくするために、PEARコンポーネント、PHP、およびsudo
を使用するWebUIが作成されました。 Apacheがデフォルトのlvremove
を実行するためのアクセス 、lvcreate
、virsh
、およびxm
コマンド。さらに、2つのカスタムスクリプトが作成されました。そのうちの1つは、VMにSSHで接続し、who
を実行するだけです。 誰かがそれを使用しているかどうかを確認し、もう1つは、それらのLVMコマンドを実行してvirsh destroy $1
を実行するスクリプトでした。 、lvremove /dev/vgvms/$1.ss -f
、次にlvcreate -L +5G -s -n $1.ss /dev/vgvms/$1.gold
。この方法を使用する場合、VM名がLVM名と一致し、スナップショットが*.ss
であることを確認することが重要でした。 *.gold
という名前の金の画像 。
lorenzへのリンクが付いた小さなタイトルがありました 、これは同じタイプのセットアップを使用するシステムでしたが、Satelliteサーバーではなく、基本的なRHELクライアントのハイパーバイザーでした。 WebUIのメインテーブルには次のコードが入力されます:
if(is_array($inactive_guests)) {
foreach ($inactive_guests as $key=>$value) {
$tpl->setVariable(array(
'server_name' => $key,
'virsh_status' => $value['status'],
'fqdn' => $value['fqdn'],
'userinfo' => $value['userinfo'],
'notes' => $value['notes'],
'inactivecontrols' => inactive_controls($key)));
$tpl->parse('inactiveserver');
}
}
WebUIは、システムごとにこれらのフィールドを表示し、次の出力を提供します。
この方法の主な利点は、既知の良好な状態にすばやく復元できること、WebUIが特定のシステムを使用しているかどうかを報告すること、およびセットアップが簡単なシステムであることです。ただし、いくつかの欠点は、かなりストレージを大量に消費することと、他の誰かがシステムを使用したり、ゴールデン状態に復元したりするのを防ぐためにシステムを予約する方法がないことです。ただし、少し追加の開発を行うことで、これらの問題に対処できます。
このプロジェクトの初期開発のクレジットは、JeremyAgeeとPatrickWigginsに贈られます。 WebUIソースコードをダウンロードできます。
[無料コース:RedHatSatelliteの技術概要。 ]