Add second AAI instance to OpenStack templates 93/4693/1
authorMarco Platania <platania@research.att.com>
Tue, 6 Jun 2017 14:24:33 +0000 (10:24 -0400)
committerMarco Platania <platania@research.att.com>
Tue, 6 Jun 2017 14:24:33 +0000 (10:24 -0400)
Change-Id: I48799b2d7b4aec5b0bd627d9bec291c9f14c8787
Signed-off-by: Marco Platania <platania@research.att.com>
boot/bind_zones
boot/dns_install.sh
heat/OpenECOMP/onap_openstack.env
heat/OpenECOMP/onap_openstack.yaml
heat/OpenECOMP/onap_openstack_float.env
heat/OpenECOMP/onap_openstack_float.yaml
heat/OpenECOMP/onap_openstack_nofloat.env
heat/OpenECOMP/onap_openstack_nofloat.yaml

index e73234f..0893ca6 100644 (file)
@@ -16,10 +16,15 @@ $TTL    604800
 simpledemo.openecomp.org.          IN      A       dns_ip_addr
 
 ;
-vm1.aai.simpledemo.openecomp.org.       IN      A       aai_ip_addr
-c1.vm1.aai.simpledemo.openecomp.org.    IN      A       aai_ip_addr
-c2.vm1.aai.simpledemo.openecomp.org.    IN      A       aai_ip_addr
-c3.vm1.aai.simpledemo.openecomp.org.    IN      A       aai_ip_addr
+vm1.aai.simpledemo.openecomp.org.       IN      A       aai1_ip_addr
+c1.vm1.aai.simpledemo.openecomp.org.    IN      A       aai1_ip_addr
+c2.vm1.aai.simpledemo.openecomp.org.    IN      A       aai1_ip_addr
+c3.vm1.aai.simpledemo.openecomp.org.    IN      A       aai1_ip_addr
+
+vm2.aai.simpledemo.openecomp.org.       IN      A       aai2_ip_addr
+c1.vm2.aai.simpledemo.openecomp.org.    IN      A       aai2_ip_addr
+c2.vm2.aai.simpledemo.openecomp.org.    IN      A       aai2_ip_addr
+c3.vm2.aai.simpledemo.openecomp.org.    IN      A       aai2_ip_addr
 
 vm1.appc.simpledemo.openecomp.org.      IN      A       appc_ip_addr
 c1.vm1.appc.simpledemo.openecomp.org.   IN      A       appc_ip_addr
@@ -72,7 +77,9 @@ vm1.mr.simpledemo.openecomp.org.      IN      A       mr_ip_addr
 ;CNAMES
 ;A&AI
 aai.api.simpledemo.openecomp.org.      IN      CNAME   vm1.aai.simpledemo.openecomp.org.
-aai.hbase.simpledemo.openecomp.org.    IN      CNAME   vm1.aai.simpledemo.openecomp.org.
+aai.hbase.simpledemo.openecomp.org.    IN      CNAME   vm2.aai.simpledemo.openecomp.org.
+aai.gremlinserver.simpledemo.openecomp.org.    IN      CNAME   vm2.aai.simpledemo.openecomp.org.
+aai.elasticsearch.simpledemo.openecomp.org.    IN      CNAME   vm2.aai.simpledemo.openecomp.org.
 
 ;APPC
 appc.api.simpledemo.openecomp.org.     IN      CNAME   vm1.appc.simpledemo.openecomp.org.
index 58bb4d7..9cf5c32 100644 (file)
@@ -65,7 +65,8 @@ if [[ $CLOUD_ENV != "rackspace" ]]
 then
        sed -i "s/dns_ip_addr/"$(cat /opt/config/dns_ip_addr.txt)"/g" /etc/bind/named.conf.options
        sed -i "s/external_dns/"$(cat /opt/config/external_dns.txt)"/g" /etc/bind/named.conf.options
