Difference between revisions of "UEC: Manajemen Image"

From OnnoWiki
Jump to navigation Jump to search
 
(5 intermediate revisions by the same user not shown)
Line 70: Line 70:
 
==Integrasi dengan Eucalyptus==
 
==Integrasi dengan Eucalyptus==
  
An instance running under Eucalyptus needs to know what IP it has and also, it needs to have the public key of the user allowed to do a passwordless access through SSH. This is accomplished by using a restful interface provided by the cloud. The interface is available under this URL: http://169.254.169.254/latest/meta-data and accessible from within the Instance.
+
Sebuah Instance jalan di Eucalyptus perlu mengetahui IP yang dia miliki, dia juga membutuhkan public key dari pengguna yang di ijinkan untuk mengakses secara passwordless melalui SSH. Hal ini dapat di akses menggunakan interface yang di sediakan oleh cloud. Interface tersebut tersedia melalui URL http://169.254.169.254/latest/meta-data yang dapat di akses dari dalam instance.
  
Eucalyptus node controller is set up to prevent automatic key injection if the system is in MANAGED or MANAGED-NOVLAN mode. Instead, it is assumed that the instance will use the above meta-data service to retrieve the public keys when running in these modes. You will need to facilitate this by installing curl and adding a script that will run on each boot.
+
Eucalyptus node controller di setup untuk menjaga tidak terjadinya automatic key injection jika system di operasikan menggunakan mode MANAGED atau MANAGED-NOVLAN. Akan tetapi, Eucalyptus akan berasumsi bahwa instance akan menggunakan layanan meta-data di atas untuk mengambil public key jika di jalankan pada mode di atas. Kita perlu memfasilitasi ini dengan menginstal crul dan menambahkan sedikit script setiap kali booting.
  
Install curl on the VM.
+
Instalasi crul di VM
  
1 $ sudo apt-get install curl
+
$ sudo apt-get install curl
  
Now add the following lines to /etc/rc.local of the image.
+
Tambahakan kalimat berikut di /etc/rc.local sebelum kata 'exit 0' dari image
  
01 depmod -a
+
depmod -a
02 modprobe acpiphp
+
modprobe acpiphp
03  
+
 
04 # simple attempt to get the user ssh key using the meta-data service
+
  # simple attempt to get the user ssh key using the meta-data service
05 # assuming “user” is the username of an account that has been created
+
# assuming “user” is the username of an account that has been created
06  
+
 
07 mkdir -p /home/user/.ssh
+
  mkdir -p /home/user/.ssh
08 echo >> /home/user/.ssh/authorized_keys
+
echo >> /home/user/.ssh/authorized_keys
09 curl -m 10 -s http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key | grep 'ssh-rsa' >> \
+
curl -m 10 -s http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key | grep 'ssh-rsa' >> \
10                           /home/user/.ssh/authorized_keys
+
                           /home/user/.ssh/authorized_keys
11 echo "AUTHORIZED_KEYS:"
+
echo "AUTHORIZED_KEYS:"
12 echo "************************"
+
echo "************************"
13 cat /home/user/.ssh/authorized_keys
+
cat /home/user/.ssh/authorized_keys
14 echo "************************"
+
echo "************************"
  
Add the above lines before the “exit 0” in /etc/rc.local
+
Juga buang network persistent rules dari /etc/udev/rules.d, sehingga instance selalu nyala dengan eth0 sebagai nama interface seperti yang di harapkan oleh Eucalyptus.
  
Also remove the network persistent rules from /etc/udev/rules.d, so that the instance always comes up with eth0 as the interface name as expected by eucalyptus.
+
$ sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules
  
1 $ sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules
+
Selesai sudah proses customisasi OS yang akan di instalasi sebagai reference image.
  
This completes the process of customizing the OS installed as a reference image.
 
Registering with Eucalyptus
 
  
The last step would be to upload the images to Eucalyptus. The files that need to be uploaded for the above sample setup are: vmlinuz-2.6.28-11-server, initrd.img-2.6.28-11-server, image.img.
+
==Pendaftaran ke Eucalyptus==
  
