python-vm-builder (別名ubuntu-vm-builder)を使用して、今までのやり方を実行するためのベストプラクティスの現代的な方法を見つけようとしています。
buntu-core (以前は JeOS として知られていたアーティスト)のようなものから開始し、パッケージを追加し、初回実行スクリプトを定義するなど、スクリプト化された繰り返し可能な方法が必要です。
私が望んでいるのは、カスタムISOの回転に似たものです(ISOではありませんが、「インストール済み」システムになります)。結果は、NFSを使用したディスクレスPXEブートに適したカーネル、initrdイメージ、およびrootfsである必要があります。
どのようなツールを使用して、Ubuntuのネットブートイメージ(またはその点でUbuntuイメージ)を作成しますか?彼らは私のニーズに十分柔軟ですか?
Ubuntu統合テストに使用される新規インストール環境の作成に使用されるツールはどうですか?彼らは適切でしょうか?
実行時にrootfsは読み取り専用でマウントされるため、時間の経過とともにインスタンスを管理するつもりはないことに注意してください。私は、Ubuntuの新しいリリースごとに、6か月間に定期的に自動インストールを再スピンしたいと考えています。
公式のクラウドイメージを直接使用してから、cloud-localds
(cloud-utils
パッケージから)を使用して小さなISOイメージを作成し、cloud-initの「nocloud」データソースとして使用できます。
次に、cloud-init userdata (example) を単一のメカニズムとして使用して、パッケージを追加し、公式のUbuntu CloudイメージとローカルVMを提供するクラウドプロバイダー全体で独自の初回実行スクリプトを実行できます。
パラメーターなしでcloud-localds
を実行すると、kvmを直接使用してVMを構成および実行する使用例が表示されます。
VMを他の方法で実行するには、クラウドイメージを提供するだけです(例: https://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg- AMD64-disk1.img 12.04)は最初のディスクとして、cloud-localds
からのISOイメージ出力をCD-ROMとして提示します。
詳細は Scott Moserのブログ投稿 にあります。
ISOをパッケージ化したことがないので、自分の経験からコメントすることはできませんが、質問に対する答えはCobbler( http://cobbler.github.com )のようです。
Ubuntu Community Documentationから:
「UbuntuはUbuntuマシンの優先プロビジョニングサーバーとしてcobblerを使用しています。」 - https://help.ubuntu.com/community/Cobbler
これに対する答えを探している人にとっては、Oz( https://github.com/clalancette/oz )は本当に良いようです。