-       sed -i "s/aai_ip_addr/"$(cat /opt/config/aai_ip_addr.txt)"/g" /etc/bind/zones/db.simpledemo.openecomp.org
+       sed -i "s/aai1_ip_addr/"$(cat /opt/config/aai1_ip_addr.txt)"/g" /etc/bind/zones/db.simpledemo.openecomp.org
+       sed -i "s/aai2_ip_addr/"$(cat /opt/config/aai2_ip_addr.txt)"/g" /etc/bind/zones/db.simpledemo.openecomp.org
        sed -i "s/appc_ip_addr/"$(cat /opt/config/appc_ip_addr.txt)"/g" /etc/bind/zones/db.simpledemo.openecomp.org
        sed -i "s/dcae_ip_addr/"$(cat /opt/config/dcae_ip_addr.txt)"/g" /etc/bind/zones/db.simpledemo.openecomp.org
        sed -i "s/dns_ip_addr/"$(cat /opt/config/dns_ip_addr.txt)"/g" /etc/bind/zones/db.simpledemo.openecomp.org
index e049e7c..16b0ec5 100644 (file)
@@ -71,7 +71,8 @@ parameters:
   ### Private IP addresses ###
 
   oam_network_cidr: 10.0.0.0/8
-  aai_ip_addr: 10.0.1.1
+  aai1_ip_addr: 10.0.1.1
+  aai2_ip_addr: 10.0.1.2
   appc_ip_addr: 10.0.2.1
   dcae_ip_addr: 10.0.4.1
   dcae_coll_ip_addr: 10.0.4.102
index 584ca46..0a952df 100644 (file)
@@ -160,9 +160,13 @@ parameters:
     type: string
     description: CIDR of the OAM ONAP network
 
-  aai_ip_addr:
+  aai1_ip_addr:
     type: string
-    description: AAI IP Address
+    description: AAI Instance 1 IP Address
+
+  aai2_ip_addr:
+    type: string
+    description: AAI Instance 2 IP Address
 
   appc_ip_addr:
     type: string
@@ -364,7 +368,8 @@ resources:
             __artifacts_version__: { get_param: artifacts_version }
             __oam_network_cidr__: { get_attr: [oam_ecomp_subnet, cidr] }
             __dns_ip_addr__: { get_param: dns_ip_addr }
-            __aai_ip_addr__: { get_param: aai_ip_addr }
+            __aai1_ip_addr__: { get_param: aai1_ip_addr }
+            __aai2_ip_addr__: { get_param: aai2_ip_addr }
             __appc_ip_addr__: { get_param: appc_ip_addr }
             __dcae_ip_addr__: { get_param: dcae_ip_addr }
             __dcae_coll_ip_addr__: { get_param: dcae_coll_ip_addr }
@@ -388,7 +393,8 @@ resources:
             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
             echo "__oam_network_cidr__" > /opt/config/oam_network_cidr.txt
             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
-            echo "__aai_ip_addr__" > /opt/config/aai_ip_addr.txt
+            echo "__aai1_ip_addr__" > /opt/config/aai1_ip_addr.txt
+            echo "__aai2_ip_addr__" > /opt/config/aai2_ip_addr.txt
             echo "__appc_ip_addr__" > /opt/config/appc_ip_addr.txt
             echo "__dcae_ip_addr__" > /opt/config/dcae_ip_addr.txt
             echo "__dcae_coll_ip_addr__" > /opt/config/dcae_coll_ip_addr.txt
@@ -409,32 +415,33 @@ resources:
             ./dns_install.sh
 
 
-  # A&AI instantiation
-  aai_private_port:
+  # A&AI instantiation (2 VMs)
+  aai1_private_port:
     type: OS::Neutron::Port
     properties:
       network: { get_resource: oam_ecomp }
-      fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: aai_ip_addr }}]
+      fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: aai1_ip_addr }}]
 
-  aai_floating_ip:
+  aai1_floating_ip:
     type: OS::Neutron::FloatingIP
     properties:
       floating_network_id: { get_param: public_net_id }
-      port_id: { get_resource: aai_private_port }
+      port_id: { get_resource: aai1_private_port }
 
-  aai_vm:
+  aai1_vm:
     type: OS::Nova::Server
+    depends_on: aai2_vm
     properties:
       image: { get_param: ubuntu_1404_image }
       flavor: { get_param: flavor_xlarge }
       name:
         str_replace:
-          template: base-aai
+          template: base-aai-inst1
           params:
             base: { get_param: vm_base_name }      
       key_name: { get_resource: vm_key }
       networks:
