EC2 AMI'yı vmdk görüntüsüne dönüştürme


18

Bu cevap ve bu web siteleri sayesinde Amazon Linux'un VirtualBox içinde önyükleme yapmasına oldukça yaklaştım . Attığım adımlara hızlı bir genel bakış:

  1. Amazon Linux 2011.09 64 bit AMI ile EC2 örneğini başlatın
  2. ddEBS biriminin içeriği sshyerel bir görüntü dosyasına aktarılır.
  3. Görüntü dosyasını geri döngü aygıtı olarak ve sonra yerel bağlama noktasına bağlayın.
  4. Yeni bir boş disk görüntü dosyası oluşturun, bir önyükleyici için bir ofset ile bölümleyin ve bir ext4 dosya sistemi oluşturun.
  5. Yeni görüntünün bölümünü takın ve her şeyi EC2 görüntüsünden kopyalayın.
  6. grub-legacy-ec2Grub'u yükleyin ( grub2 yerine Ubuntu paketini kullanarak ).
  7. Kullanarak görüntü dosyasını vmdk'ye dönüştürün qemu-img.
  8. Vmdk ile yeni bir VirtualBox VM oluşturun.

Şimdi VM önyükleme yapıyor, yükleri topluyor ve çekirdek bulunuyor. Ancak kök aygıtı bağlamaya çalıştığında başarısız olur:

dracut Warning: No root device "block:/dev/xvda1" found

dracut Warning: Boot has failed. To debug this issue add "rdshell" to the kernel command line.


dracut Warning: Signal caught!

dracut Warning: Boot has failed. To debug this issue add "rdshell" to the kernel command line.
Kernel panic - not syncing: Attempted to kill init!
Pid: 1, comm: init Not tainted 2.6.35.14-107.1.39.amzn1.x86_64 #1

/boot/grub/menu.lstEtiket ve UUID ile kök cihazı bulmak için değiştirmeyi denedim , ama hiçbir şey işe yaramıyor. Ben xen çekirdeği VirtualBox ile uyumlu olmadığını tahmin ediyorum.

Tüm bu çabaların ardında yatan neden, üretim ortamına mümkün olduğunca yakın bir Vagrant kutusu yapmaktır, böylece dağıtımlar yerel olarak test edilebilir. EC2'de test çalışmaları yapmanın ucuz olduğunu biliyorum, ancak zayıf bağlantı genellikle deneyimi bozuyor. Ayrıca, üretim ortamına sahip bir sanal makineye sahip olmak gerçekten güzel olurdu, böylece iş arkadaşları sadece uygulama geliştirme ile çalışmaya başlamak için güneşin altındaki her şeyi kurmak zorunda kalmazlar.

Farklı bir çekirdek çalıştırmayı deneseydim, Amazon Linux 2011.09'a ne kadar yakın olabilirim?


Sana benzer işler yapıyordum ve diğer linkte de çözüm buldum. Bunu test ettim ve benim için çalıştı ... blog.zorangagic.com/2015/03/…
Pratap

Yanıtlar:


7

Çok denedim ve pes ettim ama sonunda başardım!

Ben vmware altında taşınan bir Amazon Linux AMI ile önyükleme başardı!

Neredeyse yeniyim, ama saatlerce denemeden sonra , orijinal amazon çekirdeğini ubuntu 64 10.04 dağıtımından alınan vmlinuz-2.6.32-38-jenerik ile değiştirdim .

AMI içindeki amazon yapılandırması, dahili bir adreste açıkça bulamadığı bir şey aradığı için çok fazla hata alıyorum. Sanırım / usr / bin / cloud-init.

Ama içeri girebilirim ve her şey çalışıyor gibi görünüyor

Yardımın için teşekkürler!!

Bu blog yazısını AMI'den Vmware'e geçmek için adım adım talimatlarla yazdım .

Bu yardımcı olur umarım!


BTW, Reed, tam olarak belirttiğiniz noktaya vardım (dracut "kök cihaz bulunamadı" diyerek ... daha fazla hareket ettiniz mi?
Emanuele Preda

Temelde yaptığınız aynı çözüme geldim: çekirdeği Ubuntu'dan kopyalamak. Çalışıyor, ancak bu noktada sistemin Amazon Linux AMI'ye ne kadar benzediğini bilmiyorum.
Reed G. Yasası

Ayrıca benim cevaba bakınız burada Vagrant ile yeni oluşturulan VMDK kullanma talimatları yanı sıra VirtualBox / VMWare VMDK ihraç için 2 alternatif güncellenmiş yöntemler sağlar,
Kod Bling

2

Resmi çekirdek Amazon, 2011.09 dağıtımlarında, yani 2.6.35.14'te kendi türlerini elde etti.

Muhtemelen ile Amazon paketinin kaynak paketini alabilirsiniz get_reference_source, ancak yine de Amazon dışında çalışmasını beklemem.


1

Cloudify'daki insanlar, çıplak metal makinelere erişmeden VirtualBox'a hazır bir Vagrant kutusu oluşturduklarını paylaştılar - AWS kullanıyorlar.

Cennete 9 adım:

  • Packer kullanarak bir kaynak görüntü (AMI) [...] oluşturun.
  • Anlık görüntüyü veya kaynak görüntüyü disklerinden biri olarak AWS'de bir işçi örneği başlatın.
  • Çalışan görüntüde: Bir dosya olarak ham görüntü birimi oluşturun ve üzerinde bir ext4 bölümü oluşturun.
  • Verileri kaynak görüntü diskinden önceden oluşturulan ext4 bölümüne kopyalayın.
  • Önyükleyiciyi (extlinux) ext4 bölümüne takın.
  • Ham görüntüyü bir VMDK'ye dönüştürün.
  • VMDK'yı bir OVF tanımlayıcı ve Vagrant meta verileri kullanarak paketleyin ve içerik ve .box uzantılı bir tar dosyası oluşturun.
  • S3'e yükleyin [veya istediğinizi].
  • Temizlemek.

Kaynak : Yukarıdaki 9 adımla http://www.developer.com/design/creating-a-reproducible-and-portable-development-environment.html adresindeki blog yayını

Kod : https://github.com/cloudify-cosmo/cloudify-packager/tree/3.2m4/image-builder

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.