# Installing an Alcatel-Lucent VM under Ubuntu/libvirt

With much help from Alastair Johnson of AlcaLu.

I installed the sros image as a libvirt image on a system already running libvert.

## Creating a livirt xml File

I hacked together this xml definition for the VM

```
vm0.iad.rg.net:/root# cat alcalu0.xml
<domain type='kvm' id='17'>
  <name>alcalu0.rpki.net</name>
  <uuid>01e79522-5f9b-4fcc-bc9e-768051158606</uuid>
  <memory>4194304</memory>
  <currentMemory>4194304</currentMemory>
  <vcpu>1</vcpu>
  <sysinfo type='smbios'>
    <system>
      <entry name='product'>TiMOS: address=198.180.150.13/24@active static-route=0.0.0.0/1@198.180.150.126 static-route=128.0.0.0/1@198.180.150.126 license-file=cf3:/timos.pie.b80.txt</entry>
    </system>
  </sysinfo>
  <os>
    <type arch='x86_64' machine='pc-1.0'>hvm</type>
    <boot dev='hd'/>
    <smbios mode='sysinfo'/>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu>
  </cpu>
  <clock offset='utc'>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='rtc' tickpolicy='delay'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='none'/>
      <source file='/store/images/alcalu0.rpki.net.qcow2'/>
      <target dev='hda' bus='ide'/>
      <alias name='ide0-0-0'/>
      <address type='drive' controller='0' bus='0' unit='0'/>
    </disk>
    <controller type='ide' index='0'>
      <alias name='ide0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='usb' index='0'>
      <alias name='usb0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <interface type='bridge'>
      <mac address='fa:ac:a6:01:0a:00'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <interface type='bridge'>
      <mac address='fa:ac:a6:01:0a:01'/>
      <source bridge='br0'/>
      <target dev='vnet1'/>
      <model type='virtio'/>
      <alias name='net1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/3'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/3'>
      <source path='/dev/pts/3'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='5942' autoport='no' listen='0.0.0.0'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    <video>
      <model type='cirrus' vram='9216' heads='1'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </memballoon>
  </devices>
  <seclabel type='dynamic' model='apparmor' relabel='yes'>
    <label>libvirt-01e79522-5f9b-4fcc-bc9e-768051158606</label>
    <imagelabel>libvirt-01e79522-5f9b-4fcc-bc9e-768051158606</imagelabel>
  </seclabel>
</domain>
```

## Starting the VM

Then it was time to start the VM

```
virsh start alcalu0.rpki.net
```

And then go to the console

```
virsh console alcalu0.rpki.net
```

It was pingable, but the console showed horrible response, like a minute to log in, despite

```
vm0.iad.rg.net:/root# uptime
 11:57:49 up 129 days, 17:34,  2 users,  load average: 0.74, 0.91, 0.98
```

## Password Configuration

I did not create user names yet, but  changing the password seemed critical 

```
A:vRR# password 
Enter current password: 
Enter new password: 
Re-enter new password: 
```

## System Name

```
A:vRR# configure system name alcalu0 
*A:alcalu0# configure system contact "Randy Bush <randy@psg.com>"
*A:alcalu0# admin save 
Writing configuration to cf3:\config.cfg
Saving configuration ... OK
Completed.
```

## Set Up IPv4 Basic Addressing, DNS, …

IPv4 addressing and default routes were in the xml file used to create the image.

For DNS you at least need a primary server

```
A:alcalu0# bof primary-dns 198.180.150.8 
*A:alcalu0# bof save 
Writing BOF to cf3:/bof.cfg ... OK
Completed.
```

## SSH Needs a Bit of Tweaking

```
A:alcalu0# show system security ssh 

===============================================================================
SSH Server
===============================================================================
Administrative State      : Enabled
Operational State         : Up
Preserve Key              : Disabled
 
SSH Protocol Version 1    : Disabled
 
SSH Protocol Version 2    : Enabled
DSA Host Key Fingerprint  : 42:cc:bf:29:5f:11:5e:ab:20:3b:82:f5:2e:8d:72:77
RSA Host Key Fingerprint  : e9:6f:fd:93:d3:88:80:d0:e6:1f:62:88:8a:36:e5:52

-------------------------------------------------------------------------------
Connection                                Username             
    Version Cipher                        ServerName  Status
-------------------------------------------------------------------------------
No entries found
===============================================================================
A:alcalu0# configure system security ssh preserve-key 
*A:alcalu0# configure system security ssh no server-shutdown 
*A:alcalu0# configure system login-control idle-timeout disable 
*A:alcalu0# admin save 
```

At this point, I could ssh in and not have to deal with the broken console issue.

## License File

I whacked in the license file by

```
A:alcalu0# file vi cf3:/timos.pie.b80.txt
```

and pasting in the file content.

Then tell the system where the file is

```
A:alcalu0# bof license-file cf3:/timos.pie.b80.txt 
*A:alcalu0# bof save 
Writing BOF to cf3:/bof.cfg ... OK
Completed.
```