-        - port: { get_resource: aai_private_port }
+        - port: { get_resource: aai1_private_port }
       user_data_format: RAW
       user_data:
         str_replace:
@@ -446,8 +453,73 @@ resources:
             __dmaap_topic__: { get_param: dmaap_topic }
             __artifacts_version__: { get_param: artifacts_version }
             __dns_ip_addr__: { get_param: dns_ip_addr }
-            __sdc_ip_addr__: { get_param: sdc_ip_addr }
             __docker_version__: { get_param: docker_version }
+            __gerrit_branch__: { get_param: gerrit_branch }
+            __cloud_env__: { get_param: cloud_env }
+            __external_dns__: { get_param: external_dns }
+          template: |
+            #!/bin/bash
+
+            # Create configuration files
+            mkdir -p /opt/config
+            echo "__nexus_repo__" > /opt/config/nexus_repo.txt
+            echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
+            echo "__nexus_username__" > /opt/config/nexus_username.txt
+            echo "__nexus_password__" > /opt/config/nexus_password.txt
+            echo "__artifacts_version__" > /opt/config/artifacts_version.txt
+            echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
+            echo "__dmaap_topic__" > /opt/config/dmaap_topic.txt
+            echo "__docker_version__" > /opt/config/docker_version.txt
+            echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
+            echo "aai_instance_1" > /opt/config/aai_instance.txt
+            echo "__cloud_env__" > /opt/config/cloud_env.txt
+            echo "__external_dns__" > /opt/config/external_dns.txt
+
+            # Download and run install script
+            curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/aai2_install.sh -o /opt/aai2_install.sh
+            cd /opt
+            chmod +x aai2_install.sh
+            ./aai2_install.sh
+
+
+  aai2_private_port:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_resource: oam_ecomp }
+      fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: aai2_ip_addr }}]
+
+  aai2_floating_ip:
+    type: OS::Neutron::FloatingIP
+    properties:
+      floating_network_id: { get_param: public_net_id }
+      port_id: { get_resource: aai2_private_port }
+
+  aai2_vm:
+    type: OS::Nova::Server
+    properties:
+      image: { get_param: ubuntu_1404_image }
+      flavor: { get_param: flavor_xlarge }
+      name:
+        str_replace:
+          template: base-aai-inst2
+          params:
+            base: { get_param: vm_base_name }      
+      key_name: { get_resource: vm_key }
+      networks:
+        - port: { get_resource: aai2_private_port }
+      user_data_format: RAW
+      user_data:
+        str_replace:
+          params:
+            __nexus_repo__: { get_param: nexus_repo }
+            __nexus_docker_repo__: { get_param: nexus_docker_repo }
+            __nexus_username__: { get_param: nexus_username }
+            __nexus_password__: { get_param: nexus_password }
+            __dmaap_topic__: { get_param: dmaap_topic }
+            __artifacts_version__: { get_param: artifacts_version }
+            __dns_ip_addr__: { get_param: dns_ip_addr }
+            __docker_version__: { get_param: docker_version }
+            __gerrit_branch__: { get_param: gerrit_branch }
             __cloud_env__: { get_param: cloud_env }
             __external_dns__: { get_param: external_dns }
           template: |
@@ -461,17 +533,18 @@ resources:
             echo "__nexus_password__" > /opt/config/nexus_password.txt
             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
-            echo "__sdc_ip_addr__" > /opt/config/sdc_ip_addr.txt
             echo "__dmaap_topic__" > /opt/config/dmaap_topic.txt
             echo "__docker_version__" > /opt/config/docker_version.txt
+            echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
+            echo "aai_instance_2" > /opt/config/aai_instance.txt
             echo "__cloud_env__" > /opt/config/cloud_env.txt
             echo "__external_dns__" > /opt/config/external_dns.txt
 
             # Download and run install script
-            curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/aai_install.sh -o /opt/aai_install.sh
+            curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/aai2_install.sh -o /opt/aai2_install.sh
             cd /opt
-            chmod +x aai_install.sh
-            ./aai_install.sh
+            chmod +x aai2_install.sh
+            ./aai2_install.sh
 
 
   # MSO instantiation
