Difference between revisions of "Ubuntu Enterprise Cloud: Catatan kecil Instalasi & Operasi"

From OnnoWiki
Jump to navigation Jump to search
Line 448: Line 448:
  
 
* http://ubuntu-smoser.blogspot.com/2010_11_01_archive.html
 
* http://ubuntu-smoser.blogspot.com/2010_11_01_archive.html
 +
* https://help.ubuntu.com/community/UEC/Images
  
 
==Pranala Menarik==
 
==Pranala Menarik==

Revision as of 21:30, 24 December 2010

Install Ubuntu Enterprise Cloud

  • Masukan CD Ubuntu Server
  • Boot Komputer
  • Install UEC

Cek KVM

kvm-ok

Pastikan keluarannya

INFO: Your CPU supports KVM extensions
INFO: /dev/kvm exists
KVM acceleration can be used

Jika tidak,

  • Pastikan CPU yang anda gunakan mensupport VT
  • Pastikan BIOS mengaktifkan VT

Siapkan EUCA

Di Cloud Controller

Pastikan eucalyptus beroperasi

sudo service eucalyptus restart


Di Client

Akses ke Could Controller (192.168.0.10)

https://192.168.0.10:8443/#credentials

Dengan

username admin
password admin


Jika di perlukan

sudo apt-get install euca2ools

Lakukan

mkdir ~/.euca
cp euca2-admin-x509.zip ~/.euca/
cd ~/.euca
unzip euca2-admin-x509.zip

Cek availability zone

. ~/.euca/eucarc
source ~/.euca/eucarc
euca-describe-availability-zones verbose
AVAILABILITYZONE	cluster1	192.168.0.10
AVAILABILITYZONE	|- vm types	free / max   cpu   ram  disk
AVAILABILITYZONE	|- m1.small	0004 / 0004   1    192     2
AVAILABILITYZONE	|- c1.medium	0004 / 0004   1    256     5
AVAILABILITYZONE	|- m1.large	0002 / 0002   2    512    10
AVAILABILITYZONE	|- m1.xlarge	0001 / 0001   2   1024    20
AVAILABILITYZONE	|- c1.xlarge	0000 / 0000   4   2048    20

Perhatikan free / max VCPU tidak 0, berisi angka hal ini berarti ada node yang terdaftar & bisa digunakan. Kita mempunyai masalah jika free / max bernilai 0 seperti di bawah ini

euca-describe-availability-zones verbose
AVAILABILITYZONE	cluster1	192.168.0.2
AVAILABILITYZONE	|- vm types	free / max   cpu   ram  disk
AVAILABILITYZONE	|- m1.small	0000 / 0000   1    192     2
AVAILABILITYZONE	|- c1.medium	0000 / 0000   1    256     5
AVAILABILITYZONE	|- m1.large	0000 / 0000   2    512    10
AVAILABILITYZONE	|- m1.xlarge	0000 / 0000   2   1024    20
AVAILABILITYZONE	|- c1.xlarge	0000 / 0000   4   2048    20


Jika kita melihat dalam daftar di atas free/max VCPU bernilai 0, hal ini berarti node (NC) tidak terdaftar secara automatis.

Jika ingin melakukan discovery Node pada Server, untuk mendiscover Node Controller (NC).

$ sudo euca_conf --discover-nodes

Hasilnya kira-kira adalah

