Use dynamic IP networks for mcp-ocata-ovs/dvr models
diff --git a/tcp_tests/templates/underlay/virtual-mcp-ocata-dvr--user-data-cfg01.yaml b/tcp_tests/templates/underlay/virtual-mcp-ocata-dvr--user-data-cfg01.yaml
index 443e50c..45ad5cf 100644
--- a/tcp_tests/templates/underlay/virtual-mcp-ocata-dvr--user-data-cfg01.yaml
+++ b/tcp_tests/templates/underlay/virtual-mcp-ocata-dvr--user-data-cfg01.yaml
@@ -41,6 +41,26 @@
- swapon /swapfile
- echo "/swapfile none swap defaults 0 0" >> /etc/fstab
+ ############## TCP Cloud cfg01 node ##################
+ #- sleep 120
+ - echo "Preparing base OS"
+
+ - echo "172.18.248.114 jenkins.mcp.mirantis.net gerrit.mcp.mirantis.net" >> /etc/hosts;
+ - echo "185.135.196.10 apt-mk.mirantis.com" >> /etc/hosts;
+ - echo "nameserver 172.18.208.44 >> /etc/resolv.conf;
+ - echo "nameserver 8.8.8.8 >> /etc/resolv.conf;
+ - which wget >/dev/null || (apt-get update; apt-get install -y wget);
+ - echo "deb [arch=amd64] http://apt-mk.mirantis.com/xenial nightly salt extra" > /etc/apt/sources.list.d/mcp_salt.list;
+ - wget -O - http://apt-mk.mirantis.com/public.gpg | apt-key add -;
+ - echo "deb http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.3 xenial main" > /etc/apt/sources.list.d/saltstack.list;
+ - wget -O - https://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.3/SALTSTACK-GPG-KEY.pub | apt-key add -;
+
+ - apt-get clean
+ - apt-get update
+
+ # Install common packages
+ - eatmydata apt-get install -y python-pip git curl tmux byobu iputils-ping traceroute htop tree
+
########################################################
# Node is ready, allow SSH access
- echo "Allow SSH access ..."
diff --git a/tcp_tests/templates/underlay/virtual-mcp-ocata-dvr--user-data1604.yaml b/tcp_tests/templates/underlay/virtual-mcp-ocata-dvr--user-data1604.yaml
index 1013571..2c3cb6c 100644
--- a/tcp_tests/templates/underlay/virtual-mcp-ocata-dvr--user-data1604.yaml
+++ b/tcp_tests/templates/underlay/virtual-mcp-ocata-dvr--user-data1604.yaml
@@ -43,11 +43,6 @@
- swapon /swapfile
- echo "/swapfile none swap defaults 0 0" >> /etc/fstab
- ########################################################
- # Node is ready, allow SSH access
- - echo "Allow SSH access ..."
- - sudo iptables -D INPUT -p tcp --dport 22 -j DROP
- ########################################################
############## TCP Cloud cfg01 node ##################
#- sleep 120
@@ -62,31 +57,16 @@
- wget -O - https://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.3/SALTSTACK-GPG-KEY.pub | apt-key add -
- apt-get clean
- - apt-get update
- - apt-get -y upgrade
+ - eatmydata apt-get update && apt-get -y upgrade
# Install common packages
- - apt-get install -y python-pip git
- - apt-get install -y curl tmux byobu iputils-ping traceroute htop tree
+ - eatmydata apt-get install -y python-pip git curl tmux byobu iputils-ping traceroute htop tree mc
- - apt-get install -y salt-minion
-
- # To be configured from inventory/fuel-devops by operator or autotests
- - 'echo "id: {hostname}" >> /etc/salt/minion'
- - 'echo "master: 192.168.10.100" >> /etc/salt/minion'
-
- - echo "Restarting minion service with workarounds..."
- - rm -f /etc/salt/pki/minion/minion_master.pub
- - service salt-minion restart
- - sleep 5
- - rm -f /etc/salt/pki/minion/minion_master.pub
- - service salt-minion restart
-
- #- echo "Showing node metadata..."
- #- salt-call pillar.data
-
- #- echo "Running complete state ..."
- #- salt-call state.sls linux,openssh,salt
+ ########################################################
+ # Node is ready, allow SSH access
+ - echo "Allow SSH access ..."
+ - sudo iptables -D INPUT -p tcp --dport 22 -j DROP
+ ########################################################
write_files:
- path: /etc/network/interfaces
diff --git a/tcp_tests/templates/underlay/virtual-mcp-ocata-dvr.yaml b/tcp_tests/templates/underlay/virtual-mcp-ocata-dvr.yaml
index b549147..254d82f 100644
--- a/tcp_tests/templates/underlay/virtual-mcp-ocata-dvr.yaml
+++ b/tcp_tests/templates/underlay/virtual-mcp-ocata-dvr.yaml
@@ -1,7 +1,13 @@
+{% import 'underlay/virtual-mcp-ocata-dvr--meta-data.yaml' as CLOUDINIT_META_DATA %}
+{% import 'underlay/virtual-mcp-ocata-dvr--user-data-cfg01.yaml' as CLOUDINIT_USER_DATA_CFG01 %}
+{% import 'underlay/virtual-mcp-ocata-dvr--user-data1604.yaml' as CLOUDINIT_USER_DATA_1604 %}
+
---
aliases:
- default_interface_model:
- - &interface_model !os_env INTERFACE_MODEL, virtio
+ - &interface_model {{ os_env('INTERFACE_MODEL', 'virtio') }}
+ - &cloudinit_meta_data {{ CLOUDINIT_META_DATA }}
+ - &cloudinit_user_data_cfg01 {{ CLOUDINIT_USER_DATA_CFG01 }}
+ - &cloudinit_user_data_1604 {{ CLOUDINIT_USER_DATA_1604 }}
{% set DOMAIN_NAME = os_env('LAB_CONFIG_NAME', 'virtual-mcp-ocata-dvr') + '.local' %}
{% set HOSTNAME_CFG01 = os_env('HOSTNAME_CFG01', 'cfg01.' + DOMAIN_NAME) %}
@@ -19,7 +25,7 @@
address_pools:
private-pool01:
- net: 172.16.10.0/24:24
+ net: {{ os_env('PRIVATE_ADDRESS_POOL01', '10.60.0.0/16:24') }}
params:
ip_reserved:
gateway: +1
@@ -36,7 +42,7 @@
dhcp: [+90, -10]
admin-pool01:
- net: 192.168.10.0/24:24
+ net: {{ os_env('ADMIN_ADDRESS_POOL01', '10.70.0.0/16:24') }}
params:
ip_reserved:
gateway: +1
@@ -53,7 +59,7 @@
dhcp: [+90, -10]
tenant-pool01:
- net: 10.1.0.0/24:24
+ net: {{ os_env('TENANT_ADDRESS_POOL01', '10.80.0.0/16:24') }}
params:
ip_reserved:
gateway: +1
@@ -70,7 +76,7 @@
dhcp: [+10, -10]
external-pool01:
- net: 10.16.0.0/24:24
+ net: {{ os_env('EXTERNAL_ADDRESS_POOL01', '10.90.0.0/16:24') }}
params:
ip_reserved:
gateway: +1
@@ -154,8 +160,8 @@
format: raw
device: cdrom
bus: ide
- cloudinit_meta_data: !include virtual-mcp-ocata-dvr--meta-data.yaml
- cloudinit_user_data: !include virtual-mcp-ocata-dvr--user-data-cfg01.yaml
+ cloudinit_meta_data: *cloudinit_meta_data
+ cloudinit_user_data: *cloudinit_user_data_cfg01
interfaces:
- label: ens3
@@ -195,8 +201,8 @@
format: raw
device: cdrom
bus: ide
- cloudinit_meta_data: !include virtual-mcp-ocata-dvr--meta-data.yaml
- cloudinit_user_data: !include virtual-mcp-ocata-dvr--user-data1604.yaml
+ cloudinit_meta_data: *cloudinit_meta_data
+ cloudinit_user_data: *cloudinit_user_data_1604
interfaces: &interfaces
- label: ens3
@@ -236,8 +242,8 @@
format: raw
device: cdrom
bus: ide
- cloudinit_meta_data: !include virtual-mcp-ocata-dvr--meta-data.yaml
- cloudinit_user_data: !include virtual-mcp-ocata-dvr--user-data1604.yaml
+ cloudinit_meta_data: *cloudinit_meta_data
+ cloudinit_user_data: *cloudinit_user_data_1604
interfaces: *interfaces
network_config: *network_config
@@ -265,8 +271,8 @@
format: raw
device: cdrom
bus: ide
- cloudinit_meta_data: !include virtual-mcp-ocata-dvr--meta-data.yaml
- cloudinit_user_data: !include virtual-mcp-ocata-dvr--user-data1604.yaml
+ cloudinit_meta_data: *cloudinit_meta_data
+ cloudinit_user_data: *cloudinit_user_data_1604
interfaces: *interfaces
network_config: *network_config
@@ -294,8 +300,8 @@
format: raw
device: cdrom
bus: ide
- cloudinit_meta_data: !include virtual-mcp-ocata-dvr--meta-data.yaml
- cloudinit_user_data: !include virtual-mcp-ocata-dvr--user-data1604.yaml
+ cloudinit_meta_data: *cloudinit_meta_data
+ cloudinit_user_data: *cloudinit_user_data_1604
interfaces: *interfaces
network_config: *network_config
@@ -321,8 +327,8 @@
format: raw
device: cdrom
bus: ide
- cloudinit_meta_data: !include virtual-mcp-ocata-dvr--meta-data.yaml
- cloudinit_user_data: !include virtual-mcp-ocata-dvr--user-data1604.yaml
+ cloudinit_meta_data: *cloudinit_meta_data
+ cloudinit_user_data: *cloudinit_user_data_1604
interfaces: &all_interfaces
@@ -372,8 +378,8 @@
format: raw
device: cdrom
bus: ide
- cloudinit_meta_data: !include virtual-mcp-ocata-dvr--meta-data.yaml
- cloudinit_user_data: !include virtual-mcp-ocata-dvr--user-data1604.yaml
+ cloudinit_meta_data: *cloudinit_meta_data
+ cloudinit_user_data: *cloudinit_user_data_1604
interfaces: *all_interfaces
network_config: *all_network_config
@@ -398,8 +404,8 @@
format: raw
device: cdrom
bus: ide
- cloudinit_meta_data: !include virtual-mcp-ocata-dvr--meta-data.yaml
- cloudinit_user_data: !include virtual-mcp-ocata-dvr--user-data1604.yaml
+ cloudinit_meta_data: *cloudinit_meta_data
+ cloudinit_user_data: *cloudinit_user_data_1604
interfaces: *all_interfaces
network_config: *all_network_config
diff --git a/tcp_tests/templates/underlay/virtual-mcp-ocata-ovs--user-data-cfg01.yaml b/tcp_tests/templates/underlay/virtual-mcp-ocata-ovs--user-data-cfg01.yaml
index 443e50c..45ad5cf 100644
--- a/tcp_tests/templates/underlay/virtual-mcp-ocata-ovs--user-data-cfg01.yaml
+++ b/tcp_tests/templates/underlay/virtual-mcp-ocata-ovs--user-data-cfg01.yaml
@@ -41,6 +41,26 @@
- swapon /swapfile
- echo "/swapfile none swap defaults 0 0" >> /etc/fstab
+ ############## TCP Cloud cfg01 node ##################
+ #- sleep 120
+ - echo "Preparing base OS"
+
+ - echo "172.18.248.114 jenkins.mcp.mirantis.net gerrit.mcp.mirantis.net" >> /etc/hosts;
+ - echo "185.135.196.10 apt-mk.mirantis.com" >> /etc/hosts;
+ - echo "nameserver 172.18.208.44 >> /etc/resolv.conf;
+ - echo "nameserver 8.8.8.8 >> /etc/resolv.conf;
+ - which wget >/dev/null || (apt-get update; apt-get install -y wget);
+ - echo "deb [arch=amd64] http://apt-mk.mirantis.com/xenial nightly salt extra" > /etc/apt/sources.list.d/mcp_salt.list;
+ - wget -O - http://apt-mk.mirantis.com/public.gpg | apt-key add -;
+ - echo "deb http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.3 xenial main" > /etc/apt/sources.list.d/saltstack.list;
+ - wget -O - https://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.3/SALTSTACK-GPG-KEY.pub | apt-key add -;
+
+ - apt-get clean
+ - apt-get update
+
+ # Install common packages
+ - eatmydata apt-get install -y python-pip git curl tmux byobu iputils-ping traceroute htop tree
+
########################################################
# Node is ready, allow SSH access
- echo "Allow SSH access ..."
diff --git a/tcp_tests/templates/underlay/virtual-mcp-ocata-ovs--user-data1604.yaml b/tcp_tests/templates/underlay/virtual-mcp-ocata-ovs--user-data1604.yaml
index 1013571..2c3cb6c 100644
--- a/tcp_tests/templates/underlay/virtual-mcp-ocata-ovs--user-data1604.yaml
+++ b/tcp_tests/templates/underlay/virtual-mcp-ocata-ovs--user-data1604.yaml
@@ -43,11 +43,6 @@
- swapon /swapfile
- echo "/swapfile none swap defaults 0 0" >> /etc/fstab
- ########################################################
- # Node is ready, allow SSH access
- - echo "Allow SSH access ..."
- - sudo iptables -D INPUT -p tcp --dport 22 -j DROP
- ########################################################
############## TCP Cloud cfg01 node ##################
#- sleep 120
@@ -62,31 +57,16 @@
- wget -O - https://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.3/SALTSTACK-GPG-KEY.pub | apt-key add -
- apt-get clean
- - apt-get update
- - apt-get -y upgrade
+ - eatmydata apt-get update && apt-get -y upgrade
# Install common packages
- - apt-get install -y python-pip git
- - apt-get install -y curl tmux byobu iputils-ping traceroute htop tree
+ - eatmydata apt-get install -y python-pip git curl tmux byobu iputils-ping traceroute htop tree mc
- - apt-get install -y salt-minion
-
- # To be configured from inventory/fuel-devops by operator or autotests
- - 'echo "id: {hostname}" >> /etc/salt/minion'
- - 'echo "master: 192.168.10.100" >> /etc/salt/minion'
-
- - echo "Restarting minion service with workarounds..."
- - rm -f /etc/salt/pki/minion/minion_master.pub
- - service salt-minion restart
- - sleep 5
- - rm -f /etc/salt/pki/minion/minion_master.pub
- - service salt-minion restart
-
- #- echo "Showing node metadata..."
- #- salt-call pillar.data
-
- #- echo "Running complete state ..."
- #- salt-call state.sls linux,openssh,salt
+ ########################################################
+ # Node is ready, allow SSH access
+ - echo "Allow SSH access ..."
+ - sudo iptables -D INPUT -p tcp --dport 22 -j DROP
+ ########################################################
write_files:
- path: /etc/network/interfaces
diff --git a/tcp_tests/templates/underlay/virtual-mcp-ocata-ovs.yaml b/tcp_tests/templates/underlay/virtual-mcp-ocata-ovs.yaml
index 0a27a36..7967ad9 100644
--- a/tcp_tests/templates/underlay/virtual-mcp-ocata-ovs.yaml
+++ b/tcp_tests/templates/underlay/virtual-mcp-ocata-ovs.yaml
@@ -1,7 +1,13 @@
+{% import 'underlay/virtual-mcp-ocata-ovs--meta-data.yaml' as CLOUDINIT_META_DATA %}
+{% import 'underlay/virtual-mcp-ocata-ovs--user-data-cfg01.yaml' as CLOUDINIT_USER_DATA_CFG01 %}
+{% import 'underlay/virtual-mcp-ocata-ovs--user-data1604.yaml' as CLOUDINIT_USER_DATA_1604 %}
+
---
aliases:
- default_interface_model:
- - &interface_model !os_env INTERFACE_MODEL, virtio
+ - &interface_model {{ os_env('INTERFACE_MODEL', 'virtio') }}
+ - &cloudinit_meta_data {{ CLOUDINIT_META_DATA }}
+ - &cloudinit_user_data_cfg01 {{ CLOUDINIT_USER_DATA_CFG01 }}
+ - &cloudinit_user_data_1604 {{ CLOUDINIT_USER_DATA_1604 }}
{% set DOMAIN_NAME = os_env('LAB_CONFIG_NAME', 'virtual-mcp-ocata-ovs') + '.local' %}
{% set HOSTNAME_CFG01 = os_env('HOSTNAME_CFG01', 'cfg01.' + DOMAIN_NAME) %}
@@ -19,7 +25,7 @@
address_pools:
private-pool01:
- net: 172.16.10.0/24:24
+ net: {{ os_env('PRIVATE_ADDRESS_POOL01', '10.60.0.0/16:24') }}
params:
ip_reserved:
gateway: +1
@@ -36,7 +42,7 @@
dhcp: [+90, -10]
admin-pool01:
- net: 192.168.10.0/24:24
+ net: {{ os_env('ADMIN_ADDRESS_POOL01', '10.70.0.0/16:24') }}
params:
ip_reserved:
gateway: +1
@@ -53,7 +59,7 @@
dhcp: [+90, -10]
tenant-pool01:
- net: 10.1.0.0/24:24
+ net: {{ os_env('TENANT_ADDRESS_POOL01', '10.80.0.0/16:24') }}
params:
ip_reserved:
gateway: +1
@@ -70,7 +76,7 @@
dhcp: [+10, -10]
external-pool01:
- net: 10.16.0.0/24:24
+ net: {{ os_env('EXTERNAL_ADDRESS_POOL01', '10.90.0.0/16:24') }}
params:
ip_reserved:
gateway: +1
@@ -154,8 +160,8 @@
format: raw
device: cdrom
bus: ide
- cloudinit_meta_data: !include virtual-mcp-ocata-ovs--meta-data.yaml
- cloudinit_user_data: !include virtual-mcp-ocata-ovs--user-data-cfg01.yaml
+ cloudinit_meta_data: *cloudinit_meta_data
+ cloudinit_user_data: *cloudinit_user_data_cfg01
interfaces:
- label: ens3
@@ -195,8 +201,8 @@
format: raw
device: cdrom
bus: ide
- cloudinit_meta_data: !include virtual-mcp-ocata-ovs--meta-data.yaml
- cloudinit_user_data: !include virtual-mcp-ocata-ovs--user-data1604.yaml
+ cloudinit_meta_data: *cloudinit_meta_data
+ cloudinit_user_data: *cloudinit_user_data_1604
interfaces: &interfaces
- label: ens3
@@ -236,8 +242,8 @@
format: raw
device: cdrom
bus: ide
- cloudinit_meta_data: !include virtual-mcp-ocata-ovs--meta-data.yaml
- cloudinit_user_data: !include virtual-mcp-ocata-ovs--user-data1604.yaml
+ cloudinit_meta_data: *cloudinit_meta_data
+ cloudinit_user_data: *cloudinit_user_data_1604
interfaces: *interfaces
network_config: *network_config
@@ -265,8 +271,8 @@
format: raw
device: cdrom
bus: ide
- cloudinit_meta_data: !include virtual-mcp-ocata-ovs--meta-data.yaml
- cloudinit_user_data: !include virtual-mcp-ocata-ovs--user-data1604.yaml
+ cloudinit_meta_data: *cloudinit_meta_data
+ cloudinit_user_data: *cloudinit_user_data_1604
interfaces: *interfaces
network_config: *network_config
@@ -294,8 +300,8 @@
format: raw
device: cdrom
bus: ide
- cloudinit_meta_data: !include virtual-mcp-ocata-ovs--meta-data.yaml
- cloudinit_user_data: !include virtual-mcp-ocata-ovs--user-data1604.yaml
+ cloudinit_meta_data: *cloudinit_meta_data
+ cloudinit_user_data: *cloudinit_user_data_1604
interfaces: *interfaces
network_config: *network_config
@@ -321,8 +327,8 @@
format: raw
device: cdrom
bus: ide
- cloudinit_meta_data: !include virtual-mcp-ocata-ovs--meta-data.yaml
- cloudinit_user_data: !include virtual-mcp-ocata-ovs--user-data1604.yaml
+ cloudinit_meta_data: *cloudinit_meta_data
+ cloudinit_user_data: *cloudinit_user_data_1604
interfaces: &all_interfaces
@@ -372,8 +378,8 @@
format: raw
device: cdrom
bus: ide
- cloudinit_meta_data: !include virtual-mcp-ocata-ovs--meta-data.yaml
- cloudinit_user_data: !include virtual-mcp-ocata-ovs--user-data1604.yaml
+ cloudinit_meta_data: *cloudinit_meta_data
+ cloudinit_user_data: *cloudinit_user_data_1604
interfaces: *all_interfaces
network_config: *all_network_config
@@ -398,8 +404,8 @@
format: raw
device: cdrom
bus: ide
- cloudinit_meta_data: !include virtual-mcp-ocata-ovs--meta-data.yaml
- cloudinit_user_data: !include virtual-mcp-ocata-ovs--user-data1604.yaml
+ cloudinit_meta_data: *cloudinit_meta_data
+ cloudinit_user_data: *cloudinit_user_data_1604
interfaces: *all_interfaces
network_config: *all_network_config
diff --git a/tcp_tests/templates/underlay/virtual-mcp11-dvr.yaml b/tcp_tests/templates/underlay/virtual-mcp11-dvr.yaml
index 401cee7..0e72511 100644
--- a/tcp_tests/templates/underlay/virtual-mcp11-dvr.yaml
+++ b/tcp_tests/templates/underlay/virtual-mcp11-dvr.yaml
@@ -134,10 +134,6 @@
group_volumes:
- - name: cloudimage1404 # This name is used for 'backing_store' option for node volumes.
- source_image: !os_env IMAGE_PATH1404 # https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img or
- # http://apt.tcpcloud.eu/images/ubuntu-14-04-x64-201608231134.qcow2
- format: qcow2
- name: cloudimage1604 # This name is used for 'backing_store' option for node volumes.
source_image: !os_env IMAGE_PATH1604 # https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img or
# http://apt.tcpcloud.eu/images/ubuntu-16-04-x64-201608231004.qcow2
diff --git a/tcp_tests/templates/underlay/virtual-mcp11-ovs-dpdk.yaml b/tcp_tests/templates/underlay/virtual-mcp11-ovs-dpdk.yaml
index 48cd4b0..a9bea42 100644
--- a/tcp_tests/templates/underlay/virtual-mcp11-ovs-dpdk.yaml
+++ b/tcp_tests/templates/underlay/virtual-mcp11-ovs-dpdk.yaml
@@ -134,10 +134,6 @@
group_volumes:
- - name: cloudimage1404 # This name is used for 'backing_store' option for node volumes.
- source_image: !os_env IMAGE_PATH1404 # https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img or
- # http://apt.tcpcloud.eu/images/ubuntu-14-04-x64-201608231134.qcow2
- format: qcow2
- name: cloudimage1604 # This name is used for 'backing_store' option for node volumes.
source_image: !os_env IMAGE_PATH1604 # https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img or
# http://apt.tcpcloud.eu/images/ubuntu-16-04-x64-201608231004.qcow2
diff --git a/tcp_tests/templates/underlay/virtual-mcp11-ovs.yaml b/tcp_tests/templates/underlay/virtual-mcp11-ovs.yaml
index a9d8601..30ccf90 100644
--- a/tcp_tests/templates/underlay/virtual-mcp11-ovs.yaml
+++ b/tcp_tests/templates/underlay/virtual-mcp11-ovs.yaml
@@ -134,10 +134,6 @@
group_volumes:
- - name: cloudimage1404 # This name is used for 'backing_store' option for node volumes.
- source_image: !os_env IMAGE_PATH1404 # https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img or
- # http://apt.tcpcloud.eu/images/ubuntu-14-04-x64-201608231134.qcow2
- format: qcow2
- name: cloudimage1604 # This name is used for 'backing_store' option for node volumes.
source_image: !os_env IMAGE_PATH1604 # https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img or
# http://apt.tcpcloud.eu/images/ubuntu-16-04-x64-201608231004.qcow2