index ea243d6..aed3a4b 100644 (file)
@@ -70,7 +70,8 @@ parameters:
 
   ### Floating IP addresses ###
 
-  aai_float_ip: PUT A&AI FLOATING IP HERE
+  aai1_float_ip: PUT A&AI INSTANCE 1 FLOATING IP HERE
+  aai2_float_ip: PUT A&AI INSTANCE 2 FLOATING IP HERE
   appc_float_ip: PUT APP-C FLOATING IP HERE
   dcae_float_ip: PUT DCAE FLOATING IP HERE
   dcae_coll_float_ip: PUT DCAE COLLECTOR FLOATING IP HERE
@@ -92,7 +93,8 @@ parameters:
   ### Private IP addresses ###
 
   oam_network_cidr: 10.0.0.0/8
-  aai_ip_addr: 10.0.1.1
+  aai1_ip_addr: 10.0.1.1
+  aai2_ip_addr: 10.0.1.2
   appc_ip_addr: 10.0.2.1
   dcae_ip_addr: 10.0.4.1
   dcae_coll_ip_addr: 10.0.4.102
index 659f94c..02feac7 100644 (file)
@@ -156,9 +156,13 @@ parameters:
     description: First element of the dns_list for ONAP network
 
   ### Floating IP addresses ###
-  aai_float_ip:
+  aai1_float_ip:
     type: string
-    description: AAI Floating IP Address
+    description: AAI Instance 1 Floating IP Address
+
+  aai2_float_ip:
+    type: string
+    description: AAI Instance 2 Floating IP Address
 
   appc_float_ip:
     type: string
@@ -229,9 +233,13 @@ parameters:
     type: string
     description: CIDR of the OAM ONAP network
 
-  aai_ip_addr:
+  aai1_ip_addr:
+    type: string
+    description: AAI Instance 1 IP Address
+
+  aai2_ip_addr:
     type: string
-    description: AAI IP Address
+    description: AAI Instance 2 IP Address
 
   appc_ip_addr:
     type: string
@@ -434,7 +442,8 @@ resources:
             __artifacts_version__: { get_param: artifacts_version }
             __oam_network_cidr__: { get_attr: [oam_ecomp_subnet, cidr] }
             __dns_ip_addr__: { get_param: dns_ip_addr }
-            __aai_ip_addr__: { get_param: aai_ip_addr }
+            __aai1_ip_addr__: { get_param: aai1_ip_addr }
+            __aai2_ip_addr__: { get_param: aai2_ip_addr }
             __appc_ip_addr__: { get_param: appc_ip_addr }
             __dcae_ip_addr__: { get_param: dcae_ip_addr }
             __dcae_coll_ip_addr__: { get_param: dcae_coll_ip_addr }
@@ -458,7 +467,8 @@ resources:
             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
             echo "__oam_network_cidr__" > /opt/config/oam_network_cidr.txt
             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
-            echo "__aai_ip_addr__" > /opt/config/aai_ip_addr.txt
+            echo "__aai1_ip_addr__" > /opt/config/aai1_ip_addr.txt
+            echo "__aai2_ip_addr__" > /opt/config/aai2_ip_addr.txt
             echo "__appc_ip_addr__" > /opt/config/appc_ip_addr.txt
             echo "__dcae_ip_addr__" > /opt/config/dcae_ip_addr.txt
             echo "__dcae_coll_ip_addr__" > /opt/config/dcae_coll_ip_addr.txt
@@ -479,33 +489,34 @@ resources:
             ./dns_install.sh
 
 
-  # A&AI instantiation
-  aai_private_port:
+  # A&AI instantiation (2 VMs)
+  aai1_private_port:
     type: OS::Neutron::Port
     properties:
       network: { get_resource: oam_ecomp }
-      fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: aai_ip_addr }}]
+      fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: aai1_ip_addr }}]
 
-  aai_floating_ip:
+  aai1_floating_ip:
     type: OS::Neutron::FloatingIP
     properties:
       floating_network_id: { get_param: public_net_id }
-      port_id: { get_resource: aai_private_port }
-      floating_ip_address: { get_param: aai_float_ip }
+      port_id: { get_resource: aai1_private_port }
+      floating_ip_address: { get_param: aai1_float_ip }
 