ERROR: could not synchronize keys with fe80::215:17ff:fead:c7c1!
The configuration will not have this node.
Hint: to setup passwordless login to the nodes as user eucalyptus, you can
run the following commands on node fe80::215:17ff:fead:c7c1:
sudo -u eucalyptus mkdir -p ~eucalyptus/.ssh
sudo -u eucalyptus tee ~eucalyptus/.ssh/authorized_keys > /dev/null <<EOT
ssh-rsa  AAAAB3NzaC1yc2EAAAADAQABAAABAQDIlJ1AMIA2/fITDYu7gZHx1ivRKRTHLMmqGHX5mPywB2OPf25mFsOVLTvGNjHl1q6mKwCetAfFr4EI5nG8Qz9bLaDvFfeyUJlA+IE0mpIyultfFM173tMC0LMO5jGTJxuM+GuUittFeYtg+nR8CuVl6DBeYDOM1Ih1S5rWlJjJbwwOYniLzamCshbV7T1r/6oM09X5uJIka5Pm4JGduIw3xFeAttYAhkyvBdZnanlWq1J/Fm46v1HHZBsGcke6n7uNr2hq/QQpw1mmUA29fwQPl87Wd9U+7ZtlxJxYJD4HUa+9nimi9WvDB1PUWm+E8qOVtZIeBMUxIzcX2Pu9jPmz eucalyptus@cloud
EOT

Be sure that authorized_keys is not group/world readable or writable

Trying rsync to sync keys with "fe80::fcb6:8aff:fe1d:8791"...ssh: Could not resolve hostname fe80: Name or service not known
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(601) [sender=3.0.7]
failed.
Trying scp to sync keys to: eucalyptus@fe80::fcb6:8aff:fe1d:8791://var/lib/eucalyptus/keys/...
ssh: Could not resolve hostname fe80: Name or service not known
lost connection
failed.

ERROR: could not synchronize keys with fe80::fcb6:8aff:fe1d:8791!
The configuration will not have this node.
Hint: to setup passwordless login to the nodes as user eucalyptus, you can
run the following commands on node fe80::fcb6:8aff:fe1d:8791:
sudo -u eucalyptus mkdir -p ~eucalyptus/.ssh
sudo -u eucalyptus tee ~eucalyptus/.ssh/authorized_keys > /dev/null <<EOT
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIlJ1AMIA2/fITDYu7gZHx1ivRKRTHLMmqGHX5mPywB2OPf25mFsOVLTvGNjHl1q6mKwCetAfFr4EI5nG8Qz9bLaDvFfeyUJlA+IE0mpIyultfFM173tMC0LMO5jGTJxuM+GuUittFeYtg+nR8CuVl6DBeYDOM1Ih1S5rWlJjJbwwOYniLzamCshbV7T1r/6oM09X5uJIka5Pm4JGduIw3xFeAttYAhkyvBdZnanlWq1J/Fm46v1HHZBsGcke6n7uNr2hq/QQpw1mmUA29fwQPl87Wd9U+7ZtlxJxYJD4HUa+9nimi9WvDB1PUWm+E8qOVtZIeBMUxIzcX2Pu9jPmz eucalyptus@cloud
EOT

Lakuan perintah

sudo -u eucalyptus mkdir -p ~eucalyptus/.ssh
sudo -u eucalyptus tee ~eucalyptus/.ssh/authorized_keys > /dev/null <<EOT
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIlJ1AMIA2/fITDYu7gZHx1ivRKRTHLMmqGHX5mPywB2OPf25mFsOVLTvGNjHl1q6mKwCetAfFr4EI5nG8Qz9bLaDvFfeyUJlA+IE0mpIyultfFM173tMC0LMO5jGTJxuM+GuUittFeYtg+nR8CuVl6DBeYDOM1Ih1S5rWlJjJbwwOYniLzamCshbV7T1r/6oM09X5uJIka5Pm4JGduIw3xFeAttYAhkyvBdZnanlWq1J/Fm46v1HHZBsGcke6n7uNr2hq/QQpw1mmUA29fwQPl87Wd9U+7ZtlxJxYJD4HUa+9nimi9WvDB1PUWm+E8qOVtZIeBMUxIzcX2Pu9jPmz eucalyptus@cloud
EOT
sudo -u eucalyptus mkdir -p ~eucalyptus/.ssh
sudo -u eucalyptus tee ~eucalyptus/.ssh/authorized_keys > /dev/null <<EOT
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIlJ1AMIA2/fITDYu7gZHx1ivRKRTHLMmqGHX5mPywB2OPf25mFsOVLTvGNjHl1q6mKwCetAfFr4EI5nG8Qz9bLaDvFfeyUJlA+IE0mpIyultfFM173tMC0LMO5jGTJxuM+GuUittFeYtg+nR8CuVl6DBeYDOM1Ih1S5rWlJjJbwwOYniLzamCshbV7T1r/6oM09X5uJIka5Pm4JGduIw3xFeAttYAhkyvBdZnanlWq1J/Fm46v1HHZBsGcke6n7uNr2hq/QQpw1mmUA29fwQPl87Wd9U+7ZtlxJxYJD4HUa+9nimi9WvDB1PUWm+E8qOVtZIeBMUxIzcX2Pu9jPmz eucalyptus@cloud
EOT