Copy the kernel and the initrd image from the VM image to some place outside. These will be used later for creating and uploading a complete virtual image to Eucalyptus.
+
Langkah terakhir adalah mengupload image ke Eucalyptus. File yang perlu di upload untuk contoh di atas adalah vmlinuz-2.6.28-11-server, initrd.img-2.6.28-11-server, image.img.
  
1 $ scp /boot/initrd.img-2.6.28-11-server user@A.B.C.D:
+
Copy kernel dan initrd image dari VM image ke sebuah lokasi di luar. Hal ini di perlukan untuk digunakan selanjutnya waktu membuat dan mengupload complete virtual image ke Eucalyptus.
2 $ scp /boot/vmlinuz-2.6.28-11-server user@A.B.C.D:
 
  
Before starting the upload process shut down the VM.
+
$ scp /boot/initrd.img-2.6.28-11-server user@A.B.C.D:
Registering kernel image
+
$ scp /boot/vmlinuz-2.6.28-11-server user@A.B.C.D:
  
Execute the following commands to bundle and register the kernel image (vmlinuz-2.6.28-11-server)
+
Sebelum menjalankan upload shutdown VM.
  
1 uecadmin@client1:~$ euca-bundle-image -i vmlinuz-2.6.28-11-server --kernel true
 
2 uecadmin@client1:~$ euca-upload-bundle -b mybucket -m /tmp/vmlinuz-2.6.28-11-server.manifest.xml
 
3 uecadmin@client1:~$ euca-register mybucket/vmlinuz-2.6.28-11-server.manifest.xml
 
  
Save the output produced by the last command above (eki-XXXXXXXX), which will be needed while registering the disk image.
+
==Mendaftarkan kernel image==
Registering ramdisk image
 
  
Execute the following commands to bundle and register the ramdisk image (initrd.img-2.6.28-11-server)
+
Jalankan perintah berikut untuk mem-bundel dan mendaftarkan kernel image (vmlinuz-2.6.28-11-server)
  
1 uecadmin@client1:~$ euca-bundle-image -i initrd.img-2.6.28-11-server
+
uecadmin@client1:~$ euca-bundle-image -i vmlinuz-2.6.28-11-server --kernel true
2 uecadmin@client1:~$ euca-upload-bundle -b mybucket -m /tmp/initrd.img-2.6.28-11-server.manifest.xml
+
uecadmin@client1:~$ euca-upload-bundle -b mybucket -m /tmp/vmlinuz-2.6.28-11-server.manifest.xml
3 uecadmin@client1:~$ euca-register mybucket/initrd.img-2.6.28-11-server.manifest.xml
+
uecadmin@client1:~$ euca-register mybucket/vmlinuz-2.6.28-11-server.manifest.xml
  
Save the output produced by the last command above (eri-XXXXXXXX), which will be needed while registering the disk image.
+
Simpan output yang dihasilkan oleh perintah terakhir di atas (eki-XXXXXXXX), yang akan dibutuhkan untuk mendaftarkan disk image
Registering disk image
 
  
Execute the following commands to bundle and register the ramdisk image (image.img)
 
  
1 uecadmin@client1:~$ euca-bundle-image -i image.img --kernel eki-XXXXXXXX --ramdisk eri-XXXXXXXX
+
==Mendaftarkan ramdisk image==
2 uecadmin@client1:~$ euca-upload-bundle -b mybucket -m /tmp/image.img.manifest.xml
 
3 uecadmin@client1:~$ euca-register mybucket/image.img.manifest.xml
 
  
Replace eki-XXXXXXXX and eri-XXXXXXXX with the exact values you have saved earlier.
+
Jalankan perintah berikut untuk mem-bundel dan mendaftarkan ramdisk image (initrd.img-2.6.28-11-server)
Image Listing
 
  
The new images that have been uploaded can be seen by using euca-describe-images command.
+
uecadmin@client1:~$ euca-bundle-image -i  initrd.img-2.6.28-11-server
 +
uecadmin@client1:~$ euca-upload-bundle -b mybucket -m /tmp/initrd.img-2.6.28-11-server.manifest.xml
 +
uecadmin@client1:~$ euca-register mybucket/initrd.img-2.6.28-11-server.manifest.xml
  