-  aai_vm:
+  aai1_vm:
     type: OS::Nova::Server
+    depends_on: aai2_vm
     properties:
       image: { get_param: ubuntu_1404_image }
       flavor: { get_param: flavor_xlarge }
       name:
         str_replace:
-          template: base-aai
+          template: base-aai-inst1
           params:
             base: { get_param: vm_base_name }      
       key_name: { get_resource: vm_key }
       networks:
-        - port: { get_resource: aai_private_port }
+        - port: { get_resource: aai1_private_port }
       user_data_format: RAW
       user_data:
         str_replace:
@@ -517,9 +528,75 @@ resources:
             __dmaap_topic__: { get_param: dmaap_topic }
             __artifacts_version__: { get_param: artifacts_version }
             __dns_ip_addr__: { get_param: dns_ip_addr }
-            __sdc_ip_addr__: { get_param: sdc_ip_addr }
             __docker_version__: { get_param: docker_version }
             __cloud_env__: { get_param: cloud_env }
+            __gerrit_branch__: { get_param: gerrit_branch }
+            __external_dns__: { get_param: external_dns }
+          template: |
+            #!/bin/bash
+
+            # Create configuration files
+            mkdir -p /opt/config
+            echo "__nexus_repo__" > /opt/config/nexus_repo.txt
+            echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
+            echo "__nexus_username__" > /opt/config/nexus_username.txt
+            echo "__nexus_password__" > /opt/config/nexus_password.txt
+            echo "__artifacts_version__" > /opt/config/artifacts_version.txt
+            echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
+            echo "__dmaap_topic__" > /opt/config/dmaap_topic.txt
+            echo "__docker_version__" > /opt/config/docker_version.txt
+            echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
+            echo "aai_instance_1" > /opt/config/aai_instance.txt
+            echo "__cloud_env__" > /opt/config/cloud_env.txt
+            echo "__external_dns__" > /opt/config/external_dns.txt
+
+            # Download and run install script
+            curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/aai2_install.sh -o /opt/aai2_install.sh
+            cd /opt
+            chmod +x aai2_install.sh
+            ./aai2_install.sh
+
+
+  aai2_private_port:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_resource: oam_ecomp }
+      fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: aai2_ip_addr }}]
+
+  aai2_floating_ip:
+    type: OS::Neutron::FloatingIP
+    properties:
+      floating_network_id: { get_param: public_net_id }
+      port_id: { get_resource: aai2_private_port }
+      floating_ip_address: { get_param: aai2_float_ip }
+
+  aai2_vm:
+    type: OS::Nova::Server
+    properties:
+      image: { get_param: ubuntu_1404_image }
+      flavor: { get_param: flavor_xlarge }
+      name:
+        str_replace:
+          template: base-aai-inst2
+          params:
+            base: { get_param: vm_base_name }      
+      key_name: { get_resource: vm_key }
+      networks:
+        - port: { get_resource: aai2_private_port }
+      user_data_format: RAW
+      user_data:
+        str_replace:
+          params:
+            __nexus_repo__: { get_param: nexus_repo }
+            __nexus_docker_repo__: { get_param: nexus_docker_repo }
+            __nexus_username__: { get_param: nexus_username }
+            __nexus_password__: { get_param: nexus_password }
+            __dmaap_topic__: { get_param: dmaap_topic }
+            __artifacts_version__: { get_param: artifacts_version }
+            __dns_ip_addr__: { get_param: dns_ip_addr }
+            __docker_version__: { get_param: docker_version }
+            __cloud_env__: { get_param: cloud_env }
+            __gerrit_branch__: { get_param: gerrit_branch }
             __external_dns__: { get_param: external_dns }
           template: |
             #!/bin/bash
@@ -532,17 +609,18 @@ resources:
             echo "__nexus_password__" > /opt/config/nexus_password.txt
             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
-            echo "__sdc_ip_addr__" > /opt/config/sdc_ip_addr.txt
             echo "__dmaap_topic__" > /opt/config/dmaap_topic.txt
             echo "__docker_version__" > /opt/config/docker_version.txt