Mengambil Image UEC dari Internet

Agar hidup kita lebih mudah akan lebih baik mengambil Image UEC yang sudah jadi dari Internet, misalnya dari

Menggunakan image yang sudah jadi lebih di rekomendasikan.


Menyiapkan Image UEC menggunakan VM

Bagi mereka yang mempunyai nyali bisa membuat sendiri VM untuk UEC. Resiko terlalu tinggi jika membuat sendiri image.img seringkali instance tidak bisa running & hang. Lebih baik memggunakan uec-images yang sudah jadi dari uec-images.ubuntu.com.

kvm-img create -f qcow2 image.img 5G
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

Akses dari komputer lain di jaringan / LAN menggunakan vncviewer lakukan proses instalasi OS seperti biasa

sudo apt-get install vncviewer
vncviewer 192.168.0.2:0

Proses Instalasi Ubuntu 10.10 Server akan berjalan melalui VM. Setelah selesai semua, kita dapat mematikan proses VM menggunakan

^C

di shell terminal mesin yang menjalankan VM.

Menyiapkan Image untuk Aplikasi Tambahan

Setelah menyelesaikan proses instalasi, jalankan VM melalui perintah berikut

sudo kvm -m 256 -drive file=image.img,if=scsi,index=0,boot=on -boot c -net nic -net user -nographic -vnc :0
sudo kvm -m 256 -drive file=image.img,if=virtio -boot c -net nic -net user -nographic -vnc :0

atau

tarball=ubuntu-10.10-server-uec-i386.tar.gz
contents=${tarball}.contents
tar -Sxvzf ${tarball} | tee "${contents}"
base=$(sed -n 's/.img$//p' "${contents}")
kernel=$(echo ${base}-vmlinuz-*)
floppy=${base}-floppy
img=${base}.img
qemu-img create -f qcow2 -b ${img} disk.img
sudo kvm -fda ${floppy} -drive if=virtio,file=disk.img -boot a -net nic -net user -nographic -vnc :0



Akses melalui vncviewer

vncviewer 192.168.0.2: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

Menyiapkan Integrasi Image dengan Eucalyptus

Tambahan 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.

Kita bisa menshutdown image di VM menggunakan perintah

sudo halt


Mendaftarkan UEC Image ke Cloud Controller

Cara yang paling manjur & sangat sederhana untuk mendaftarkan Image ke Cloud Controller adalah sebagai berikut

uec-publish-tarball maverick-server-uec-i386.tar.gz mybucket
Fri Dec 24 09:54:10 WIT 2010: ====== extracting image ======
Warning: no ramdisk found, assuming '--ramdisk none'
kernel : maverick-server-uec-i386-vmlinuz-virtual
ramdisk: none
image  : maverick-server-uec-i386.img
Fri Dec 24 09:54:21 WIT 2010: ====== bundle/upload kernel ======
Fri Dec 24 09:54:24 WIT 2010: ====== bundle/upload image ======
Fri Dec 24 09:55:46 WIT 2010: ====== done ======
emi="emi-ECC8155F"; eri="none"; eki="eki-35AD1A67";

Untuk cara ini kita membutuhkan UEC image dari Ubuntu.com

Cara yang lebih panjang untuk pendaftaran ke Eucalyptus