For Ex:
+
Simpan output yagn dihasilkan oleh perintah terakhir di atas (eri-XXXXXXXX), yang akan dibutuhkan pada saat mendaftarkan disk image.
view source
 
print?
 
1 uecadmin@client1:~$ euca-describe-images
 
2 IMAGE  emi-70B70EC0    mybucket/image.img.manifest.xml                    admin  available        public  x86_64  machine
 
3 IMAGE  eri-A2BE13EC    mybucket/initrd.img-2.6.28-11-server.manifest.xml  admin    available      public  x86_64  ramdisk
 
4 IMAGE  eki-685F1306    mybucket/vmlinuz-2.6.28-11-server.manifest.xml      admin    available      public  x86_64  kernel
 
  
More details on managing the instances in later chapters.
 
  
 +
==Mendaftarkan disk image==
  
 +
Jalankan perintah berikut untuk mem-bundel dan mendaftarkan ramdisk image (image.img)
 +
 +
uecadmin@client1:~$ euca-bundle-image -i image.img --kernel eki-XXXXXXXX --ramdisk eri-XXXXXXXX
 +
uecadmin@client1:~$ euca-upload-bundle -b mybucket -m /tmp/image.img.manifest.xml
 +
uecadmin@client1:~$ euca-register mybucket/image.img.manifest.xml
 +
 +
Ganti eki-XXXXXXXX dan eri-XXXXXXXX dengan nilai yang kita peroleh sebelumnya
 +
 +
 +
==Melihat daftar Image==
 +
 +
Image baru yang sudah di upload dapat dilihat menggunakan perintah euca-describe-images
 +
 +
 +
uecadmin@client1:~$ euca-describe-images
 +
IMAGE  emi-70B70EC0    mybucket/image.img.manifest.xml                    admin  available        public  x86_64  machine
 +
IMAGE  eri-A2BE13EC    mybucket/initrd.img-2.6.28-11-server.manifest.xml  admin    available      public  x86_64  ramdisk
 +
IMAGE  eki-685F1306    mybucket/vmlinuz-2.6.28-11-server.manifest.xml      admin    available      public  x86_64  kernel
 +
 +
Tentang bagaimana managing instances akan di terangkan di bagian selanjutnya.
  
  
Line 162: Line 166:
 
==Pranala Menarik==
 
==Pranala Menarik==
  
* [[Ubuntu Enterprise Cloud: Eucalyptus Beginner’s Guide]] '''RECOMMENDED'''
+
* [[Ubuntu Enterprise Cloud: Panduan Untuk Pemula]] '''RECOMMENDED'''
 
* [[Ubuntu Enterprise Cloud: Instalasi UEC]]
 
* [[Ubuntu Enterprise Cloud: Instalasi UEC]]
 
* [[Cloud Computing]]
 
* [[Cloud Computing]]

Latest revision as of 19:31, 6 January 2011

Eucalyptus Machine Image(EMI)

Eucalpyptus Machine Image(EMI) adalah kombinasi dari virtual disk image, kernel dan ramdisk images juga sebuah file xml yang berisi meta data tentang image tersebut. Image ini berada di WS3 dan digunakan sebagai template untuk membuat instance di UEC. Setiap Linux EMI adalah kombinasi dari hal berikut

  • Sebuah file XML dengan nama seperti “jaunty.img.manifest.xml” dengan informasi tentang satu atau lebih harddisk image, sebuah kernel image dan sebuah ram disk image (id – emi-65440E7E)
  • Sebuah file XML dengan nama seperti “vmlinuz-2.6.28-11-server.manifest.xml” akan membawa informasi tentang with information about the corresponding kernel image(id – eki-39FC1244)
  • Sebuah file XML dengan nama seperti “initrd.img-2.6.28-11-server.manifest.xml” akan membawa informasi tentang ramdisk image(id – eri-71ED1322)

Setiap image akan mempunyai ID sendiri yang digunakan saat menjalankan instances.

Dari interface web Eucalyptus, kita dapat melihat daftar dari EMI yang ada di tab “Store” di web. Daftar ini adalah EMI yang ada di Canonical atau partner. Kita dapat memilih untuk mendownload dan menginstall image ini langsung dari Canonical site.

