Auto Booting CloudN VM Using ISO File¶
This document provides one method to boot CloudN VM automatically without the initial manual configuration stage for interface address.
This method uses a customized ISO file when launching the virtual machine.
Note: CloudN can be downloaded from this link:.
1. Installation on VMware vSphere Client¶
Create the customized configuration¶
In order to boot CloudN that passes in interface address information, we need to create an ISO image containing both user-data and meta-data in ISO9660 format.
Creating user-data file¶
In the following example, CloudN is designed to boot up with a static ip address 10.10.0.10, netmask 255.255.0.0, gateway 10.10.0.1 and dns-nameservers 8.8.8.8 and 8.8.4.4. Please note that “#cloud-config” is not a comment but a directive to cloud-init.
Sample contents of user-data:
#cloud-config
write_files
- path: /etc/network/interfaces
content: |
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.10.0.10
netmask 255.255.0.0
gateway 10.10.0.1
dns-nameservers 8.8.8.8 8.8.4.4
Note
If CloudN VM were to be deployed in a proxy environment, we would need to include additional proxy settings in the user-data. In the following sample, 10.10.0.21 is the IP address of the CloudN VM, 10.28.144.137 is the proxy IP address with port 8080, as shown in the example below.
Sample contents of user-data (with proxy settings):
#cloud-config
write_files:
- path: /etc/sudoers.d/90-proxy
content: |
#Aviatrix http/https proxy integration
Defaults env_keep += "http_proxy https_proxy no_proxy"
- path: /etc/network/interfaces
content: |
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.10.0.21
netmask 255.255.0.0
gateway 10.10.0.1
dns-nameservers 8.8.8.8 8.8.4.4
bootcmd:
- grep -q _proxy /etc/environment || (echo "http_proxy=http://10.28.144.137:8080"; echo
"https_proxy=http://10.28.144.137:8080"; echo "no_proxy=127.0.0.1,10.10.0.21") >>
/etc/environment
- grep -q _proxy /etc/apache2/envvars || (echo "export
http_proxy=http://10.28.144.137:8080"; echo "export
https_proxy=http://10.28.144.137:8080"; echo "export no_proxy=127.0.0.1,10.10.0.21") >>
/etc/apache2/envvars
Create meta-data file¶
instance-id: CloudN-local
local-hostname: CloudN-local
Create the ISO¶
After the user-data file and meta-data file are created, you can create the ISO by using this following command.
ubuntu@ubuntu:~ $ genisoimage -o cloudn-10-10-0-10.iso -volid cidata -J
-r user-data meta-data
Verify the ISO (optional)¶
ubuntu@ubuntu:~$ sudo mkdir /media/test_iso
ubuntu@ubuntu:~$ sudo mount -o loop cloudn-10-10-0-10.iso
/media/test_iso
mount: /dev/loop0 is write-protected, mounting read-only
ubuntu@ubuntu:~$ cat /media/test_iso/user-data
#cloud-config
write_files:
- path: /etc/network/interfaces
content: |
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.10.0.10
netmask 255.255.0.0
gateway 10.10.0.1
dns-nameservers 8.8.8.8 8.8.4.4
ubuntu@ubuntu:~$ cat /media/test_iso/meta-data
instance-id: CloudN-local
local-hostname: CloudN-local
ubuntu@ubuntu:~$ sudo umount /media/test_iso
Deploy CloudN VM with the ISO¶
Now you can deploy a CloudN VM with the cloudn-10-10-0-10.iso attached as a CDROM to the VM. During the boot up process, the CloudN will be configured with the customized configuration in user-data and meta-data. Once the CloudN network is up, it will automatically download the latest CloudN software. We will be able to access the web UI directly without having to access the CloudN VM console to perform the initial interface setup.
After importing the CloudN ovf is completed,
- Click on “Edit virtual machine settings” and select CD/DVD Drive under the Hardware section.
- Make sure the Device status “Connect at power on” option is checked
- Click on “Use ISO image” to browse to the cloudn-10-10-0-10.iso.
- Click “OK” to complete the Virtual Machine Settings.
Power on the CloudN virtual machine. The configuration in cloudn-10-10-0-10.iso will be read by cloud-init during the installation process and CloudN will upgrade to default version when the network is up.
Once the CloudN login prompt is shown on the VM console, we can access the https://10.10.0.10 to complete the admin’s email and password initialization process.
2. Installation on Linux KVM¶
The same methods previously described to create the cloudn-172-25-0-10.iso can be applied to KVM virtualization environment.
Contents of user-data:¶
#cloud-config
write_files:
- path: /etc/network/interfaces
content: |
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 172.25.0.10
netmask 255.255.0.0
gateway 172.25.0.1
dns-nameservers 8.8.8.8 8.8.4.4
Contents meta-data:¶
instance-id: CloudN-local
local-hostname: CloudN-local
Create the ISO Image¶
ubuntu@ubuntu:~ $ genisoimage -o cloudn-172-25-0-10.iso -volid cidata -J
-r user-data meta-data
Deploy CloudN VM with the ISO Image¶
Copy the CloudN qcow2 image and cloudn-172-25-0-10.iso to the /var/lib/libvirt/images.
root@ubuntu1:/var/lib/libvirt/images# cp
/home/ubuntu/Downloads/CloudN-ovf-013017.qcow2 .
root@ubuntu1:/var/lib/libvirt/images# cp
/home/ubuntu/Downloads/cloudn-172-25-0-10.iso .
root@ubuntu1:/var/lib/libvirt/images# ls -l CloudN-kvm-013017.qcow2
-rw-r--r-- 1 root root 7761634304 Mar 19 22:09 CloudN-kvm-013017.qcow2
root@ubuntu1:/var/lib/libvirt/images# ls -l cloudn-172-25-0-10.iso
-rw-r--r-- 1 root root 374784 Mar 19 22:11 cloudn-172-25-0-10.iso
In this example below, a bridge interface “br1” is created and eno1 is assigned to this “br1”.
ubuntu@ubuntu1:~$ ifconfig
br1 Link encap:Ethernet HWaddr 00:30:48:b3:59:92
inet addr:172.25.0.2 Bcast:172.25.255.255 Mask:255.255.255.0
inet6 addr: fe80::230:48ff:feb3:5992/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2060 errors:0 dropped:0 overruns:0 frame:0
TX packets:507 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:163384 (163.3 KB) TX bytes:74489 (74.4 KB)
eno1 Link encap:Ethernet HWaddr 00:30:48:b3:59:92
inet6 addr: fe80::230:48ff:feb3:5992/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2076 errors:0 dropped:0 overruns:0 frame:0
TX packets:559 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:201572 (201.5 KB) TX bytes:83977 (83.9 KB)
Interrupt:21 Memory:fe600000-fe620000
enp4s0 Link encap:Ethernet HWaddr 00:30:48:b3:59:93
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:19 Memory:fe400000-fe420000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:656 errors:0 dropped:0 overruns:0 frame:0
TX packets:656 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:107212 (107.2 KB) TX bytes:107212 (107.2 KB)
virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
ubuntu@ubuntu:~$ brctl show
bridge name bridge id STP enabled interfaces
br1 8000.003048b35992 no eno1
virbr0 8000.000000000000 yes
Create a new CloudN-1 by importing the CloudN-kvm-013017.qcow2 image with the customized cloudn-172-25-0-10.iso
root@ubuntu1:/var/lib/libvirt/images# virt-install --os-type linux
--os-variant ubuntu14.04 --import --disk
path=./CloudN-kvm-013017.qcow2,bus=virtio,format=qcow2,size=20 --name
CloudN-1 --ram 4096 --vcpus 2 --disk
path=./cloudn-172-25-0-10.iso,device=cdrom --network
bridge=br1,model=virtio --network bridge=br1,model=virtio --graphics spice
Note
You may need to install virt-viewer package on your Linux machine in order to use the SPICE graphics.
A Virt Viewer window will pop up to show the installation process of CloudN. Once the CloudN login prompt is shown on the Virt Viewer console, we can access the https://172.25.0.10 to complete the admin’s email and password initialization process.
When you close the Virt Viewer window, the CloudN VM will continue running and you will notice that the “Domain creation completed” on the terminal that you executed virt-install command earlier.
To shut down or delete the CloudN VM, you may use the Virtual Machine Manager or virsh commands like any other VMs supported by Linux KVM.