Langkah terakhir adalah mengupload image ke Could Controller Eucalyptus. File yang perlu di upload untuk contoh di atas adalah

  • /boot/vmlinuz-2.6.35-22-generic-pae
  • /boot/initrd.img-2.6.35-22-generic-pae

Copy kernel dan initrd image dari VM image ke Cloud Controller (dalam contoh ini 192.168.0.10). Hal ini di perlukan untuk digunakan selanjutnya waktu membuat dan mengupload complete virtual image ke Eucalyptus.

Lihat initrd.img dan vmlinuz di /boot

$ sudo ls /boot

copy

$ scp /boot/initrd.img-2.6.35-22-generic-pae user@192.168.0.10:
$ scp /boot/vmlinuz-2.6.35-22-generic-pae user@192.168.0.10:

Sebelum menjalankan upload shutdown VM. Perhatikan 'user' di atas adalah username yang kita buat saat instalasi.

Mendaftarkan kernel image

Jalankan perintah berikut dari salah satu komputer client untuk mem-bundel dan mendaftarkan kernel image (vmlinuz-2.6.35-22-generic-pae)

$ . ~/.euca/eucarc
$ source ~/.euca/eucarc
$ euca-bundle-image -i vmlinuz-2.6.35-22-generic-pae --kernel true
$ euca-upload-bundle -b mybucket -m /tmp/vmlinuz-2.6.35-22-generic-pae.manifest.xml
$ euca-register mybucket/vmlinuz-2.6.35-22-generic-pae.manifest.xml

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


Mendaftarkan ramdisk image

Jalankan perintah berikut untuk mem-bundel dan mendaftarkan ramdisk image (initrd.img-2.6.35-22-generic-pae)

$ . ~/.euca/eucarc
$ source ~/.euca/eucarc
$ euca-bundle-image -i  initrd.img-2.6.35-22-generic-pae
$ euca-upload-bundle -b mybucket -m /tmp/initrd.img-2.6.35-22-generic-pae.manifest.xml
$ euca-register mybucket/initrd.img-2.6.35-22-generic-pae.manifest.xml

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


Mendaftarkan disk image

Pastikan pada home directory ada file *.img dan pendukungnya. Misalnya kita ingin menggunakan ls maverick-server-uec-i386*

ls ~/maverick-server-uec-i386*
maverick-server-uec-i386-floppy
maverick-server-uec-i386-loader
maverick-server-uec-i386-vmlinuz-virtual
maverick-server-uec-i386.img
maverick-server-uec-i386.tar.gz

Kalau tidak ada, copy dan extract mengunakan perintah

cp maverick-server-uec-i386.tar.gz ~
cd ~
tar zxvf maverick-server-uec-i386.tar.gz 

Jalankan perintah berikut untuk mem-bundel dan mendaftarkan ramdisk image (maverick-server-uec-i386.img)

$ euca-bundle-image -i maverick-server-uec-i386.img --kernel eki-XXXXXXXX --ramdisk eri-XXXXXXXX

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

$ euca-bundle-image -i maverick-server-uec-i386.img --kernel eki-D00014A8 --ramdisk eri-0EDB1590
$ euca-upload-bundle -b mybucket -m /tmp/maverick-server-uec-i386.img.manifest.xml
$ euca-register mybucket/maverick-server-uec-i386.img.manifest.xml

Biasanya sesudah euca-register akan di keluarkan emi-XXXXXXXX misalnya emi-ECA31559

Melihat daftar Image

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

$ euca-describe-images
IMAGE	eki-35AD1A67	mybucket/maverick-server-uec-i386-vmlinuz-virtual.manifest.xml	admin	available	public		i386	kernel		
IMAGE	emi-ECC8155F	mybucket/maverick-server-uec-i386.img.manifest.xml	admin	available	public		i386	machine	eki-35AD1A67	

Tentang bagaimana managing instances akan di terangkan di bagian selanjutnya.


Deregister Image

Kita dapat men-deregister image jika dibutuhkan