Kebanyakan pengguna Eucalyptus baik enterprise / individual biasanya membutuhkan untuk

Since most enterprise/individual users of Eucalyptus have a need for bringing up instances based on custom images, image management plays a key role in Eucalyptus administration. Such images could be based on a preferred version/variant of a preferred OS distribution with a set of required applications pre-installed.

Membuat EMI akan melalui banyak langkah berikut:

  1. membuat virtual disk image
  2. install OS
  3. install aplikasi yang diperlukan
  4. membuat OS siap untuk di jalankan di UEC
  5. mendaftarkan image dengan UEC
  6. test image dll.

Proses pembuatan image berbeda antara Linux dan Windows.

Membuat Linux Image

Kita akan menggunakan Client1 untuk pembuatan image. Untuk itu, kita perlu menginstalasi KVM di Client1.


Membuat Image disk

Hal ini memrepresentasikan harddisk utama dari virtual machine, oleh karenanya kita perlu memastikan bahwa kita memberikan alokasi harddisk yang cukup. Karena kita akan membuat image kvm, kita menggunakan format qcow2 untuk image. Qcow2 adalah format image yang dapat di expand, oleh karenanya dia hanya akan menggunakan tempat penyimpanan yang berisi data aja dari image tersebut.

uecadmin@client1:~$ kvm-img create -f qcow2 image.img 5G

Membuat Image OS

Download iso file dari distribusi linux yang ingin kita install image-nya. Contoh berikut memperlihatkan caranya.

uecadmin@client1:~$ wget http://releases.ubuntu.com/karmic/ubuntu-9.04-server-amd64.iso
uecadmin@client1:~$ scp user@mesin:/path/ubuntu-10.10-server-i386.iso .

Setelah itu lakukan proses instalasi:

uecadmin@client1:~$ sudo kvm -m 256 -cdrom ubuntu-10.10-server-i386.iso -drive file=image.img,if=scsi,index=0 -boot d \
-net nic -net user -nographic -vnc :0

Jika proses instalasi membutuhkan RAM lebih dari 256MB ubah opsi -m, dan jika kita membutuhkan lebih banyak prosesor yang tersedia, kita dapat menggunakan opsi '-c'.

Perintah di atas akan boot pada instance KVM yang baru, dengan disk image yang baru kita buat sebagai primary harddisk dan iso sebagai bootable device yang pertama. Perintah '-nographic' akan menyebabkan KVM tidak menampilkan output grafik. Kita dapat connect ke instance menggunakan VNC (dengan display number:0) dan menyelesaikan proses instalasi.

apt-get install vncviewer
vncviewer 192.168.0.2:0
vncviewer xx.xx.xx.xx:0

Setelah menyelesaikan proses instalasi, jalankan VM melalui perintah berikut

uecadmin@client1:~$ sudo kvm -m 256 -drive file=image.img,if=scsi,index=0,boot=on -boot c \
-net nic -net user -nographic -vnc :0

Pada titik ini, kita dapat menambahkan berbagai paket yang ingin kita instal, update instalasi, menambahkan user dan berbagai settingan yang ada di UEC instance. Misalnya,

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install mediawiki

Integrasi dengan Eucalyptus

Sebuah Instance jalan di Eucalyptus perlu mengetahui IP yang dia miliki, dia juga membutuhkan public key dari pengguna yang di ijinkan untuk mengakses secara passwordless melalui SSH. Hal ini dapat di akses menggunakan interface yang di sediakan oleh cloud. Interface tersebut tersedia melalui URL http://169.254.169.254/latest/meta-data yang dapat di akses dari dalam instance.

Eucalyptus node controller di setup untuk menjaga tidak terjadinya automatic key injection jika system di operasikan menggunakan mode MANAGED atau MANAGED-NOVLAN. Akan tetapi, Eucalyptus akan berasumsi bahwa instance akan menggunakan layanan meta-data di atas untuk mengambil public key jika di jalankan pada mode di atas. Kita perlu memfasilitasi ini dengan menginstal crul dan menambahkan sedikit script setiap kali booting.

Instalasi crul di VM

$ sudo apt-get install curl

Tambahakan kalimat berikut di /etc/rc.local sebelum kata 'exit 0' dari image