+            echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
+            echo "aai_instance_2" > /opt/config/aai_instance.txt
             echo "__cloud_env__" > /opt/config/cloud_env.txt
             echo "__external_dns__" > /opt/config/external_dns.txt
 
             # Download and run install script
-            curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/aai_install.sh -o /opt/aai_install.sh
+            curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/aai2_install.sh -o /opt/aai2_install.sh
             cd /opt
-            chmod +x aai_install.sh
-            ./aai_install.sh
+            chmod +x aai2_install.sh
+            ./aai2_install.sh
 
 
   # MSO instantiation
index 854c179..b9465af 100644 (file)
@@ -68,7 +68,8 @@ parameters:
   external_dns: PUT THE ADDRESS OF THE EXTERNAL DNS HERE
 
   oam_network_cidr: 10.0.0.0/8
-  aai_ip_addr: 10.0.1.1
+  aai1_ip_addr: 10.0.1.1
+  aai2_ip_addr: 10.0.1.2
   appc_ip_addr: 10.0.2.1
   dcae_ip_addr: 10.0.4.1
   dcae_coll_ip_addr: 10.0.4.102
index c19f6f5..41f2022 100644 (file)
@@ -156,9 +156,13 @@ parameters:
     type: string
     description: CIDR of the OAM ONAP network
 
-  aai_ip_addr:
+  aai1_ip_addr:
     type: string
-    description: AAI IP Address
+    description: AAI Instance 1 IP Address
+
+  aai2_ip_addr:
+    type: string
+    description: AAI Instance 2 IP Address
 
   appc_ip_addr:
     type: string
@@ -342,7 +346,8 @@ resources:
             __artifacts_version__: { get_param: artifacts_version }
             __oam_network_cidr__: { get_param: oam_network_cidr }
             __dns_ip_addr__: { get_param: dns_ip_addr }
-            __aai_ip_addr__: { get_param: aai_ip_addr }
+            __aai1_ip_addr__: { get_param: aai1_ip_addr }
+            __aai2_ip_addr__: { get_param: aai2_ip_addr }
             __appc_ip_addr__: { get_param: appc_ip_addr }
             __dcae_ip_addr__: { get_param: dcae_ip_addr }
             __dcae_coll_ip_addr__: { get_param: dcae_coll_ip_addr }
@@ -366,7 +371,8 @@ resources:
             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
             echo "__oam_network_cidr__" > /opt/config/oam_network_cidr.txt
             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
-            echo "__aai_ip_addr__" > /opt/config/aai_ip_addr.txt
+            echo "__aai1_ip_addr__" > /opt/config/aai1_ip_addr.txt
+            echo "__aai2_ip_addr__" > /opt/config/aai2_ip_addr.txt
             echo "__appc_ip_addr__" > /opt/config/appc_ip_addr.txt
             echo "__dcae_ip_addr__" > /opt/config/dcae_ip_addr.txt
             echo "__dcae_coll_ip_addr__" > /opt/config/dcae_coll_ip_addr.txt
@@ -387,27 +393,28 @@ resources:
             ./dns_install.sh
 
 
-  # A&AI instantiation
-  aai_private_port:
+  # A&AI instantiation (2 VMs)
+  aai1_private_port:
     type: OS::Neutron::Port
     properties:
       network: { get_resource: oam_ecomp }
-      fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: aai_ip_addr }}]
+      fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: aai1_ip_addr }}]
 
-  aai_vm:
+  aai1_vm:
     type: OS::Nova::Server
+    depends_on: aai2_vm
     properties:
       image: { get_param: ubuntu_1404_image }
       flavor: { get_param: flavor_xlarge }
       name:
         str_replace:
-          template: base-aai
+          template: base-aai-inst1
           params:
             base: { get_param: vm_base_name }      
       key_name: { get_resource: vm_key }
       networks:
         - network: { get_param: public_net_id }
-        - port: { get_resource: aai_private_port }
+        - port: { get_resource: aai1_private_port }
       user_data_format: RAW
       user_data:
         str_replace:
@@ -419,10 +426,74 @@ resources:
             __dmaap_topic__: { get_param: dmaap_topic }
             __artifacts_version__: { get_param: artifacts_version }
             __dns_ip_addr__: { get_param: dns_ip_addr }
