Örneğin: FreeBSD imajı

Bu örnek OpenStack ve bsd-cloudinit ile uyumlu asgari bir FreeBSD imajı oluşturur. bsd-cloudinit programı bağımsız olarak yönetilir ve etkin şekilde geliştirilmektedir. Projenin mevcut durumuyla ilgili en iyi bilgi kaynağı bsd-cloudinit adresindedir.

Sanallaştırma platformu olarak virtio sürücülerine sahip KVM kullanılır çünkü OpenStack işletenler arasında en yaygını budur. Bulut sanallaştırmanız için başka bir platform kullanıyorsanız, imaj oluşturma adımında bu aynı platformu kullanın.

Bu örnek FreeBSD 10 imajı oluşturmayı gösterir. FreeBSD 9.2 imajı oluşturmak için gerekli değişikliklerle beraber bu adımları takip edin.

Prerequisites

  1. Bir sanal sürücü yapın:

    $ qemu-img create -f qcow2 freebsd.qcow2 1G
    

    FreeBSD için desteklenen en küçük disk boyutu 1 GB’dır. Amaç mümkün olan en küçük taban imajı oluşturmak olduğundan, bu örnek bu asgari boyutu kullanır. Bu boyut isteğe bağlı doc, games, ve lib32 koleksiyonlarını içermeye yeter. ports koleksiyonunu içermesi için, 1 GB daha ekleyin. ``src``yi eklemek için 512 MB ekleyin.

  2. Kurulum ISO’sunu al:

    $ curl ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/10.1/FreeBSD-10.1-RELEASE-amd64-bootonly.iso \
      > FreeBSD-10.1-RELEASE-amd64-bootonly.iso
    
  3. Yerel iş istasyonunuzda bir sanal makine başlatın. Üretim ortamınızda kullandığınızla aynı hipervizörü, sanal diski, ve sanal ağ sürücülerini kullanın.

    Aşağıdaki komut en düşüm RAM miktarını kullanır, 256 MB:

    $ kvm -smp 1 -m 256 -cdrom FreeBSD-10.1-RELEASE-amd64-bootonly.iso \
      -drive if=virtio,file=freebsd.qcow2 \
      -net nic,model=virtio -net user
    

    Kurulum sürecini daha hızlı hale getirmek için 1 GB’a kadar ek RAM belirtebilirsiniz.

    Bu sanal makine paketleri indiribilmek için internet erişimine de ihtiyaç duyar.

    Not

    Aynı hipervizörü kullanarak, üretimde olan aygıtların aynısını taklit ettiğinizden emin olabilirsiniz. Ancak paravirtualization yerine tam donanımsal sanallaştırma kullanırsanız aynı hipervizörü kullanmanıza gerek kalmaz; aynı tür sanallaştırma donanımı kullanmanız gerekir çünkü FreeBSD aygıt isimleri sürücüleriyle ilişkilidir. Kök blok aygıtınızın ismi veya üretimdeki ana ağ arayüzünün ismi imaj oluşturulurkenki isimlerden farklıysa, hatalar oluşabilir.

    Artık indirilen kurulum ISO’sundan ön yüklenen ve daha önce oluşturduğunuz boş sanal diske bağlı bir sanal makineniz var.