depmod -a
modprobe acpiphp
 
# simple attempt to get the user ssh key using the meta-data service
# assuming “user” is the username of an account that has been created
 
mkdir -p /home/user/.ssh
echo >> /home/user/.ssh/authorized_keys
curl -m 10 -s http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key | grep 'ssh-rsa' >> \
                         /home/user/.ssh/authorized_keys
echo "AUTHORIZED_KEYS:"
echo "************************"
cat /home/user/.ssh/authorized_keys
echo "************************"

Juga buang network persistent rules dari /etc/udev/rules.d, sehingga instance selalu nyala dengan eth0 sebagai nama interface seperti yang di harapkan oleh Eucalyptus.

$ sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules

Selesai sudah proses customisasi OS yang akan di instalasi sebagai reference image.


Pendaftaran ke Eucalyptus

Langkah terakhir adalah mengupload image ke Eucalyptus. File yang perlu di upload untuk contoh di atas adalah vmlinuz-2.6.28-11-server, initrd.img-2.6.28-11-server, image.img.

Copy kernel dan initrd image dari VM image ke sebuah lokasi di luar. Hal ini di perlukan untuk digunakan selanjutnya waktu membuat dan mengupload complete virtual image ke Eucalyptus.

$ scp /boot/initrd.img-2.6.28-11-server user@A.B.C.D:
$ scp /boot/vmlinuz-2.6.28-11-server user@A.B.C.D:

Sebelum menjalankan upload shutdown VM.


Mendaftarkan kernel image

Jalankan perintah berikut untuk mem-bundel dan mendaftarkan kernel image (vmlinuz-2.6.28-11-server)

uecadmin@client1:~$ euca-bundle-image -i vmlinuz-2.6.28-11-server --kernel true
uecadmin@client1:~$ euca-upload-bundle -b mybucket -m /tmp/vmlinuz-2.6.28-11-server.manifest.xml
uecadmin@client1:~$ euca-register mybucket/vmlinuz-2.6.28-11-server.manifest.xml

Simpan output yang dihasilkan oleh perintah terakhir di atas (eki-XXXXXXXX), yang akan dibutuhkan untuk mendaftarkan disk image


Mendaftarkan ramdisk image

Jalankan perintah berikut untuk mem-bundel dan mendaftarkan ramdisk image (initrd.img-2.6.28-11-server)

uecadmin@client1:~$ euca-bundle-image -i  initrd.img-2.6.28-11-server
uecadmin@client1:~$ euca-upload-bundle -b mybucket -m /tmp/initrd.img-2.6.28-11-server.manifest.xml
uecadmin@client1:~$ euca-register mybucket/initrd.img-2.6.28-11-server.manifest.xml

Simpan output yagn dihasilkan oleh perintah terakhir di atas (eri-XXXXXXXX), yang akan dibutuhkan pada saat mendaftarkan disk image.


Mendaftarkan disk image

Jalankan perintah berikut untuk mem-bundel dan mendaftarkan ramdisk image (image.img)

uecadmin@client1:~$ euca-bundle-image -i image.img --kernel eki-XXXXXXXX --ramdisk eri-XXXXXXXX
uecadmin@client1:~$ euca-upload-bundle -b mybucket -m /tmp/image.img.manifest.xml
uecadmin@client1:~$ euca-register mybucket/image.img.manifest.xml

Ganti eki-XXXXXXXX dan eri-XXXXXXXX dengan nilai yang kita peroleh sebelumnya


Melihat daftar Image

Image baru yang sudah di upload dapat dilihat menggunakan perintah euca-describe-images


uecadmin@client1:~$ euca-describe-images
IMAGE   emi-70B70EC0    mybucket/image.img.manifest.xml                     admin   available        public  x86_64  machine
IMAGE   eri-A2BE13EC    mybucket/initrd.img-2.6.28-11-server.manifest.xml   admin    available       public  x86_64  ramdisk
IMAGE   eki-685F1306    mybucket/vmlinuz-2.6.28-11-server.manifest.xml      admin    available       public  x86_64  kernel

Tentang bagaimana managing instances akan di terangkan di bagian selanjutnya.


Referensi

Pranala Menarik