-            __aai_ip_addr__: { get_param: aai_ip_addr }
-            __sdc_ip_addr__: { get_param: sdc_ip_addr }
+            __aai_ip_addr__: { get_param: aai1_ip_addr }
             __oam_network_cidr__: { get_param: oam_network_cidr }
             __docker_version__: { get_param: docker_version }
+            __gerrit_branch__: { get_param: gerrit_branch }
+            __cloud_env__: { get_param: cloud_env }
+            __external_dns__: { get_param: external_dns }
+          template: |
+            #!/bin/bash
+
+            # Create configuration files
+            mkdir -p /opt/config
+            echo "__nexus_repo__" > /opt/config/nexus_repo.txt
+            echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
+            echo "__nexus_username__" > /opt/config/nexus_username.txt
+            echo "__nexus_password__" > /opt/config/nexus_password.txt
+            echo "__artifacts_version__" > /opt/config/artifacts_version.txt
+            echo "__aai_ip_addr__" > /opt/config/local_ip_addr.txt
+            echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
+            echo "__oam_network_cidr__" > /opt/config/oam_network_cidr.txt
+            echo "__dmaap_topic__" > /opt/config/dmaap_topic.txt
+            echo "__docker_version__" > /opt/config/docker_version.txt
+            echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
+            echo "aai_instance_1" > /opt/config/aai_instance.txt
+            echo "__cloud_env__" > /opt/config/cloud_env.txt
+            echo "__external_dns__" > /opt/config/external_dns.txt
+
+            # Download and run install script
+            curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/aai2_install.sh -o /opt/aai2_install.sh
+            cd /opt
+            chmod +x aai2_install.sh
+            ./aai2_install.sh
+
+
+  aai2_private_port:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_resource: oam_ecomp }
+      fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: aai2_ip_addr }}]
+
+  aai2_vm:
+    type: OS::Nova::Server
+    properties:
+      image: { get_param: ubuntu_1404_image }
+      flavor: { get_param: flavor_xlarge }
+      name:
+        str_replace:
+          template: base-aai-inst2
+          params:
+            base: { get_param: vm_base_name }      
+      key_name: { get_resource: vm_key }
+      networks:
+        - network: { get_param: public_net_id }
+        - port: { get_resource: aai2_private_port }
+      user_data_format: RAW
+      user_data:
+        str_replace:
+          params:
+            __nexus_repo__: { get_param: nexus_repo }
+            __nexus_docker_repo__: { get_param: nexus_docker_repo }
+            __nexus_username__: { get_param: nexus_username }
+            __nexus_password__: { get_param: nexus_password }
+            __dmaap_topic__: { get_param: dmaap_topic }
+            __artifacts_version__: { get_param: artifacts_version }
+            __dns_ip_addr__: { get_param: dns_ip_addr }
+            __aai_ip_addr__: { get_param: aai2_ip_addr }
+            __oam_network_cidr__: { get_param: oam_network_cidr }
+            __docker_version__: { get_param: docker_version }
+            __gerrit_branch__: { get_param: gerrit_branch }
             __cloud_env__: { get_param: cloud_env }
             __external_dns__: { get_param: external_dns }
           template: |
@@ -437,18 +508,19 @@ resources:
             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
             echo "__aai_ip_addr__" > /opt/config/local_ip_addr.txt
             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
-            echo "__sdc_ip_addr__" > /opt/config/sdc_ip_addr.txt
             echo "__oam_network_cidr__" > /opt/config/oam_network_cidr.txt
             echo "__dmaap_topic__" > /opt/config/dmaap_topic.txt
             echo "__docker_version__" > /opt/config/docker_version.txt
+            echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
+            echo "aai_instance_2" > /opt/config/aai_instance.txt
             echo "__cloud_env__" > /opt/config/cloud_env.txt
             echo "__external_dns__" > /opt/config/external_dns.txt
 
             # Download and run install script
-            curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/aai_install.sh -o /opt/aai_install.sh
+            curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/aai2_install.sh -o /opt/aai2_install.sh
             cd /opt
-            chmod +x aai_install.sh
-            ./aai_install.sh
+            chmod +x aai2_install.sh
+            ./aai2_install.sh
 
 
   # MSO instantiation