aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--deploy/adapters/ansible/roles/config-compute/templates/compute.j286
-rwxr-xr-xdeploy/adapters/ansible/roles/config-controller/templates/controller.j275
-rw-r--r--deploy/adapters/ansible/roles/config-osa/files/setup-ovs.yml2
-rw-r--r--deploy/adapters/ansible/roles/config-osa/templates/openstack_user_config.yml.j231
-rw-r--r--deploy/adapters/ansible/roles/config-osa/templates/user_variables.yml.j24
-rw-r--r--deploy/adapters/ansible/roles/post-openstack/tasks/main.yml4
-rw-r--r--deploy/adapters/ansible/roles/post-openstack/vars/main.yml1
-rwxr-xr-xdeploy/compass_conf/templates/ansible_installer/openstack_ocata/hosts/HA-ansible-multinodes.tmpl4
-rwxr-xr-xdeploy/compass_conf/templates/ansible_installer/openstack_ocata/vars/HA-ansible-multinodes.tmpl68
-rwxr-xr-xdeploy/compass_vm.sh5
-rw-r--r--deploy/conf/base.conf33
-rw-r--r--deploy/conf/compass.conf4
-rw-r--r--deploy/conf/hardware_environment/huawei-pod1/network.yml34
-rw-r--r--deploy/conf/vm_environment/huawei-virtual1/network.yml36
-rw-r--r--deploy/conf/vm_environment/huawei-virtual2/network.yml36
-rw-r--r--deploy/conf/vm_environment/network.yml36
-rw-r--r--deploy/config_parse.py100
-rwxr-xr-xdeploy/deploy_host.sh4
-rwxr-xr-xdeploy/deploy_parameter.sh2
-rwxr-xr-xdeploy/host_virtual.sh1
-rwxr-xr-xdeploy/launch.sh9
-rw-r--r--deploy/template/vm/host.xml7
22 files changed, 337 insertions, 245 deletions
diff --git a/deploy/adapters/ansible/roles/config-compute/templates/compute.j2 b/deploy/adapters/ansible/roles/config-compute/templates/compute.j2
index 66c3297b..c53708ec 100644
--- a/deploy/adapters/ansible/roles/config-compute/templates/compute.j2
+++ b/deploy/adapters/ansible/roles/config-compute/templates/compute.j2
@@ -5,21 +5,42 @@
auto lo
iface lo inet loopback
-
# Physical interface
auto eth0
iface eth0 inet manual
+# external interface
+{% set intf_external = sys_intf_mappings["external"]["interface"] %}
+{% if sys_intf_mappings["external"]["vlan_tag"] != "None" %}
+{% set intf_external = intf_external + '.' + sys_intf_mappings["external"]["vlan_tag"]|string %}
+{% endif %}
+auto {{ intf_external }}
+iface {{ intf_external }} inet manual
+{% if sys_intf_mappings["external"]["vlan_tag"] != "None" %}
+ vlan-raw-device {{ intf_external }}
+{% endif %}
-# OpenStack Networking VXLAN (tunnel/overlay) VLAN interface
-auto {{sys_intf_mappings["mgmt"]["interface"]}}.{{sys_intf_mappings["mgmt"]["vlan_tag"]}}
-iface {{sys_intf_mappings["mgmt"]["interface"]}}.{{sys_intf_mappings["mgmt"]["vlan_tag"]}} inet manual
- vlan-raw-device {{sys_intf_mappings["mgmt"]["interface"]}}
+# tenant interface
+{% set intf_tenant = sys_intf_mappings["tenant"]["interface"] %}
+{% if sys_intf_mappings["tenant"]["interface"] != "None" %}
+{% set intf_tenant = intf_tenant + '.' + sys_intf_mappings["tenant"]["vlan_tag"]|string %}
+{% endif %}
+auto {{ intf_tenant }}
+iface {{ intf_tenant }} inet manual
+{% if sys_intf_mappings["tenant"]["interface"] != "None" %}
+ vlan-raw-device {{ intf_tenant }}
+{% endif %}
-# Storage network VLAN interface (optional)
-auto {{sys_intf_mappings["storage"]["interface"]}}.{{sys_intf_mappings["storage"]["vlan_tag"]}}
-iface {{sys_intf_mappings["storage"]["interface"]}}.{{sys_intf_mappings["storage"]["vlan_tag"]}} inet manual
- vlan-raw-device {{sys_intf_mappings["storage"]["interface"]}}
+# storage interface
+{% set intf_storage = sys_intf_mappings["storage"]["interface"] %}
+{% if sys_intf_mappings["storage"]["interface"] != "None" %}
+{% set intf_storage = intf_storage + '.' + sys_intf_mappings["storage"]["vlan_tag"]|string %}
+{% endif %}
+auto {{ intf_storage }}
+iface {{ intf_storage }} inet manual
+{% if sys_intf_mappings["storage"]["interface"] != "None" %}
+ vlan-raw-device {{ intf_storage }}
+{% endif %}
# Container/Host management bridge
auto br-mgmt
@@ -28,29 +49,19 @@ iface br-mgmt inet static
bridge_waitport 0
bridge_fd 0
bridge_ports eth0
- address {{host_info[inventory_hostname].MGMT_IP}}
+ address {{ ip_settings[inventory_hostname]["mgmt"]["ip"] }}
netmask 255.255.255.0
-# compute1 VXLAN (tunnel/overlay) bridge config
-auto br-vxlan
-iface br-vxlan inet static
- bridge_stp off
- bridge_waitport 0
- bridge_fd 0
- bridge_ports {{sys_intf_mappings["mgmt"]["interface"]}}.{{sys_intf_mappings["mgmt"]["vlan_tag"]}}
- address {{host_info[inventory_hostname].VXLAN_IP}}
- netmask 255.255.252.0
-
# OpenStack Networking VLAN bridge
-auto br-vlan
-iface br-vlan inet static
+auto br-external
+iface br-external inet static
bridge_stp off
bridge_waitport 0
bridge_fd 0
- bridge_ports {{ network_cfg["provider_net_mappings"][0]["interface"] }}
- address {{ip_settings[inventory_hostname]["br-prv"]["ip"]}}
+ bridge_ports {{ intf_external }}
+ address {{ ip_settings[inventory_hostname]["external"]["ip"] }}
netmask 255.255.255.0
- gateway {{ip_settings[inventory_hostname]["br-prv"]["gw"]}}
+ gateway {{ ip_settings[inventory_hostname]["external"]["gw"] }}
offload-sg off
# Create veth pair, don't bomb if already exists
pre-up ip link add br-vlan-veth type veth peer name eth12 || true
@@ -61,21 +72,22 @@ iface br-vlan inet static
post-down ip link del br-vlan-veth || true
bridge_ports br-vlan-veth
-# Add an additional address to br-vlan
-iface br-vlan inet static
- # Flat network default gateway
- # -- This needs to exist somewhere for network reachability
- # -- from the router namespace for floating IP paths.
- # -- Putting this here is primarily for tempest to work.
- address {{host_info[inventory_hostname].VLAN_IP_SECOND}}
- netmask 255.255.252.0
+# VXLAN (tunnel/overlay) bridge config
+auto br-tenant
+iface br-tenant inet static
+ bridge_stp off
+ bridge_waitport 0
+ bridge_fd 0
+ bridge_ports {{ intf_tenant }}
+ address {{ ip_settings[inventory_hostname]["tenant"]["ip"] }}
+ netmask 255.255.255.0
-# compute storage bridge
+# storage bridge
auto br-storage
iface br-storage inet static
bridge_stp off
bridge_waitport 0
bridge_fd 0
- bridge_ports {{sys_intf_mappings["storage"]["interface"]}}.{{sys_intf_mappings["storage"]["vlan_tag"]}}
- address {{ip_settings[inventory_hostname]["storage"]["ip"]}}
- netmask 255.255.252.0
+ bridge_ports {{ intf_storage }}
+ address {{ ip_settings[inventory_hostname]["storage"]["ip"] }}
+ netmask 255.255.255.0
diff --git a/deploy/adapters/ansible/roles/config-controller/templates/controller.j2 b/deploy/adapters/ansible/roles/config-controller/templates/controller.j2
index 215807f0..2aeb9a04 100755
--- a/deploy/adapters/ansible/roles/config-controller/templates/controller.j2
+++ b/deploy/adapters/ansible/roles/config-controller/templates/controller.j2
@@ -9,15 +9,38 @@ iface lo inet loopback
auto eth0
iface eth0 inet manual
-# OpenStack Networking VXLAN (tunnel/overlay) VLAN interface
-auto {{sys_intf_mappings["mgmt"]["interface"]}}.{{sys_intf_mappings["mgmt"]["vlan_tag"]}}
-iface {{sys_intf_mappings["mgmt"]["interface"]}}.{{sys_intf_mappings["mgmt"]["vlan_tag"]}} inet manual
- vlan-raw-device {{sys_intf_mappings["mgmt"]["interface"]}}
+# external interface
+{% set intf_external = sys_intf_mappings["external"]["interface"] %}
+{% if sys_intf_mappings["external"]["vlan_tag"] != "None" %}
+{% set intf_external = intf_external + '.' + sys_intf_mappings["external"]["vlan_tag"]|string %}
+{% endif %}
+auto {{ intf_external }}
+iface {{ intf_external }} inet manual
+{% if sys_intf_mappings["external"]["vlan_tag"] != "None" %}
+ vlan-raw-device {{ intf_external }}
+{% endif %}
-# Storage network VLAN interface (optional)
-auto {{sys_intf_mappings["storage"]["interface"]}}.{{sys_intf_mappings["storage"]["vlan_tag"]}}
-iface {{sys_intf_mappings["storage"]["interface"]}}.{{sys_intf_mappings["storage"]["vlan_tag"]}} inet manual
- vlan-raw-device {{sys_intf_mappings["storage"]["interface"]}}
+# tenant interface
+{% set intf_tenant = sys_intf_mappings["tenant"]["interface"] %}
+{% if sys_intf_mappings["tenant"]["interface"] != "None" %}
+{% set intf_tenant = intf_tenant + '.' + sys_intf_mappings["tenant"]["vlan_tag"]|string %}
+{% endif %}
+auto {{ intf_tenant }}
+iface {{ intf_tenant }} inet manual
+{% if sys_intf_mappings["tenant"]["interface"] != "None" %}
+ vlan-raw-device {{ intf_tenant }}
+{% endif %}
+
+# storage interface
+{% set intf_storage = sys_intf_mappings["storage"]["interface"] %}
+{% if sys_intf_mappings["storage"]["interface"] != "None" %}
+{% set intf_storage = intf_storage + '.' + sys_intf_mappings["storage"]["vlan_tag"]|string %}
+{% endif %}
+auto {{ intf_storage }}
+iface {{ intf_storage }} inet manual
+{% if sys_intf_mappings["storage"]["interface"] != "None" %}
+ vlan-raw-device {{ intf_storage }}
+{% endif %}
# Container/Host management bridge
auto br-mgmt
@@ -26,8 +49,19 @@ iface br-mgmt inet static
bridge_waitport 0
bridge_fd 0
bridge_ports eth0
- address {{host_info[inventory_hostname].MGMT_IP}}
+ address {{ ip_settings[inventory_hostname]["mgmt"]["ip"] }}
+ netmask 255.255.255.0
+
+# OpenStack Networking VLAN bridge
+auto br-external
+iface br-external inet static
+ bridge_stp off
+ bridge_waitport 0
+ bridge_fd 0
+ bridge_ports {{ intf_external }}
+ address {{ ip_settings[inventory_hostname]["external"]["ip"] }}
netmask 255.255.255.0
+ gateway {{ ip_settings[inventory_hostname]["external"]["gw"] }}
# OpenStack Networking VXLAN (tunnel/overlay) bridge
#
@@ -36,30 +70,19 @@ iface br-mgmt inet static
# IP addresses are assigned to containers which use this
# bridge.
#
-auto br-vxlan
-iface br-vxlan inet manual
+auto br-tenant
+iface br-tenant inet manual
bridge_stp off
bridge_waitport 0
bridge_fd 0
- bridge_ports {{sys_intf_mappings["mgmt"]["interface"]}}.{{sys_intf_mappings["mgmt"]["vlan_tag"]}}
+ bridge_ports {{ intf_tenant }}
-# OpenStack Networking VLAN bridge
-auto br-vlan
-iface br-vlan inet static
- bridge_stp off
- bridge_waitport 0
- bridge_fd 0
- bridge_ports {{ network_cfg["provider_net_mappings"][0]["interface"] }}
- address {{ ip_settings[inventory_hostname]["br-prv"]["ip"] }}
- netmask 255.255.255.0
- gateway {{ ip_settings[inventory_hostname]["br-prv"]["gw"] }}
-
-# compute1 Storage bridge
+# Storage bridge
auto br-storage
iface br-storage inet static
bridge_stp off
bridge_waitport 0
bridge_fd 0
- bridge_ports {{sys_intf_mappings["storage"]["interface"]}}.{{sys_intf_mappings["storage"]["vlan_tag"]}}
+ bridge_ports {{ intf_storage }}
address {{ ip_settings[inventory_hostname]["storage"]["ip"] }}
- netmask 255.255.252.0
+ netmask 255.255.255.0
diff --git a/deploy/adapters/ansible/roles/config-osa/files/setup-ovs.yml b/deploy/adapters/ansible/roles/config-osa/files/setup-ovs.yml
index 9f65cd5d..e906ed45 100644
--- a/deploy/adapters/ansible/roles/config-osa/files/setup-ovs.yml
+++ b/deploy/adapters/ansible/roles/config-osa/files/setup-ovs.yml
@@ -32,7 +32,7 @@
dest: /etc/neutron/plugins/ml2/openvswitch_agent.ini
regexp: '^bridge_mappings'
insertafter: '^bridge_mappings'
- line: "local_ip = {{hostvars[inventory_hostname]['ansible_br_vxlan']['ipv4']['address']}}"
+ line: "local_ip = {{hostvars[inventory_hostname]['ansible_br_tenant']['ipv4']['address']}}"
notify:
- Restart neutron-openvswitch-agent
when:
diff --git a/deploy/adapters/ansible/roles/config-osa/templates/openstack_user_config.yml.j2 b/deploy/adapters/ansible/roles/config-osa/templates/openstack_user_config.yml.j2
index 2a24113b..d69674f2 100644
--- a/deploy/adapters/ansible/roles/config-osa/templates/openstack_user_config.yml.j2
+++ b/deploy/adapters/ansible/roles/config-osa/templates/openstack_user_config.yml.j2
@@ -1,20 +1,25 @@
---
cidr_networks:
- container: 10.1.0.0/24
- tunnel: 172.29.240.0/22
- storage: 172.16.2.0/24
+ container: {{ mgmt_cidr }}
+ tunnel: {{ tenant_cidr }}
+ storage: {{ storage_cidr }}
used_ips:
- - "10.1.0.1,10.1.0.55"
- - "10.1.0.100,10.1.0.110"
- - "172.29.240.1,172.29.240.50"
- - "172.16.2.1,172.16.2.50"
- - "172.29.248.1,172.29.248.50"
+{% for item in network_cfg["ip_settings"] %}
+ - "{{ ','.join(item["ip_ranges"][0]) }}"
+{% if item["name"] == "mgmt" %}
+ - "{{ ','.join(item["dhcp_ranges"][0]) }}"
+{% endif %}
+{% if "gw" in item %}
+ - "{{ item["gw"] }}"
+{% endif %}
+{% endfor %}
+ - "{{ internal_vip.ip }}"
global_overrides:
- internal_lb_vip_address: 10.1.0.22
+ internal_lb_vip_address: {{ internal_vip.ip }}
external_lb_vip_address: {{ public_vip.ip }}
- tunnel_bridge: "br-vxlan"
+ tunnel_bridge: "br-tenant"
management_bridge: "br-mgmt"
provider_networks:
- network:
@@ -29,7 +34,7 @@ global_overrides:
is_container_address: true
is_ssh_address: true
- network:
- container_bridge: "br-vxlan"
+ container_bridge: "br-tenant"
container_type: "veth"
container_interface: "eth10"
ip_from_q: "tunnel"
@@ -43,7 +48,7 @@ global_overrides:
- neutron_openvswitch_agent
{% endif %}
- network:
- container_bridge: "br-vlan"
+ container_bridge: "br-external"
container_type: "veth"
container_interface: "eth12"
host_bind_override: "eth12"
@@ -56,7 +61,7 @@ global_overrides:
- neutron_openvswitch_agent
{% endif %}
- network:
- container_bridge: "br-vlan"
+ container_bridge: "br-external"
container_type: "veth"
container_interface: "eth11"
type: "vlan"
diff --git a/deploy/adapters/ansible/roles/config-osa/templates/user_variables.yml.j2 b/deploy/adapters/ansible/roles/config-osa/templates/user_variables.yml.j2
index 7f29d5fe..2b4a959a 100644
--- a/deploy/adapters/ansible/roles/config-osa/templates/user_variables.yml.j2
+++ b/deploy/adapters/ansible/roles/config-osa/templates/user_variables.yml.j2
@@ -22,8 +22,8 @@
debug: false
haproxy_keepalived_external_vip_cidr: "{{ public_vip.ip }}/32"
-haproxy_keepalived_internal_vip_cidr: "10.1.0.22/32"
-haproxy_keepalived_external_interface: br-vlan
+haproxy_keepalived_internal_vip_cidr: "{{ internal_vip.ip }}/32"
+haproxy_keepalived_external_interface: br-external
haproxy_keepalived_internal_interface: br-mgmt
keepalived_ping_address: "{{ ntp_server }}"
diff --git a/deploy/adapters/ansible/roles/post-openstack/tasks/main.yml b/deploy/adapters/ansible/roles/post-openstack/tasks/main.yml
index 10d8f727..6a8299d6 100644
--- a/deploy/adapters/ansible/roles/post-openstack/tasks/main.yml
+++ b/deploy/adapters/ansible/roles/post-openstack/tasks/main.yml
@@ -31,8 +31,8 @@
- name: replace internalURL with publicURL in openrc
replace:
dest: /opt/openrc
- regexp: "{{internal_vip}}"
- replace: "{{ public_vip['ip']}}"
+ regexp: "{{ internal_vip['ip'] }}"
+ replace: "{{ public_vip['ip'] }}"
- name: change the endpoint type
replace:
diff --git a/deploy/adapters/ansible/roles/post-openstack/vars/main.yml b/deploy/adapters/ansible/roles/post-openstack/vars/main.yml
index 19d9e225..d9c36d42 100644
--- a/deploy/adapters/ansible/roles/post-openstack/vars/main.yml
+++ b/deploy/adapters/ansible/roles/post-openstack/vars/main.yml
@@ -7,7 +7,6 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
---
-internal_vip: "10.1.0.22"
flavors:
- id: 0
name: m1.nano
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_ocata/hosts/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_ocata/hosts/HA-ansible-multinodes.tmpl
index 9d628b5e..4c98066e 100755
--- a/deploy/compass_conf/templates/ansible_installer/openstack_ocata/hosts/HA-ansible-multinodes.tmpl
+++ b/deploy/compass_conf/templates/ansible_installer/openstack_ocata/hosts/HA-ansible-multinodes.tmpl
@@ -20,12 +20,12 @@
# controller
#for worker in $controllers
#set worker_hostname = $worker.hostname
- #set worker_ip = $ip_settings[$worker_hostname].mgmt.ip
+ #set worker_ip = $ip_settings[$worker_hostname]["tenant"]["ip"]
$worker_ip $worker_hostname
#end for
# compute
#for worker in $computes
#set worker_hostname = $worker.hostname
- #set worker_ip = $ip_settings[$worker_hostname].mgmt.ip
+ #set worker_ip = $ip_settings[$worker_hostname]["tenant"]["ip"]
$worker_ip $worker_hostname
#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_ocata/vars/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_ocata/vars/HA-ansible-multinodes.tmpl
index 1fdc5d5e..3e68e5a9 100755
--- a/deploy/compass_conf/templates/ansible_installer/openstack_ocata/vars/HA-ansible-multinodes.tmpl
+++ b/deploy/compass_conf/templates/ansible_installer/openstack_ocata/vars/HA-ansible-multinodes.tmpl
@@ -10,31 +10,6 @@
#set controllers = $getVar('controller', [])
#set computes = $getVar('compute', [])
-#set vlan_ip_sec_start = $getVar('vlan_ip_sec_start', '173.29.241.1')
-#set vxlan_ip_start = $getVar('vxlan_ip_start', '172.29.240.13')
-
-#def ipadd($ip, $inc)
- #set list = $ip.split('.')
- #set $list[3] = str(int($list[3]) + $inc)
- #set res = '.'.join($list)
-$res
-#end def
-
-#set host_info = {}
-#for host in controllers
- #set $host_info[$host['hostname']] = {'MGMT_IP': $host['install']['ip']}
-#end for
-
-#set inc = 0
-#for host in computes
- #set info = {}
- #set $info['MGMT_IP'] = $host['install']['ip']
- #set $info['VLAN_IP_SECOND'] = $ipadd($vlan_ip_sec_start, $inc).strip('\n').encode('utf-8')
- #set $info['VXLAN_IP'] = $ipadd($vxlan_ip_start, $inc).strip('\n').encode('utf-8')
- #set $host_info[$host['hostname']] = $info
- #set $inc = $inc + 1
-#end for
-host_info: $host_info
#set ip_settings={}
#for k,v in $getVar('ip_settings', {}).items()
@@ -45,17 +20,34 @@ host_info: $host_info
#set $ip_settings[$k]=$host_ip_settings
#end for
+#for item in $network_cfg["ip_settings"]
+#if $item["name"] == "mgmt"
+#set mgmt_cfg = $item
+#end if
+#if $item["name"] == "external"
+#set external_cfg = $item
+#end if
+#if $item["name"] == "tenant"
+#set tenant_cfg = $item
+#end if
+#if $item["name"] == "storage"
+#set storage_cfg = $item
+#end if
+#end for
+
#set neutron_cfg = $getVar('neutron_config', {})
#set ovs_config = $neutron_cfg.openvswitch
#set has = $getVar('ha', [])
#set ha_vip = $getVar('ha_vip', [])
+
run_dir: $getVar('run_dir', '')
enable_secgroup: $getVar('enable_secgroup', True)
enable_fwaas: $getVar('enable_fwaas', True)
enable_vpnaas: $getVar('enable_vpnaas', True)
odl_l3_agent: $getVar('odl_l3_agent', 'Disable')
+moon: $getVar('moon', 'Disable')
ha_network: $getVar('ha_network', 'Disable')
onos_nic: $getVar('onos_nic', 'eth2')
onos_sfc: $getVar('onos_sfc', 'Disable')
@@ -64,9 +56,10 @@ network_cfg: $network_cfg
sys_intf_mappings: $sys_intf_mappings
deploy_type: $getVar('deploy_type', 'virtual')
-public_cidr: $computes[0]['install']['subnet']
-storage_cidr: "{{ ip_settings[inventory_hostname]['storage']['cidr'] }}"
-mgmt_cidr: "{{ ip_settings[inventory_hostname]['mgmt']['cidr'] }}"
+mgmt_cidr: $mgmt_cfg["cidr"]
+external_cidr: $external_cfg["cidr"]
+tenant_cidr: $tenant_cfg["cidr"]
+storage_cidr: $storage_cfg["cidr"]
public_net_info: "{{ network_cfg.public_net_info }}"
host_ip_settings: "{{ ip_settings[inventory_hostname] }}"
@@ -93,8 +86,8 @@ public_vip:
db_host: "{{ internal_vip.ip }}"
rabbit_host: "{{ internal_vip.ip }}"
-internal_ip: "{{ ip_settings[inventory_hostname]['mgmt']['ip'] }}"
-internal_nic: mgmt
+internal_ip: "{{ ip_settings[inventory_hostname]['tenant']['ip'] }}"
+internal_nic: tenant
#set random_id = randint(1, 255)
vrouter_id_internal: $random_id
@@ -111,7 +104,7 @@ dashboard_host: "{{ internal_ip }}"
haproxy_hosts:
#for $item in $has
#set $hostname=$item["hostname"]
- $hostname: $ip_settings[$hostname]["mgmt"]["ip"]
+ $hostname: $ip_settings[$hostname]["tenant"]["ip"]
#end for
host_index:
@@ -186,13 +179,6 @@ CONGRESS_PASS: $congress_pass
DEMO_PASS: $demo_pass
ADMIN_PASS: $admin_pass
-#set plugins = $getVar('plugins', [])
-#for item in plugins
-#set keys = $item.keys()
-#set values = $item.values()
-$keys[0]: $values[0]
-#end for
-
#set neutron_service_plugins=['router']
#if $getVar('enable_fwaas', True)
@@ -246,9 +232,3 @@ odl_base_features: ['config', 'standard', 'region', 'package', 'kar', 'ssh', 'ma
odl_extra_features: ['odl-l2switch-switch', 'odl-ovsdb-plugin', 'odl-ovsdb-openstack', 'odl-ovsdb-northbound','odl-dlux-core', 'odl-restconf-all', 'odl-mdsal-clustering', 'odl-openflowplugin-flow-services', 'odl-netconf-connector', 'odl-netconf-connector-ssh', 'jolokia-osgi']
odl_features: "{{ odl_base_features + odl_extra_features }}"
odl_api_port: 8080
-
-#set moon_cfg = $getVar('moon_cfg', {})
-moon_master: $moon_cfg.master.flag
-moon_slave: $moon_cfg.slave.flag
-moon_slave_name: $moon_cfg.slave.name
-moon_master_ip: $moon_cfg.slave.master_ip
diff --git a/deploy/compass_vm.sh b/deploy/compass_vm.sh
index 58173455..6d976560 100755
--- a/deploy/compass_vm.sh
+++ b/deploy/compass_vm.sh
@@ -137,6 +137,11 @@ function launch_compass() {
sed -i "s#^\(compass_db:\).*#\1 $COMPASS_DB#g" $group_vars
sed -i "s#^\(compass_mq:\).*#\1 $COMPASS_MQ#g" $group_vars
+ sed -i "s#^\(host_ip:\).*#\1 $INSTALL_IP#g" $group_vars
+ sed -i "s#^\(install_subnet:\).*#\1 ${INSTALL_CIDR%/*}#g" $group_vars
+ sed -i "s#^\(install_prefix:\).*#\1 ${INSTALL_CIDR##*/}#g" $group_vars
+ sed -i "s#^\(install_netmask:\).*#\1 $INSTALL_NETMASK#g" $group_vars
+ sed -i "s#^\(install_ip_range:\).*#\1 $INSTALL_IP_RANGE#g" $group_vars
ansible-playbook $WORK_DIR/installer/compass-docker-compose/bring_up_compass.yml
}
diff --git a/deploy/conf/base.conf b/deploy/conf/base.conf
index bdbea459..c2bf5291 100644
--- a/deploy/conf/base.conf
+++ b/deploy/conf/base.conf
@@ -3,11 +3,6 @@ export NEUTRON=${NEUTRON:-$COMPASS_DIR/deploy/conf/neutron_cfg.yaml}
export NETWORK=${NETWORK:-$COMPASS_DIR/deploy/conf/network_cfg.yaml}
export TAR_URL=${TAR_URL:-file://`pwd`/work/building/compass.tar.gz}
export INSTALL_IP=${INSTALL_IP:-10.1.0.1}
-export INSTALL_MASK=${INSTALL_MASK:-255.255.255.0}
-export INSTALL_GW=${INSTALL_GW:-10.1.0.1}
-export INSTALL_IP_START=${INSTALL_IP_START:-10.1.0.1}
-export INSTALL_IP_END=${INSTALL_IP_END:-10.1.0.254}
-export MGMT_IP=${MGMT_IP:-10.1.0.1}
export EXT_NAT_MASK=${EXT_NAT_MASK:-255.255.252.0}
export EXT_NAT_GW=${EXT_NAT_GW:-192.16.1.1}
export EXT_NAT_IP_START=${EXT_NAT_IP_START:-192.16.1.3}
@@ -28,34 +23,6 @@ export ENABLE_UBUNTU_THEME=${ENABLE_UBUNTU_THEME:-"true"}
export EXPANSION=${EXPANSION:-"false"}
-function next_ip {
- ip_addr=$1
- ip_base="$(echo $ip_addr | cut -d. -f'1 2 3')"
- ip_last="$(echo $ip_addr | cut -d. -f4)"
- let ip_last_next=$ip_last+1
- echo "${ip_base}.${ip_last_next}"
-}
-
-if [ -z "$HOST_NETWORKS" ]; then
- IFS=, read -a HOSTNAME_LIST <<< "$HOSTNAMES"
- MANAGE_IP=${MANAGEMENT_IP_START}
- TENANT_IP=${TENANT_IP_START}
- PUBLIC_IP=${PUBLIC_IP_START}
- STORAGE_IP=${STORAGE_IP_START}
- for HOSTNAME in ${HOSTNAME_LIST[@]}; do
- if [ -z "$HOST_NETWORKS" ]; then
- HOST_NETWORKS="${HOSTNAME}:${MANAGEMENT_INTERFACE}=${MANAGE_IP}|is_mgmt"
- else
- HOST_NETWORKS="${HOST_NETWORKS};${HOSTNAME}:${MANAGEMENT_INTERFACE}=${MANAGE_IP}|is_mgmt"
- fi
- MANAGE_IP=$(next_ip ${MANAGE_IP})
- TENANT_IP=$(next_ip ${TENANT_IP})
- PUBLIC_IP=$(next_ip ${PUBLIC_IP})
- STORAGE_IP=$(next_ip ${STORAGE_IP})
- done
- export HOST_NETWORKS
-fi
-
export NETWORK_MAPPING=${NETWORK_MAPPING:-"install=${MANAGEMENT_INTERFACE}"}
export PROXY=""
diff --git a/deploy/conf/compass.conf b/deploy/conf/compass.conf
index 4ea087d6..4102fb96 100644
--- a/deploy/conf/compass.conf
+++ b/deploy/conf/compass.conf
@@ -1,8 +1,8 @@
export COMPASS_VIRT_CPUS=4
export COMPASS_VIRT_MEM=4096
export COMPASS_SERVER=$INSTALL_IP
-export COMPASS_SERVER_URL="http://$MGMT_IP:5050/api"
-export HTTP_SERVER_URL="http://$MGMT_IP:5050/api"
+export COMPASS_SERVER_URL="http://$INSTALL_IP:5050/api"
+export HTTP_SERVER_URL="http://$INSTALL_IP:5050/api"
export COMPASS_USER_EMAIL="admin@huawei.com"
export COMPASS_USER_PASSWORD="admin"
export COMPASS_DNS1=${COMPASS_DNS1:-'8.8.8.8'}
diff --git a/deploy/conf/hardware_environment/huawei-pod1/network.yml b/deploy/conf/hardware_environment/huawei-pod1/network.yml
index f6deed4b..cba041da 100644
--- a/deploy/conf/hardware_environment/huawei-pod1/network.yml
+++ b/deploy/conf/hardware_environment/huawei-pod1/network.yml
@@ -12,7 +12,7 @@ nic_mappings: []
bond_mappings: []
provider_net_mappings:
- - name: br-prv
+ - name: br-provider
network: physnet
interface: eth1
type: ovs
@@ -22,9 +22,15 @@ provider_net_mappings:
sys_intf_mappings:
- name: mgmt
+ interface: eth0
+ vlan_tag: None
+ role:
+ - controller
+ - compute
+
+ - name: tenant
interface: eth1
vlan_tag: 101
- type: vlan
role:
- controller
- compute
@@ -32,14 +38,13 @@ sys_intf_mappings:
- name: storage
interface: eth1
vlan_tag: 102
- type: vlan
role:
- controller
- compute
- name: external
- interface: br-prv
- type: ovs
+ interface: eth1
+ vlan_tag: None
role:
- controller
- compute
@@ -47,6 +52,19 @@ sys_intf_mappings:
ip_settings:
- name: mgmt
ip_ranges:
+ - - "10.1.0.100"
+ - "10.1.0.220"
+ dhcp_ranges:
+ - - "10.1.0.2"
+ - "10.1.0.49"
+ cidr: "10.1.0.0/24"
+ gw: "10.1.0.1"
+ role:
+ - controller
+ - compute
+
+ - name: tenant
+ ip_ranges:
- - "172.16.1.1"
- "172.16.1.254"
cidr: "172.16.1.0/24"
@@ -74,12 +92,12 @@ ip_settings:
- compute
internal_vip:
- ip: 172.16.1.222
+ ip: 10.1.0.222
netmask: "24"
interface: mgmt
public_vip:
- ip: 192.168.10.51
+ ip: 192.16.1.222
netmask: "24"
interface: external
@@ -88,7 +106,7 @@ public_net_info:
enable: "True"
network: ext-net
type: flat
- segment_id: 10
+ segment_id: 1000
subnet: ext-subnet
provider_network: physnet
router: router-ext
diff --git a/deploy/conf/vm_environment/huawei-virtual1/network.yml b/deploy/conf/vm_environment/huawei-virtual1/network.yml
index ab485a8d..fe5f8b52 100644
--- a/deploy/conf/vm_environment/huawei-virtual1/network.yml
+++ b/deploy/conf/vm_environment/huawei-virtual1/network.yml
@@ -12,7 +12,7 @@ nic_mappings: []
bond_mappings: []
provider_net_mappings:
- - name: br-prv
+ - name: br-provider
network: physnet
interface: eth1
type: ovs
@@ -22,9 +22,15 @@ provider_net_mappings:
sys_intf_mappings:
- name: mgmt
+ interface: eth0
+ vlan_tag: None
+ role:
+ - controller
+ - compute
+
+ - name: tenant
interface: eth1
vlan_tag: 101
- type: vlan
role:
- controller
- compute
@@ -32,14 +38,13 @@ sys_intf_mappings:
- name: storage
interface: eth1
vlan_tag: 102
- type: vlan
role:
- controller
- compute
- name: external
- interface: br-prv
- type: ovs
+ interface: eth1
+ vlan_tag: None
role:
- controller
- compute
@@ -47,8 +52,21 @@ sys_intf_mappings:
ip_settings:
- name: mgmt
ip_ranges:
+ - - "10.1.0.50"
+ - "10.1.0.100"
+ dhcp_ranges:
+ - - "10.1.0.2"
+ - "10.1.0.49"
+ cidr: "10.1.0.0/24"
+ gw: "10.1.0.1"
+ role:
+ - controller
+ - compute
+
+ - name: tenant
+ ip_ranges:
- - "172.16.1.1"
- - "172.16.1.254"
+ - "172.16.1.50"
cidr: "172.16.1.0/24"
role:
- controller
@@ -57,7 +75,7 @@ ip_settings:
- name: storage
ip_ranges:
- - "172.16.2.1"
- - "172.16.2.254"
+ - "172.16.2.50"
cidr: "172.16.2.0/24"
role:
- controller
@@ -74,7 +92,7 @@ ip_settings:
- compute
internal_vip:
- ip: 172.16.1.222
+ ip: 10.1.0.222
netmask: "24"
interface: mgmt
@@ -88,7 +106,7 @@ public_net_info:
enable: "True"
network: ext-net
type: flat
- segment_id: 1000
+ segment_id: 10
subnet: ext-subnet
provider_network: physnet
router: router-ext
diff --git a/deploy/conf/vm_environment/huawei-virtual2/network.yml b/deploy/conf/vm_environment/huawei-virtual2/network.yml
index ab485a8d..fe5f8b52 100644
--- a/deploy/conf/vm_environment/huawei-virtual2/network.yml
+++ b/deploy/conf/vm_environment/huawei-virtual2/network.yml
@@ -12,7 +12,7 @@ nic_mappings: []
bond_mappings: []
provider_net_mappings:
- - name: br-prv
+ - name: br-provider
network: physnet
interface: eth1
type: ovs
@@ -22,9 +22,15 @@ provider_net_mappings:
sys_intf_mappings:
- name: mgmt
+ interface: eth0
+ vlan_tag: None
+ role:
+ - controller
+ - compute
+
+ - name: tenant
interface: eth1
vlan_tag: 101
- type: vlan
role:
- controller
- compute
@@ -32,14 +38,13 @@ sys_intf_mappings:
- name: storage
interface: eth1
vlan_tag: 102
- type: vlan
role:
- controller
- compute
- name: external
- interface: br-prv
- type: ovs
+ interface: eth1
+ vlan_tag: None
role:
- controller
- compute
@@ -47,8 +52,21 @@ sys_intf_mappings:
ip_settings:
- name: mgmt
ip_ranges:
+ - - "10.1.0.50"
+ - "10.1.0.100"
+ dhcp_ranges:
+ - - "10.1.0.2"
+ - "10.1.0.49"
+ cidr: "10.1.0.0/24"
+ gw: "10.1.0.1"
+ role:
+ - controller
+ - compute
+
+ - name: tenant
+ ip_ranges:
- - "172.16.1.1"
- - "172.16.1.254"
+ - "172.16.1.50"
cidr: "172.16.1.0/24"
role:
- controller
@@ -57,7 +75,7 @@ ip_settings:
- name: storage
ip_ranges:
- - "172.16.2.1"
- - "172.16.2.254"
+ - "172.16.2.50"
cidr: "172.16.2.0/24"
role:
- controller
@@ -74,7 +92,7 @@ ip_settings:
- compute
internal_vip:
- ip: 172.16.1.222
+ ip: 10.1.0.222
netmask: "24"
interface: mgmt
@@ -88,7 +106,7 @@ public_net_info:
enable: "True"
network: ext-net
type: flat
- segment_id: 1000
+ segment_id: 10
subnet: ext-subnet
provider_network: physnet
router: router-ext
diff --git a/deploy/conf/vm_environment/network.yml b/deploy/conf/vm_environment/network.yml
index ab485a8d..fe5f8b52 100644
--- a/deploy/conf/vm_environment/network.yml
+++ b/deploy/conf/vm_environment/network.yml
@@ -12,7 +12,7 @@ nic_mappings: []
bond_mappings: []
provider_net_mappings:
- - name: br-prv
+ - name: br-provider
network: physnet
interface: eth1
type: ovs
@@ -22,9 +22,15 @@ provider_net_mappings:
sys_intf_mappings:
- name: mgmt
+ interface: eth0
+ vlan_tag: None
+ role:
+ - controller
+ - compute
+
+ - name: tenant
interface: eth1
vlan_tag: 101
- type: vlan
role:
- controller
- compute
@@ -32,14 +38,13 @@ sys_intf_mappings:
- name: storage
interface: eth1
vlan_tag: 102
- type: vlan
role:
- controller
- compute
- name: external
- interface: br-prv
- type: ovs
+ interface: eth1
+ vlan_tag: None
role:
- controller
- compute
@@ -47,8 +52,21 @@ sys_intf_mappings:
ip_settings:
- name: mgmt
ip_ranges:
+ - - "10.1.0.50"
+ - "10.1.0.100"
+ dhcp_ranges:
+ - - "10.1.0.2"
+ - "10.1.0.49"
+ cidr: "10.1.0.0/24"
+ gw: "10.1.0.1"
+ role:
+ - controller
+ - compute
+
+ - name: tenant
+ ip_ranges:
- - "172.16.1.1"
- - "172.16.1.254"
+ - "172.16.1.50"
cidr: "172.16.1.0/24"
role:
- controller
@@ -57,7 +75,7 @@ ip_settings:
- name: storage
ip_ranges:
- - "172.16.2.1"
- - "172.16.2.254"
+ - "172.16.2.50"
cidr: "172.16.2.0/24"
role:
- controller
@@ -74,7 +92,7 @@ ip_settings:
- compute
internal_vip:
- ip: 172.16.1.222
+ ip: 10.1.0.222
netmask: "24"
interface: mgmt
@@ -88,7 +106,7 @@ public_net_info:
enable: "True"
network: ext-net
type: flat
- segment_id: 1000
+ segment_id: 10
subnet: ext-subnet
provider_network: physnet
router: router-ext
diff --git a/deploy/config_parse.py b/deploy/config_parse.py
index 8a1ac54b..3d8dedc5 100644
--- a/deploy/config_parse.py
+++ b/deploy/config_parse.py
@@ -8,16 +8,30 @@
##############################################################################
import os
+import netaddr
import yaml
import sys
from Cheetah.Template import Template
+PXE_INTF = "eth0"
+
def init(file):
with open(file) as fd:
return yaml.safe_load(fd)
+def export_env_dict(env_dict, ofile, direct=False):
+ if not os.path.exists(ofile):
+ raise IOError("output file: %s not exist" % ofile)
+ if direct:
+ for k, v in env_dict.items():
+ os.system("echo 'export %s=\"%s\"' >> %s" % (k, v, ofile))
+ else:
+ for k, v in env_dict.items():
+ os.system("echo 'export %s=${%s:-%s}' >> %s" % (k, k, v, ofile))
+
+
def decorator(func):
def wrapter(s, seq):
host_list = s.get('hosts', [])
@@ -49,9 +63,38 @@ def hostmacs(s, seq, host=None):
return host.get('mac', '')
-def export_dha_file(s, dha_file, conf_dir, ofile):
+def export_network_file(dha, network, ofile):
+ env = {}
+
+ mgmt_net = [item for item in network['ip_settings']
+ if item['name'] == 'mgmt'][0]
+ mgmt_gw = mgmt_net['gw']
+ mgmt_cidr = mgmt_net['cidr']
+ prefix = int(mgmt_cidr.split('/')[1])
+ mgmt_netmask = '.'.join([str((0xffffffff << (32 - prefix) >> i) & 0xff)
+ for i in [24, 16, 8, 0]])
+ dhcp_ip_range = ' '.join(mgmt_net['dhcp_ranges'][0])
+ env.update({'INSTALL_GW': mgmt_gw})
+ env.update({'INSTALL_CIDR': mgmt_cidr})
+ env.update({'INSTALL_NETMASK': mgmt_netmask})
+ env.update({'INSTALL_IP_RANGE': dhcp_ip_range})
+ export_env_dict(env, ofile)
+
+ host_ip_range = mgmt_net['ip_ranges'][0]
+ host_ips = netaddr.iter_iprange(host_ip_range[0], host_ip_range[1])
+ host_networks = []
+ for host in dha['hosts']:
+ host_name = host['name']
+ host_ip = str(host_ips.next())
+ host_networks.append(
+ "{0}:{1}={2}|is_mgmt".format(host_name, PXE_INTF, host_ip))
+ host_network_env = {"HOST_NETWORKS": ';'.join(host_networks)}
+ export_env_dict(host_network_env, ofile, True)
+
+
+def export_dha_file(dha, dha_file, ofile):
env = {}
- env.update(s)
+ env.update(dha)
if env.get('hosts', []):
env.pop('hosts')
if 'plugins' in env:
@@ -61,23 +104,21 @@ def export_dha_file(s, dha_file, conf_dir, ofile):
plugin_list.append(plugin_str)
env.update({'plugins': ','.join(plugin_list)})
- env.update({'TYPE': s.get('TYPE', "virtual")})
- env.update({'FLAVOR': s.get('FLAVOR', "cluster")})
- env.update({'HOSTNAMES': hostnames(s, ',')})
- env.update({'HOST_ROLES': hostroles(s, ';')})
+ env.update({'TYPE': dha.get('TYPE', "virtual")})
+ env.update({'FLAVOR': dha.get('FLAVOR', "cluster")})
+ env.update({'HOSTNAMES': hostnames(dha, ',')})
+ env.update({'HOST_ROLES': hostroles(dha, ';')})
env.update({'DHA': dha_file})
- value = hostmacs(s, ',')
+ value = hostmacs(dha, ',')
if len(value) > 0:
env.update({'HOST_MACS': value})
- os.system("echo \#config file deployment parameter > %s" % ofile)
- for k, v in env.items():
- os.system("echo 'export %s=${%s:-%s}' >> %s" % (k, k, v, ofile))
+ export_env_dict(env, ofile)
-def export_reset_file(s, tmpl_dir, output_dir, output_file):
- tmpl_file_name = s.get('POWER_TOOL', '')
+def export_reset_file(dha, tmpl_dir, output_dir, ofile):
+ tmpl_file_name = dha.get('POWER_TOOL', '')
if not tmpl_file_name:
return
@@ -87,42 +128,35 @@ def export_reset_file(s, tmpl_dir, output_dir, output_file):
'power',
tmpl_file_name +
'.tmpl'),
- searchList=s)
+ searchList=dha)
reset_file_name = os.path.join(output_dir, tmpl_file_name + '.sh')
with open(reset_file_name, 'w') as f:
f.write(tmpl.respond())
- os.system(
- "echo 'export POWER_MANAGE=%s' >> %s" %
- (reset_file_name, output_file))
+ power_manage_env = {'POWER_MANAGE': reset_file_name}
+ export_env_dict(power_manage_env, ofile, True)
if __name__ == "__main__":
if len(sys.argv) != 6:
print("parameter wrong%d %s" % (len(sys.argv), sys.argv))
sys.exit(1)
- _, dha_file, conf_dir, tmpl_dir, output_dir, output_file = sys.argv
+ _, dha_file, network_file, tmpl_dir, output_dir, output_file = sys.argv
if not os.path.exists(dha_file):
print("%s is not exist" % dha_file)
sys.exit(1)
- data = init(dha_file)
-
- export_dha_file(
- data,
- dha_file,
- conf_dir,
- os.path.join(
- output_dir,
- output_file))
- export_reset_file(
- data,
- tmpl_dir,
- output_dir,
- os.path.join(
- output_dir,
- output_file))
+ ofile = os.path.join(output_dir, output_file)
+ os.system("touch %s" % ofile)
+ os.system("echo \#config file deployment parameter > %s" % ofile)
+
+ dha_data = init(dha_file)
+ network_data = init(network_file)
+
+ export_dha_file(dha_data, dha_file, ofile)
+ export_network_file(dha_data, network_data, ofile)
+ export_reset_file(dha_data, tmpl_dir, output_dir, ofile)
sys.exit(0)
diff --git a/deploy/deploy_host.sh b/deploy/deploy_host.sh
index aa90dca6..5fa950c5 100755
--- a/deploy/deploy_host.sh
+++ b/deploy/deploy_host.sh
@@ -10,11 +10,11 @@
rsa_file=$compass_vm_dir/boot.rsa
function rename_nics(){
- python $COMPASS_DIR/deploy/rename_nics.py $DHA $rsa_file $MGMT_IP $OS_VERSION
+ python $COMPASS_DIR/deploy/rename_nics.py $DHA $rsa_file $INSTALL_IP $OS_VERSION
}
function add_bonding(){
- python $COMPASS_DIR/deploy/bonding.py $NETWORK $rsa_file $MGMT_IP
+ python $COMPASS_DIR/deploy/bonding.py $NETWORK $rsa_file $INSTALL_IP
}
function deploy_host(){
diff --git a/deploy/deploy_parameter.sh b/deploy/deploy_parameter.sh
index 92e3467d..78223fcd 100755
--- a/deploy/deploy_parameter.sh
+++ b/deploy/deploy_parameter.sh
@@ -97,7 +97,7 @@ function process_default_para()
get_conf_name $*
python ${COMPASS_DIR}/deploy/config_parse.py \
- "$DHA" "$conf_dir" \
+ "$DHA" "$NETWORK" \
"${COMPASS_DIR}/deploy/template" \
"${WORK_DIR}/script" \
"deploy_config.sh"
diff --git a/deploy/host_virtual.sh b/deploy/host_virtual.sh
index 52f8a7b4..bd2f49af 100755
--- a/deploy/host_virtual.sh
+++ b/deploy/host_virtual.sh
@@ -43,7 +43,6 @@ function launch_host_vms() {
-e "s/REPLACE_BOOT_MAC/${mac_array[i]}/g" \
-e "s/REPLACE_NET_INSTALL/install/g" \
-e "s/REPLACE_NET_IAAS/external_nat/g" \
- -e "s/REPLACE_NET_TENANT/external_nat/g" \
$COMPASS_DIR/deploy/template/vm/host.xml\
> $vm_dir/libvirt.xml
diff --git a/deploy/launch.sh b/deploy/launch.sh
index 8bba3403..6cbad1fa 100755
--- a/deploy/launch.sh
+++ b/deploy/launch.sh
@@ -104,15 +104,6 @@ if [[ "$DEPLOY_HOST" == "true" || $REDEPLOY_HOST == "true" ]]; then
echo $HOST_ROLES
echo $TYPE
echo $DHA
- if [[ `echo $HOST_ROLES | grep opencontrail` ]]; then
- ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
- vgw_ip=$(sshpass -p 'root' ssh $ssh_options root@$MGMT_IP 'cat /home/opencontrail1.rc')
- externet_cidr=$(sshpass -p 'root' ssh $ssh_options root@$MGMT_IP 'cat /home/opencontrail2.rc')
- sudo ip route add $externet_cidr via $vgw_ip dev br-external 2>/dev/null
- sleep 60
- sudo python ${COMPASS_DIR}/deploy/reset_compute.py $TYPE $DHA
- sleep 600
- fi
fi
public_vip=$(get_public_vip)
diff --git a/deploy/template/vm/host.xml b/deploy/template/vm/host.xml
index 092f0ece..059e46ba 100644
--- a/deploy/template/vm/host.xml
+++ b/deploy/template/vm/host.xml
@@ -38,10 +38,15 @@
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</interface>
<interface type='network'>
- <source network='REPLACE_NET_TENANT'/>
+ <source network='default'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</interface>
+ <interface type='network'>
+ <source network='default'/>
+ <model type='virtio'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
+ </interface>
<serial type='pty'>
<source path='/dev/pts/0'/>
</serial>