Getting Started


Get a CloudRouter image

STEP 1

Obtain the latest Minimal or Full image from the CloudRouter Downloads. These images are in raw format and are compressed with xz

Download the image:

curl -o CloudRouter-4.0-fedora-minimal.raw.xz https://repo.cloudrouter.org/4/fedora/24/images/cloudrouter-fedora-cloud-minimal.raw.xz
curl -o CloudRouter-4.0-fedora-checksum.txt https://repo.cloudrouter.org/4/fedora/24/images/sha256sum.txt

Ensure the image's checksum is correct:

sha256sum CloudRouter-4.0-fedora-minimal.raw.xz
fd0998affb9cbaf4d3cc1f2074247b8b2e700be8fad20eb412a9d5ae32fd3af2  CloudRouter-4.0-fedora-minimal.raw.xz

cat CloudRouter-4.0-fedora-checksum.txt
fd0998affb9cbaf4d3cc1f2074247b8b2e700be8fad20eb412a9d5ae32fd3af2  cloudrouter-fedora-cloud-minimal.raw.xz

Un-compress the image:

xz -d -k CloudRouter-4.0-fedora-minimal.raw.xz

Cloud-init

STEP 2

The CloudRouter image ships without default credentials. The cloudrouter user is provided to manage the system and has sudo access, but no default password is set. The cloudrouter images are configured to load password and/or ssh key data for the cloudrouter user from a metadata ISO image attached to the guest.

Create your own cloud-init iso

Run the make-cloud-init-iso.sh script to create your custom iso image. The provided script will auto generate a password and a ssh key pair unless otherwise specified.

Fedora required packages:

sudo dnf install genisoimage python3

Ubuntu required packages:

sudo apt-get install genisoimage python3

Windows 10 required packages using Windows Subsystem for Linux:

sudo apt-get install genisoimage python3

Example script usage:

$ wget https://raw.githubusercontent.com/cloudrouter/cloudrouter/master/contrib/make-cloud-init-iso.sh
$ bash make-cloud-init-iso.sh --help
usage: make-cloud-init-iso.sh
optional: -pw [password] | --password [password]
optional: -np | --nopassword
optional: -nk | --nosshkey
optional: -k [/path/to/ssh/key.pub] | --key [/path/to/ssh/key.pub]
$ bash make-cloud-init-iso.sh --password "your_password_here"
[INFO] Using supplied password
[INFO] Generating rsa ssh keys ...
Generating public/private rsa key pair.
Your identification has been saved in /tmp/tmp.OVt3erUFeb/cloudrouter_rsa.
Your public key has been saved in /tmp/tmp.OVt3erUFeb/cloudrouter_rsa.pub.
The key fingerprint is:
b2:50:b1:6b:83:a6:06:46:9c:6a:df:4a:59:5a:33:9a username@hostname.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| . |
|. . o |
| + o |
|o o . |
|oo +== S |
|o..oOoo+ |
| oE .. |
| .. . |
| . |
+-----------------+
[INFO] Generating cloudrouter cloud-init iso ...
[INFO] cloudrouter user password: your_password_here
[INFO] Cloudrouter data writen to /tmp/tmp.OVt3erUFeb
$ ls /tmp/tmp.OVt3erUFeb
cloudrouter-init.iso cloudrouter_rsa cloudrouter_rsa.pub

Use the pre-configured cloud-init ISO

The cloud init ISO provided sets the cloudrouter account's password to "CloudRouter".

Please note: This ISO is provided for testing use only and should not be used in production.

Create a guest VM

STEP 3

virt-install - KVM using the CLI

Create and boot the guest:

sudo virt-install --accelerate --hvm --os-type linux --os-variant fedora23 --name CloudRouter-4.0-fedora-minimal --vcpus 2 --ram 2048 --import --disk bus=virtio,path=/var/lib/libvirt/images/CloudRouter-4.0-fedora-minimal.raw --disk device=cdrom,bus=ide,path=/var/lib/libvirt/images/cloudrouter-init.iso --network bridge=virbr0,model=virtio --noautoconsole

Attach to the serial console and login:

$ sudo virsh console CloudRouter-4.0-fedora-minimal
Connected to domain CloudRouter-4.0-fedora-minimal
Escape character is ^]

CloudRouter release 4 (Release)
Kernel 4.4.7-200.fc24.x86_64 on an x86_64 (ttyS0)

cloudrouter login: cloudrouter
Password: 
[cloudrouter@cloudrouter ~]$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:fb:a5:3a brd ff:ff:ff:ff:ff:ff
    inet 192.168.124.168/24 brd 192.168.124.255 scope global dynamic eth0
       valid_lft 3539sec preferred_lft 3539sec
    inet6 fe80::5054:ff:fefb:a53a/64 scope link 
       valid_lft forever preferred_lft forever
[cloudrouter@cloudrouter ~]$ 

Please note:  In this example the guest was attached to the virbr0 bridge so it is using the hosts libvirt NAT network. If the host system has a bridge network such as br0 this can be used so other systems on the network can access the guest.

virt-manager - KVM using the GUI

Create a new VM:

Select the uncompressed cloudrouter image:

Allocate 2GB or RAM and 2 VCPUs:

Select customize installation and select the network bridge:

Add a CDROM device and attach the cloud-init.iso:

Login to the VM:

Login wth the cloudrouter user account and the password set by the cloud-init.iso. Please be aware that the guest will first boot and load the cloud-init data and reboot. On the second boot, the system is ready for use.

Virtualbox

Download the vmdk image from the CloudRouter Downloads page.

You will need to un-compress the image, 7zip is a good tool for this:

C:\"Program Files"\7-Zip\7z.exe e cloudrouter-fedora-cloud-minimal.vmdk.xz

Create the new vm in VirtualBox:

Set the vm to use 2GB of RAM:

Select the "Use an existing virtual hard disk file" options and cloudrouter vmdk image file from the harddisk:

In the VM Setting(Ctrl+S) attach the cloud-init iso to the VM before first boot. This will be under the storage section of the left menu followed by the empty cdrom device. Select the "Choose a Virtual Optical Disk File" option and select the cloudrouter-init iso:


After the cloud-init iso image is attached booting the VM you can login using the cloudrouter login and the credentials that were loaded by cloud-init from the cloudrouter-init.iso.