Installation

  1. İşletim sistemini yüklemek için, sanal makine içinde aşağıdaki adımları tamamlayın:

    1. Sorulduğunda, ISO’yu Kurulum kipinde çalıştırın.

    2. Öntanımlı tuş eşlemini kabul edin veya ihtiyacınıza göre bir eşleşme seçin.

    3. İmajınız için bir makine adı sağlayın. bsd-cloudinit kullanırsanız, bu imajdan ön yüklenen bir sunucu olduğundan OpenStack tarafından sağlanan isimle bu değerin üzerine yazar.

    4. İsteğe bağlı doc, games, lib32, ports, ve src sistem bileşenleri sorulduğunda, yalnızca ihtiyacınız olanları seçin. Seçili ek bileşenler seçilmeden de tamamen işlevsel bir kuruluma sahip olunabilir. Daha önce belirtildiği gibi, 1 GB diske sahip asgari bir sistem doc, games, ve lib32 destekler. ports koleksiyonu en az 1 GB ek alan gerektirir ve başka türevler de yüklemeyi düşünüyorsanız muhtemelen daha çok gerekcektir. src koleksiyonu ek 512 MB gerektirir.

    5. Ana ağ arayüzünü DHCP kullanacak şekilde yapılandırın. virtio ağ sürücüsünü kullanan bu örnekte, bu arayüzün adı ``vtnet0``dır.

    6. Öntanımlı ağ yansısını kabul edin.

    7. Disk bölümlendirmeyi ayarlayın.

      Disk bölümlendirme imaj oluşturma sürecinin önemli bir elemanıdır ve otomatik üretilen öntanımlı bölümlendirme şeması şu an bsd-cloudinit ile çalışmamaktadır.

      Öntanımlı çalışmadığından, elle bölümlendirmeyi seçmelisiniz. Bölümlendirme düzenleyici yalnızca bir blok aygıt listelemelidir. Disk aygıt sürücüsü için virtio kullanırsanız, ismi vtbd0 olacaktır. Bu aygıtı seçin ve create komutunu üç kere çalıştırın:

      1. Bölüm tablosu oluşturmak için :guilabel:`Oluştur`u seçin. Bölümlendirme tablosu olmadığında bu eylem öntanımlıdır. Ardından listeden :guilabel:`GPT GUID Bölümlendirme Tablosu`nu seçin. Bu seçim öntanımlıdır.

      2. İki bölüm oluşturun:

        • İlk bölüm: Bağlama noktası olmayan 64 kB freebsd-boot bölümü.

        • İkinci bölüm: Geri kalan tüm boş alanı alan / bağlama noktasına sahip freebsd-ufs bölümü.

      Aşağıdaki şekil 1 GB sanal diske sahip tamamlanmış bir bölümlendirme tablosu gösterir:

      _images/freebsd-partitions.png

      :guilabel:`Bitir`i seçin ve değişiklikleri kaydetmek için :guilabel:`Gönder`e tıklayın.

      Not

      Bu örneği değiştirirseniz, / yoluna bağlı kök bölüm aygıttaki son bölüm olmalıdır böylece çalışma zamanında sunucu türünüzün sağladığı disk boyutuna genişleyebilir. Ayrıca ``bsd-cloudinit``in şu an bu bölümün son bölüm olduğunu varsaydığını not edin.

  2. Bir root parolası seçin.

  3. CMOS zaman dilimini seçin.

    Sanallaştırılmış CMOS nerdeyse her zaman zamanı UTC’de tutar, aksi hakkında bilginiz yoksa, UTC seçin.

  4. Ortamınıza uygun zaman dilimini seçin.

  5. Önyüklemede başlatılacak servisler listesinden :guilabel:`ssh`ı seçmelisiniz. İsteğe bağlı olarak diğer servisleri de seçin.

  6. İsteğe bağlı olarak kullanıcılar ekleyin.

    Bu aşamada kullanıcı eklemenize gerek yok. bsd-cloudinit programı mevcut değilse bir freebsd hesabı ekler. Bu kullanıcı için ssh anahtarları OpenStack ile ilişkilendirilmiştir. Bu kullanıcı hesabını özelleştirmek için, şu an oluşturabilirsiniz. Örneğin, kullanıcı kabuğunu özelleştirmek isteyebilirsiniz.

  7. Son yapılandırma

    Bu menü önceki ayarları güncellemenizi sağlar. Ayarların doğru olduğunu kontrol edin, ve :guilabel:`çıkış`a tıklayın.

  8. Çıktıktan sonra, elle yapılandırma adımlarını tamamlamak için bir kabuk açabilirsiniz. Bir kaç OpenStack’e özel değişiklik yapmak için :guilabel:`Evet`e tıklayın:

    1. Konsolu ayarlayın:

      # echo 'console="comconsole,vidconsole"' >> /boot/loader.conf
      

      Bu konsol çıktısını seri konsola gidecek şekilde ayarlar, bu da nova consolelog ile ve VNC veya Spice yapılandırılmış siteler için video konsoluyla görüntülenebilir.

    2. Ön yükleme gecikmesini asgariye indirin:

      # echo 'autoboot_delay="1"' >> /boot/loader.conf
      
    3. En son ``bsd-cloudinit-installer``i indirin. İndirme komutları fetch komutunun HTTPS URL’leri ele alma şeklinde değişiklik sebebiyle FreeBSD 10.1 ve 9.2 arasında değişiklik gösterir.

      FreeBSD 10.1’de fetch komutu SSL eşlerini öntanımlı olarak doğrular, yani sertifika otoritesi kök sertifikalarını içeren ca_root_nss paketini kurmalı ve fetch komutuna onları nerde bulabileceğini söylemelisiniz. FreeBSD 10.1 için şu komutları çalıştırın:

      # pkg install ca_root_nss
      # fetch --ca-cert=/usr/local/share/certs/ca-root-nss.crt \
        https://raw.github.com/pellaeon/bsd-cloudinit-installer/master/installer.sh
      

      FreeBSD 9.2 fetch https için eş onaylamayı desteklemez. FreeBSD 9.2 için şu komutu çalıştırın:

      # fetch https://raw.github.com/pellaeon/bsd-cloudinit-installer/master/installer.sh
      
    4. Yükleyiciyi çalıştırın:

      # sh ./installer.sh
      

      En son bsd-cloudinit paketini indirmek ve kurmak, ve gerekli bağımlılıkları yüklemek için bu komutu girin.

    5. sudo``yu kurun ve ``freebsd kullanıcısı için parolasız erişimi yapılandırın:

      # pkg install sudo
      # echo 'freebsd ALL=(ALL) NOPASSWD: ALL' > /usr/local/etc/sudoers.d/10-cloudinit
      
  9. Sistemi kapatın:

    # shutdown -h now