To begin with, I am going to download a virtual image from the Virtual Appliances Marketplace, specifically an Ubuntu Server 8.04 LTS distribution (I will drop it off into the tmp directory).
oneadmin@frontend01:/tmp/ubuntu-server-8.04.1-i386$ ls -lh
total 529M
-rw-rw-r-- 1 oneadmin cloud 269 2008-07-05 17:59 README-vmware-image.txt
-rw------- 1 oneadmin cloud 8.5K 2008-07-05 17:59 ubuntu-server-8.04.1-i386.nvram
-rw------- 1 oneadmin cloud 144M 2008-07-05 17:59 ubuntu-server-8.04.1-i386-s001.vmdk
-rw------- 1 oneadmin cloud 207M 2008-07-05 17:59 ubuntu-server-8.04.1-i386-s002.vmdk
-rw------- 1 oneadmin cloud 177M 2008-07-05 17:59 ubuntu-server-8.04.1-i386-s003.vmdk
-rw------- 1 oneadmin cloud 1.8M 2008-07-05 17:59 ubuntu-server-8.04.1-i386-s004.vmdk
-rw------- 1 oneadmin cloud 64K 2008-07-05 17:59 ubuntu-server-8.04.1-i386-s005.vmdk
-rw------- 1 oneadmin cloud 592 2008-07-05 17:59 ubuntu-server-8.04.1-i386.vmdk
-rw------- 1 oneadmin cloud 0 2008-07-05 17:59 ubuntu-server-8.04.1-i386.vmsd
-rwxr-xr-x 1 oneadmin cloud 1.1K 2008-07-05 17:59 ubuntu-server-8.04.1-i386.vmx
Then I am going to register the image in OpenNebula. For this purpose, it is necessary to define an image template.
oneadmin@frontend01:/tmp/ubuntu-server-8.04.1-i386$ cat ubuntu-server-8.04.img
NAME = "Ubuntu Server 8.04"
DESCRIPTION = "Ubuntu Server 8.04 LTS (32 bits)"
oneadmin@frontend01:/tmp/ubuntu-server-8.04.1-i386$ onevmware register --disk-vmdk ubuntu-server-8.04.1-i386.vmdk --disk-flat ubuntu-server-8.04.1-i386-s001.vmdk,ubuntu-server-8.04.1-i386-s002.vmdk,ubuntu-server-8.04.1-i386-s003.vmdk,ubuntu-server-8.04.1-i386-s004.vmdk,ubuntu-server-8.04.1-i386-s005.vmdk ubuntu-server-8.04.img
What happens now? We have a virtual image ready to be used. This image has been stored into the images directory.
oneadmin@frontend01:~$ oneimage list
ID USER NAME TYPE REGTIME PUB PER STAT #VMS
0 oneadmin Ubuntu Server 8.04 OS Jul 02, 2011 10:34 No No rdy 0
oneadmin@frontend01:~$ ls -l var/images/0ffb8867916a29e279e5ac2374833faa84fe5193/
total 540740
-rw-rw---- 1 oneadmin cloud 592 2011-07-02 12:34 disk.vmdk
-rw-rw---- 1 oneadmin cloud 150339584 2011-07-02 12:34 ubuntu-server-8.04.1-i386-s001.vmdk
-rw-rw---- 1 oneadmin cloud 216268800 2011-07-02 12:35 ubuntu-server-8.04.1-i386-s002.vmdk
-rw-rw---- 1 oneadmin cloud 185204736 2011-07-02 12:36 ubuntu-server-8.04.1-i386-s003.vmdk
-rw-rw---- 1 oneadmin cloud 1835008 2011-07-02 12:37 ubuntu-server-8.04.1-i386-s004.vmdk
-rw-rw---- 1 oneadmin cloud 65536 2011-07-02 12:37 ubuntu-server-8.04.1-i386-s005.vmdk
What is the next step? Easy, to make up a virtual network so as to be able to connect our future virtual machine on it. In my example, I have created a simple ranged network called ESXi Network. You can review the different parameters by taking a look at the exposed link in this paragraph.
oneadmin@frontend01:~$ mkdir templates ; cd templates
oneadmin@frontend01:~/templates$ cat esxi.net
NAME = "ESXi Network"
TYPE = RANGED
PUBLIC = NO
BRIDGE = "VM Network"
NETWORK_ADDRESS = 192.168.1.160
NETWORK_SIZE = 16
NETMASK = 255.255.255.0
GATEWAY = 192.168.1.1
DNS = 194.30.0.1
oneadmin@frontend01:~/templates$ onevnet create esxi.net
oneadmin@frontend01:~/templates$ onevnet list
ID USER NAME TYPE BRIDGE P #LEASES
0 oneadmin ESXi Network Ranged VM Net N 0
And finally, we must just set up an instance template in order to declare the features of our virtual machine. Also point out that a virtual machine is known as instance as well.
oneadmin@frontend01:~/templates$ cat ubuntu-server01.vm
NAME = "UbuntuServer-01"
CPU = 1
MEMORY = 512
DISK = [ IMAGE = "Ubuntu Server 8.04",
TARGET = hda ]
NIC = [ NETWORK = "ESXi Network" ]
oneadmin@frontend01:~/templates$ onevm create ubuntu-server01.vm
oneadmin@frontend01:~/templates$ onevm list
ID USER NAME STAT CPU MEM HOSTNAME TIME
0 oneadmin UbuntuSe pend 0 0K 00 00:00:07
We can see in the output of the preceding onevm list command that, the state of the instance is pend (pending), that is to say, it is waiting to be deployed on a hypervisor, in my case, esxi01. So let's go.
oneadmin@frontend01:~/templates$ onevm deploy 0 0
oneadmin@frontend01:~/templates$ onevm list
ID USER NAME STAT CPU MEM HOSTNAME TIME
0 oneadmin UbuntuSe prol 0 0K esxi01 00 00:00:36
oneadmin@frontend01:~/templates$ onevm list
ID USER NAME STAT CPU MEM HOSTNAME TIME
0 oneadmin UbuntuSe boot 0 0K esxi01 00 00:00:50
oneadmin@frontend01:~/templates$ onevm list
ID USER NAME STAT CPU MEM HOSTNAME TIME
0 oneadmin UbuntuSe runn 0 0K esxi01 00 00:01:07
When we treat to deploy the virtual machine on the node, its first state is prol (prolog), then it reaches a boot state (booting), and lastly, runn (running), once the instance has been started up.
No comments:
Post a Comment