euca-deregister emi-70280EAC


Pembuatan Pasangan Kunci

Kita membutuhkan pasangan kunci untuk berhubungan dengan instance yang akan di jalankan di cloud. Pasangan kunci dapat di hasilkan menggunakan perintah berikut

cd ~/.euca
source eucarc
euca-add-keypair mykey > mykey.priv
chmod 600 mykey.priv

Untuk melihat pasangan kunci

$ euca-describe-keypairs
KEYPAIR	mykey	18:7d:ae:d6:5d:03:d0:7c:90:53:47:bf:36:16:e0:d5:b4:df:1b:04

Untuk men-delete pasangan kunci dapat menggunakan perintah

$ euca-delete-keypair mykey


Menjalankan dan Memanage Instance

Perintah berikut dapat digunakan untuk untuk menjalankan instance dengan menggunakan pasangan kunci yang kita buat, mencek status instance, dan meng-connect ke instance.

Cek zone & cek images yang ada

. ~/.euca/eucarc
source ~/.euca/eucarc
euca-describe-availability-zones verbose
euca-describe-images

Beberapa pilihan perintah untuk menjalankan instance emi-XXXXX

$ euca-run-instances -k mykey -t c1.medium emi-ECB2155B
$ euca-run-instances -k mykey -t m1.large emi-ECB2155B 
$ euca-run-instances -k mykey -t m1.xlarge emi-ECB2155B 

Jika berhasil jalan dengan baik akan keluar

RESERVATION	r-2E080519	admin	admin-default
INSTANCE	i-3FFD073B	emi-ECB2155B	0.0.0.0	0.0.0.0	pending	mykey	0		m1.large	2010-12-24T06:22:45.5Z	cluster1	eki-35A41A6B	

Untuk melihat lebih detail tentang instance tersebut kita dapat menggunakan perintah

$ euca-describe-instances
RESERVATION	r-2E080519	admin	default
INSTANCE	i-3FFD073B	emi-ECB2155B	192.168.0.20	172.19.1.2	pending	mykey	0		m1.large	2010-12-24T06:22:45.5Z	cluster1	eki-35A41A6B	

Jika ingin melakukan looping lakukan

$ watch -n5 euca-describe-instances


Pastikan "pending" menjadi "running". Jika tidak berhasil berarti instance tidak berjalan dengan baik.

Cek di /var/log/eucalyptus di Node

Kalau cukup iseng kita juga dapat mencek di Node /var/log/eucalyptus. Lakukan

tail /var/log/eucalyptus/nc.log 
[Fri Dec 24 10:16:40 2010][002040][EUCADEBUG ] doDescribeResource() invoked
[Fri Dec 24 10:16:40 2010][002040][EUCADEBUG ] doDescribeInstances() invoked
[Fri Dec 24 10:16:40 2010][002040][EUCADEBUG ] doDescribeInstances(): instanceId=i-57110A2D publicIp=0.0.0.0 privateIp=172.19.1.2 mac=D0:0D:57:11:0A:2D vlan=10 networkIndex=2

Berinteraksi dengan Instance

Melihat console output

Jika Instance sudah 'running' maka kita dapat melihat apa yang terjadi di console melalui perintah

$ euca-get-console-output i-49FA09ED

Jika belum 'running' maka akan tampak

VmControl: Instance i-49FA09ED is not in a running state.

Shutdown Instance

$ euca-terminate-instances i-49FA09ED


Reboot Instance

$ euca-reboot-instances i-49FA09ED


SSH ke Instance

Jika Instance sudah berjalan dengan baik harusnya kita dapat masuk menggunakan SSH

$ ssh -i mykey.priv administrator@192.168.0.20


Beberapa Error

Kadang keluar error

FinishedVerify: Not enough resources (0 < 1: vm instances.Not enough resources (0 < 1: vm instances.

Kita tampaknya perlu menaikan resource, misalnya RAM dll. Pakai zone yang lain.

Referensi

Pranala Menarik