From bbc06c1328bb57ad78948f9c0cb14a697780abf3 Mon Sep 17 00:00:00 2001 From: Marco Platania Date: Mon, 24 Apr 2017 22:39:07 -0400 Subject: [PATCH] Install scripts for vLB demo Change-Id: Idb14df185ac595ba87e832a0b8d3c47b960a83e1 Signed-off-by: Marco Platania --- heat/vLB/base_vlb.yaml | 339 --------------------- heat/vLB/{base_vlb.env => base_vlb_rackspace.env} | 12 +- heat/vLB/base_vlb_rackspace.yaml | 253 +++++++++++++++ .../{dnsscaling.env => dnsscaling_rackspace.env} | 10 +- .../{dnsscaling.yaml => dnsscaling_rackspace.yaml} | 133 +++----- heat/vLB/packet_gen_vlb.yaml | 139 --------- ...et_gen_vlb.env => packet_gen_vlb_rackspace.env} | 8 +- heat/vLB/packet_gen_vlb_rackspace.yaml | 110 +++++++ vnfs/vFW/scripts/v_firewall_install.sh | 1 - vnfs/vFW/scripts/v_packetgen_install.sh | 1 - vnfs/vLB/.DS_Store | Bin 10244 -> 10244 bytes vnfs/vLB/scripts/.DS_Store | Bin 8196 -> 8196 bytes vnfs/vLB/scripts/dnsclient.sh | 2 +- vnfs/vLB/scripts/dnsmembership.sh | 2 +- vnfs/vLB/scripts/v_dns_install.sh | 54 ++++ vnfs/vLB/scripts/v_lb_install.sh | 67 ++++ vnfs/vLB/scripts/v_packetgen_for_dns_demo_init.sh | 2 +- vnfs/vLB/scripts/v_packetgen_install.sh | 51 ++++ 18 files changed, 606 insertions(+), 578 deletions(-) delete mode 100644 heat/vLB/base_vlb.yaml rename heat/vLB/{base_vlb.env => base_vlb_rackspace.env} (75%) create mode 100644 heat/vLB/base_vlb_rackspace.yaml rename heat/vLB/{dnsscaling.env => dnsscaling_rackspace.env} (75%) rename heat/vLB/{dnsscaling.yaml => dnsscaling_rackspace.yaml} (51%) delete mode 100644 heat/vLB/packet_gen_vlb.yaml rename heat/vLB/{packet_gen_vlb.env => packet_gen_vlb_rackspace.env} (78%) create mode 100644 heat/vLB/packet_gen_vlb_rackspace.yaml create mode 100644 vnfs/vLB/scripts/v_dns_install.sh create mode 100644 vnfs/vLB/scripts/v_lb_install.sh create mode 100644 vnfs/vLB/scripts/v_packetgen_install.sh diff --git a/heat/vLB/base_vlb.yaml b/heat/vLB/base_vlb.yaml deleted file mode 100644 index c292f295..00000000 --- a/heat/vLB/base_vlb.yaml +++ /dev/null @@ -1,339 +0,0 @@ -heat_template_version: 2013-05-23 - -description: Heat template to deploy vLoadBalancer/vDNS demo app for OpenECOMP - -parameters: - vlb_image_name: - type: string - label: Image name or ID - description: Image to be used for compute instance - vlb_flavor_name: - type: string - label: Flavor - description: Type of instance (flavor) to be used - public_net_id: - type: string - label: Public network name or ID - description: Public network that enables remote connection to VNF - vlb_private_net_id: - type: string - label: vLoadBalancer private network name or ID - description: Private network that connects vLoadBalancer with vDNSs - ecomp_private_net_id: - type: string - label: ECOMP management network name or ID - description: Private network that connects ECOMP component and the VNF - ecomp_private_subnet_id: - type: string - label: ECOMP management sub-network name or ID - description: Private sub-network that connects ECOMP component and the VNF - vlb_private_net_cidr: - type: string - label: vLoadBalancer private network CIDR - description: The CIDR of the vLoadBalancer private network - ecomp_private_net_cidr: - type: string - label: ECOMP private network CIDR - description: The CIDR of the protected private network - vlb_private_ip_0: - type: string - label: vLoadBalancer private IP address towards the private network - description: Private IP address that is assigned to the vLoadBalancer to communicate with the vDNSs - vlb_private_ip_1: - type: string - label: vLoadBalancer private IP address towards the ECOMP management network - description: Private IP address that is assigned to the vLoadBalancer to communicate with ECOMP components - vdns_private_ip_0: - type: string - label: vDNS private IP address towards the private network - description: Private IP address that is assigned to the vDNS to communicate with the vLoadBalancer - vdns_private_ip_1: - type: string - label: vDNS private IP address towards the ECOMP management network - description: Private IP address that is assigned to the vDNS to communicate with ECOMP components - vlb_name_0: - type: string - label: vLoadBalancer name - description: Name of the vLoadBalancer - vdns_name_0: - type: string - label: vDNS name - description: Name of the vDNS - vnf_id: - type: string - label: VNF ID - description: The VNF ID is provided by ECOMP - vf_module_id: - type: string - label: vFirewall module ID - description: The vLoadBalancer Module ID is provided by ECOMP - dcae_collector_ip: - type: string - label: DCAE collector IP address - description: IP address of the DCAE collector - dcae_collector_port: - type: string - label: DCAE collector port - description: Port of the DCAE collector - key_name: - type: string - label: Key pair name - description: Public/Private key pair name - pub_key: - type: string - label: Public key - description: Public key to be installed on the compute instance - repo_url_blob: - type: string - label: Repository URL - description: URL of the repository that hosts the demo packages - repo_url_artifacts: - type: string - label: Repository URL - description: URL of the repository that hosts the demo packages - demo_artifacts_version: - type: string - label: Artifacts version used in demo vnfs - description: Artifacts (jar, tar.gz) version used in demo vnfs - -resources: - - random-str: - type: OS::Heat::RandomString - properties: - length: 4 - - my_keypair: - type: OS::Nova::KeyPair - properties: - name: - str_replace: - template: base_rand - params: - base: { get_param: key_name } - rand: { get_resource: random-str } - public_key: { get_param: pub_key } - save_private_key: false - - vlb_private_network: - type: OS::Neutron::Net - properties: - name: { get_param: vlb_private_net_id } - - vlb_private_subnet: - type: OS::Neutron::Subnet - properties: - name: { get_param: vlb_private_net_id } - network_id: { get_resource: vlb_private_network } - cidr: { get_param: vlb_private_net_cidr } - - vlb_0: - type: OS::Nova::Server - properties: - image: { get_param: vlb_image_name } - flavor: { get_param: vlb_flavor_name } - name: { get_param: vlb_name_0 } - key_name: { get_resource: my_keypair } - networks: - - network: { get_param: public_net_id } - - port: { get_resource: vlb_private_0_port } - - port: { get_resource: vlb_private_1_port } - metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }} - user_data_format: RAW - user_data: - str_replace: - params: - __dcae_collector_ip__: { get_param: dcae_collector_ip } - __dcae_collector_port__: { get_param: dcae_collector_port } - __local_private_ipaddr__: { get_param: vlb_private_ip_0 } - __repo_url_blob__ : { get_param: repo_url_blob } - __repo_url_artifacts__ : { get_param: repo_url_artifacts } - __demo_artifacts_version__ : { get_param: demo_artifacts_version } - template: | - #!/bin/bash - - DCAE_COLLECTOR_IP=__dcae_collector_ip__ - DCAE_COLLECTOR_PORT=__dcae_collector_port__ - LOCAL_PRIVATE_IPADDR=__local_private_ipaddr__ - REPO_URL_BLOB=__repo_url_blob__ - REPO_URL_ARTIFACTS=__repo_url_artifacts__ - DEMO_ARTIFACTS_VERSION=__demo_artifacts_version__ - - # Download required dependencies - add-apt-repository -y ppa:openjdk-r/ppa - apt-get update - apt-get install -y make gcc wget openjdk-8-jdk bridge-utils libcurl4-openssl-dev apt-transport-https ca-certificates - apt-get install -y maven - sleep 1 - - # Download vLB demo code for load balancer - mkdir /opt/config - mkdir /opt/FDserver - cd /opt - - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/v_lb_init.sh - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/vlb.sh - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/dnsmembership.sh - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/add_dns.sh - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/remove_dns.sh - - mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -DremoteRepositories=$REPO_URL_ARTIFACTS -Dartifact=org.openecomp.demo.vnf.vlb:dns-manager:$DEMO_ARTIFACTS_VERSION:jar -Dtransitive=false -Ddest=. - mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -DremoteRepositories=$REPO_URL_ARTIFACTS -Dartifact=org.openecomp.demo.vnf.ves:ves:$DEMO_ARTIFACTS_VERSION:tar.gz:demo -Dtransitive=false -Ddest=. - mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -DremoteRepositories=$REPO_URL_ARTIFACTS -Dartifact=org.openecomp.demo.vnf.ves:ves_vlb_reporting:$DEMO_ARTIFACTS_VERSION:tar.gz:demo -Dtransitive=false -Ddest=. - - tar -zxvf ves-$DEMO_ARTIFACTS_VERSION-demo.tar.gz - mv ves-$DEMO_ARTIFACTS_VERSION VES - tar -zxvf ves_vlb_reporting-$DEMO_ARTIFACTS_VERSION-demo.tar.gz - mv ves_vlb_reporting-$DEMO_ARTIFACTS_VERSION VESreporting_vLB - - mv VESreporting_vLB /opt/VES/code/evel_training/VESreporting - mv dns-manager-$DEMO_ARTIFACTS_VERSION.jar /opt/FDserver/dns-manager-$DEMO_ARTIFACTS_VERSION.jar - mv dnsmembership.sh /opt/FDserver/dnsmembership.sh - mv add_dns.sh /opt/FDserver/add_dns.sh - mv remove_dns.sh /opt/FDserver/remove_dns.sh - rm *.tar.gz - - chmod +x v_lb_init.sh - chmod +x vlb.sh - chmod +x /opt/VES/code/evel_training/VESreporting/go-client.sh - chmod +x /opt/FDserver/dnsmembership.sh - chmod +x /opt/FDserver/add_dns.sh - chmod +x /opt/FDserver/remove_dns.sh - - echo $DCAE_COLLECTOR_IP > config/dcae_collector_ip.txt - echo $DCAE_COLLECTOR_PORT > config/dcae_collector_port.txt - echo $LOCAL_PRIVATE_IPADDR > config/local_private_ipaddr.txt - LOCAL_PUBLIC_IPADDR=$(ifconfig eth0 | grep "inet addr" | tr -s ' ' | cut -d' ' -f3 | cut -d':' -f2) - echo $LOCAL_PUBLIC_IPADDR > config/local_public_ipaddr.txt - echo $DEMO_ARTIFACTS_VERSION > config/artifacts_version.txt - - # Install VPP - export UBUNTU="trusty" - export RELEASE=".stable.1609" - rm /etc/apt/sources.list.d/99fd.io.list - echo "deb [trusted=yes] https://nexus.fd.io/content/repositories/fd.io$RELEASE.ubuntu.$UBUNTU.main/ ./" | sudo tee -a /etc/apt/sources.list.d/99fd.io.list - apt-get update - apt-get install -y vpp vpp-dpdk-dkms vpp-lib vpp-dbg vpp-plugins vpp-dev - sleep 1 - - # Install VES - cd /opt/VES/bldjobs/ - make clean - make - sleep 1 - - # Run instantiation script - cd /opt - mv vlb.sh /etc/init.d - update-rc.d vlb.sh defaults - ./v_lb_init.sh - - vlb_private_0_port: - type: OS::Neutron::Port - properties: - network: { get_resource: vlb_private_network } - fixed_ips: [{"subnet": { get_resource: vlb_private_subnet }, "ip_address": { get_param: vlb_private_ip_0 }}] - - vlb_private_1_port: - type: OS::Neutron::Port - properties: - network: { get_param: ecomp_private_net_id } - fixed_ips: [{"subnet": { get_param: ecomp_private_subnet_id }, "ip_address": { get_param: vlb_private_ip_1 }}] - - vdns_0: - type: OS::Nova::Server - properties: - image: { get_param: vlb_image_name } - flavor: { get_param: vlb_flavor_name } - name: { get_param: vdns_name_0 } - key_name: { get_resource: my_keypair } - networks: - - network: { get_param: public_net_id } - - port: { get_resource: vdns_private_0_port } - - port: { get_resource: vdns_private_1_port } - metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }} - user_data_format: RAW - user_data: - str_replace: - params: - __lb_oam_int__ : { get_param: vlb_private_ip_1 } - __lb_private_ipaddr__: { get_param: vlb_private_ip_0 } - __local_private_ipaddr__: { get_param: vdns_private_ip_0 } - __repo_url_blob__ : { get_param: repo_url_blob } - __repo_url_artifacts__ : { get_param: repo_url_artifacts } - __demo_artifacts_version__ : { get_param: demo_artifacts_version } - template: | - #!/bin/bash - - LB_OAM_INT=__lb_oam_int__ - LB_PRIVATE_IPADDR=__lb_private_ipaddr__ - LOCAL_PRIVATE_IPADDR=__local_private_ipaddr__ - REPO_URL_BLOB=__repo_url_blob__ - REPO_URL_ARTIFACTS=__repo_url_artifacts__ - DEMO_ARTIFACTS_VERSION=__demo_artifacts_version__ - - # Download required dependencies - add-apt-repository -y ppa:openjdk-r/ppa - apt-get update - apt-get install -y wget openjdk-8-jdk bind9 bind9utils bind9-doc apt-transport-https ca-certificates - apt-get install -y maven - sleep 1 - - # Download vDNS demo code for DNS Server - mkdir /opt/config - mkdir /opt/FDclient - cd /opt - - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/v_dns_init.sh - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/vdns.sh - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/dnsclient.sh - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/set_gre_tunnel.sh - - mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -DremoteRepositories=$REPO_URL_ARTIFACTS -Dartifact=org.openecomp.demo.vnf.vlb:dns-client:$DEMO_ARTIFACTS_VERSION:jar -Dtransitive=false -Ddest=. - - mv dns-client-$DEMO_ARTIFACTS_VERSION.jar /opt/FDclient/ - mv dnsclient.sh /opt/FDclient/ - mv set_gre_tunnel.sh /opt/FDclient/ - - chmod +x v_dns_init.sh - chmod +x vdns.sh - chmod +x /opt/FDclient/dnsclient.sh - chmod +x /opt/FDclient/set_gre_tunnel.sh - - echo $LB_OAM_INT > config/lb_oam_int.txt - echo $LB_PRIVATE_IPADDR > config/lb_private_ipaddr.txt - echo $LOCAL_PRIVATE_IPADDR > config/local_private_ipaddr.txt - echo $DEMO_ARTIFACTS_VERSION > config/artifacts_version.txt - - # Download Bind config files - cd /opt/config - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/db_dnsdemo_openecomp_org - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/named.conf.options - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/named.conf.local - - # Configure Bind - modprobe ip_gre - mkdir /etc/bind/zones - sed -i "s/OPTIONS=.*/OPTIONS=\"-4 -u bind\"/g" /etc/default/bind9 - mv db_dnsdemo_openecomp_org /etc/bind/zones/db.dnsdemo.openecomp.org - mv named.conf.options /etc/bind/ - mv named.conf.local /etc/bind/ - sleep 1 - - # Run instantiation script - cd /opt - mv vdns.sh /etc/init.d - update-rc.d vdns.sh defaults - ./v_dns_init.sh - - vdns_private_0_port: - type: OS::Neutron::Port - properties: - network: { get_resource: vlb_private_network } - fixed_ips: [{"subnet": { get_resource: vlb_private_subnet }, "ip_address": { get_param: vdns_private_ip_0 }}] - - vdns_private_1_port: - type: OS::Neutron::Port - properties: - network: { get_param: ecomp_private_net_id } - fixed_ips: [{"subnet": { get_param: ecomp_private_subnet_id }, "ip_address": { get_param: vdns_private_ip_1 }}] diff --git a/heat/vLB/base_vlb.env b/heat/vLB/base_vlb_rackspace.env similarity index 75% rename from heat/vLB/base_vlb.env rename to heat/vLB/base_vlb_rackspace.env index 087158ae..f09898ed 100644 --- a/heat/vLB/base_vlb.env +++ b/heat/vLB/base_vlb_rackspace.env @@ -3,10 +3,10 @@ parameters: vlb_flavor_name: 4 GB General Purpose v1 public_net_id: 00000000-0000-0000-0000-000000000000 vlb_private_net_id: zdfw1lb01_private - ecomp_private_net_id: oam_ecomp - ecomp_private_subnet_id: oam_ecomp + onap_private_net_id: PUT THE ONAP PRIVATE NETWORK NAME HERE + onap_private_subnet_id: PUT THE ONAP PRIVATE NETWORK NAME HERE vlb_private_net_cidr: 192.168.10.0/24 - ecomp_private_net_cidr: 10.0.0.0/8 + onap_private_net_cidr: 10.0.0.0/8 vlb_private_ip_0: 192.168.10.111 vlb_private_ip_1: 10.1.0.4 vdns_private_ip_0: 192.168.10.211 @@ -18,7 +18,9 @@ parameters: dcae_collector_ip: 10.0.4.102 dcae_collector_port: 8080 repo_url_blob: https://nexus.onap.org/content/sites/raw - repo_url_artifacts: https://nexus.onap.org/content/repositories/snapshots - demo_artifacts_version: 1.1.0-SNAPSHOT + repo_url_artifacts: https://nexus.onap.org/content/groups/staging + demo_artifacts_version: 1.1.0 + install_script_version: 1.1.0-SNAPSHOT key_name: vlb_key pub_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQXYJYYi3/OUZXUiCYWdtc7K0m5C0dJKVxPG0eI8EWZrEHYdfYe6WoTSDJCww+1qlBSpA5ac/Ba4Wn9vh+lR1vtUKkyIC/nrYb90ReUd385Glkgzrfh5HdR5y5S2cL/Frh86lAn9r6b3iWTJD8wBwXFyoe1S2nMTOIuG4RPNvfmyCTYVh8XTCCE8HPvh3xv2r4egawG1P4Q4UDwk+hDBXThY2KS8M5/8EMyxHV0ImpLbpYCTBA6KYDIRtqmgS6iKyy8v2D1aSY5mc9J0T5t9S2Gv+VZQNWQDDKNFnxqYaAo1uEoq/i1q63XC5AD3ckXb2VT6dp23BQMdDfbHyUWfJN + cloud_env: rackspace diff --git a/heat/vLB/base_vlb_rackspace.yaml b/heat/vLB/base_vlb_rackspace.yaml new file mode 100644 index 00000000..59585450 --- /dev/null +++ b/heat/vLB/base_vlb_rackspace.yaml @@ -0,0 +1,253 @@ +heat_template_version: 2013-05-23 + +description: Heat template to deploy vLoadBalancer/vDNS demo app for ONAP + +parameters: + vlb_image_name: + type: string + label: Image name or ID + description: Image to be used for compute instance + vlb_flavor_name: + type: string + label: Flavor + description: Type of instance (flavor) to be used + public_net_id: + type: string + label: Public network name or ID + description: Public network that enables remote connection to VNF + vlb_private_net_id: + type: string + label: vLoadBalancer private network name or ID + description: Private network that connects vLoadBalancer with vDNSs + onap_private_net_id: + type: string + label: ONAP management network name or ID + description: Private network that connects ONAP components and the VNF + onap_private_subnet_id: + type: string + label: ONAP management sub-network name or ID + description: Private sub-network that connects ONAP components and the VNF + vlb_private_net_cidr: + type: string + label: vLoadBalancer private network CIDR + description: The CIDR of the vLoadBalancer private network + onap_private_net_cidr: + type: string + label: ONAP private network CIDR + description: The CIDR of the protected private network + vlb_private_ip_0: + type: string + label: vLoadBalancer private IP address towards the private network + description: Private IP address that is assigned to the vLoadBalancer to communicate with the vDNSs + vlb_private_ip_1: + type: string + label: vLoadBalancer private IP address towards the ONAP management network + description: Private IP address that is assigned to the vLoadBalancer to communicate with ONAP components + vdns_private_ip_0: + type: string + label: vDNS private IP address towards the private network + description: Private IP address that is assigned to the vDNS to communicate with the vLoadBalancer + vdns_private_ip_1: + type: string + label: vDNS private IP address towards the ONAP management network + description: Private IP address that is assigned to the vDNS to communicate with ONAP components + vlb_name_0: + type: string + label: vLoadBalancer name + description: Name of the vLoadBalancer + vdns_name_0: + type: string + label: vDNS name + description: Name of the vDNS + vnf_id: + type: string + label: VNF ID + description: The VNF ID is provided by ONAP + vf_module_id: + type: string + label: vFirewall module ID + description: The vLoadBalancer Module ID is provided by ONAP + dcae_collector_ip: + type: string + label: DCAE collector IP address + description: IP address of the DCAE collector + dcae_collector_port: + type: string + label: DCAE collector port + description: Port of the DCAE collector + key_name: + type: string + label: Key pair name + description: Public/Private key pair name + pub_key: + type: string + label: Public key + description: Public key to be installed on the compute instance + repo_url_blob: + type: string + label: Repository URL + description: URL of the repository that hosts the demo packages + repo_url_artifacts: + type: string + label: Repository URL + description: URL of the repository that hosts the demo packages + install_script_version: + type: string + label: Installation script version number + description: Version number of the scripts that install the vFW demo app + demo_artifacts_version: + type: string + label: Artifacts version used in demo vnfs + description: Artifacts (jar, tar.gz) version used in demo vnfs + cloud_env: + type: string + label: Cloud environment + description: Cloud environment (e.g., openstack, rackspace) + +resources: + + random-str: + type: OS::Heat::RandomString + properties: + length: 4 + + my_keypair: + type: OS::Nova::KeyPair + properties: + name: + str_replace: + template: base_rand + params: + base: { get_param: key_name } + rand: { get_resource: random-str } + public_key: { get_param: pub_key } + save_private_key: false + + vlb_private_network: + type: OS::Neutron::Net + properties: + name: { get_param: vlb_private_net_id } + + vlb_private_subnet: + type: OS::Neutron::Subnet + properties: + name: { get_param: vlb_private_net_id } + network_id: { get_resource: vlb_private_network } + cidr: { get_param: vlb_private_net_cidr } + + # Virtual Load Balancer Instantiation + vlb_private_0_port: + type: OS::Neutron::Port + properties: + network: { get_resource: vlb_private_network } + fixed_ips: [{"subnet": { get_resource: vlb_private_subnet }, "ip_address": { get_param: vlb_private_ip_0 }}] + + vlb_private_1_port: + type: OS::Neutron::Port + properties: + network: { get_param: onap_private_net_id } + fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vlb_private_ip_1 }}] + + vlb_0: + type: OS::Nova::Server + properties: + image: { get_param: vlb_image_name } + flavor: { get_param: vlb_flavor_name } + name: { get_param: vlb_name_0 } + key_name: { get_resource: my_keypair } + networks: + - network: { get_param: public_net_id } + - port: { get_resource: vlb_private_0_port } + - port: { get_resource: vlb_private_1_port } + metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }} + user_data_format: RAW + user_data: + str_replace: + params: + __dcae_collector_ip__: { get_param: dcae_collector_ip } + __dcae_collector_port__: { get_param: dcae_collector_port } + __local_private_ipaddr__: { get_param: vlb_private_ip_0 } + __local_public_ipaddr__: { get_attr: [vlb_0, first_address] } + __repo_url_blob__ : { get_param: repo_url_blob } + __repo_url_artifacts__ : { get_param: repo_url_artifacts } + __demo_artifacts_version__ : { get_param: demo_artifacts_version } + __install_script_version__ : { get_param: install_script_version } + __cloud_env__ : { get_param: cloud_env } + template: | + #!/bin/bash + + # Create configuration files + mkdir /opt/config + echo "__dcae_collector_ip__" > /opt/config/dcae_collector_ip.txt + echo "__dcae_collector_port__" > /opt/config/dcae_collector_port.txt + echo "__local_private_ipaddr__" > /opt/config/local_private_ipaddr.txt + echo "__local_public_ipaddr__" > /opt/config/local_public_ipaddr.txt + echo "__repo_url_blob__" > /opt/config/repo_url_blob.txt + echo "__repo_url_artifacts__" > /opt/config/repo_url_artifacts.txt + echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt + echo "__install_script_version__" > /opt/config/install_script_version.txt + echo "__cloud_env__" > /opt/config/cloud_env.txt + + # Download and run install script + curl -k __repo_url_blob__/org.openecomp.demo/vnfs/vlb/__install_script_version__/v_lb_install.sh -o /opt/v_lb_install.sh + cd /opt + chmod +x v_lb_install.sh + ./v_lb_install.sh + + + # Virtual DNS Instantiation + vdns_private_0_port: + type: OS::Neutron::Port + properties: + network: { get_resource: vlb_private_network } + fixed_ips: [{"subnet": { get_resource: vlb_private_subnet }, "ip_address": { get_param: vdns_private_ip_0 }}] + + vdns_private_1_port: + type: OS::Neutron::Port + properties: + network: { get_param: onap_private_net_id } + fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vdns_private_ip_1 }}] + + vdns_0: + type: OS::Nova::Server + properties: + image: { get_param: vlb_image_name } + flavor: { get_param: vlb_flavor_name } + name: { get_param: vdns_name_0 } + key_name: { get_resource: my_keypair } + networks: + - network: { get_param: public_net_id } + - port: { get_resource: vdns_private_0_port } + - port: { get_resource: vdns_private_1_port } + metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }} + user_data_format: RAW + user_data: + str_replace: + params: + __lb_oam_int__ : { get_param: vlb_private_ip_1 } + __lb_private_ipaddr__: { get_param: vlb_private_ip_0 } + __local_private_ipaddr__: { get_param: vdns_private_ip_0 } + __repo_url_blob__ : { get_param: repo_url_blob } + __repo_url_artifacts__ : { get_param: repo_url_artifacts } + __demo_artifacts_version__ : { get_param: demo_artifacts_version } + __install_script_version__ : { get_param: install_script_version } + __cloud_env__ : { get_param: cloud_env } + template: | + #!/bin/bash + + # Create configuration files + mkdir /opt/config + echo "__lb_oam_int__" > /opt/config/lb_oam_int.txt + echo "__lb_private_ipaddr__" > /opt/config/lb_private_ipaddr.txt + echo "__local_private_ipaddr__" > /opt/config/local_private_ipaddr.txt + echo "__repo_url_blob__" > /opt/config/repo_url_blob.txt + echo "__repo_url_artifacts__" > /opt/config/repo_url_artifacts.txt + echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt + echo "__install_script_version__" > /opt/config/install_script_version.txt + echo "__cloud_env__" > /opt/config/cloud_env.txt + + # Download and run install script + curl -k __repo_url_blob__/org.openecomp.demo/vnfs/vlb/__install_script_version__/v_dns_install.sh -o /opt/v_dns_install.sh + cd /opt + chmod +x v_dns_install.sh + ./v_dns_install.sh \ No newline at end of file diff --git a/heat/vLB/dnsscaling.env b/heat/vLB/dnsscaling_rackspace.env similarity index 75% rename from heat/vLB/dnsscaling.env rename to heat/vLB/dnsscaling_rackspace.env index 6def6646..fbf8bef5 100644 --- a/heat/vLB/dnsscaling.env +++ b/heat/vLB/dnsscaling_rackspace.env @@ -3,8 +3,8 @@ parameters: vlb_flavor_name: 4 GB General Purpose v1 public_net_id: 00000000-0000-0000-0000-000000000000 vlb_private_net_id: zdfw1lb01_private - ecomp_private_net_id: oam_ecomp - ecomp_private_subnet_id: oam_ecomp + ecomp_private_net_id: PUT THE ONAP PRIVATE NETWORK NAME HERE + ecomp_private_subnet_id: PUT THE ONAP PRIVATE NETWORK NAME HERE vlb_private_ip_0: 192.168.10.111 vlb_private_ip_1: 10.1.0.4 vdns_private_ip_0: 192.168.10.212 @@ -13,7 +13,9 @@ parameters: vnf_id: vLoadBalancer_demo_app vf_module_id: vLoadBalancer repo_url_blob: https://nexus.onap.org/content/sites/raw - repo_url_artifacts: https://nexus.onap.org/content/repositories/snapshots - demo_artifacts_version: 1.1.0-SNAPSHOT + repo_url_artifacts: https://nexus.onap.org/content/groups/staging + demo_artifacts_version: 1.1.0 + install_script_version: 1.1.0-SNAPSHOT key_name: vlb_key_scaling pub_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQXYJYYi3/OUZXUiCYWdtc7K0m5C0dJKVxPG0eI8EWZrEHYdfYe6WoTSDJCww+1qlBSpA5ac/Ba4Wn9vh+lR1vtUKkyIC/nrYb90ReUd385Glkgzrfh5HdR5y5S2cL/Frh86lAn9r6b3iWTJD8wBwXFyoe1S2nMTOIuG4RPNvfmyCTYVh8XTCCE8HPvh3xv2r4egawG1P4Q4UDwk+hDBXThY2KS8M5/8EMyxHV0ImpLbpYCTBA6KYDIRtqmgS6iKyy8v2D1aSY5mc9J0T5t9S2Gv+VZQNWQDDKNFnxqYaAo1uEoq/i1q63XC5AD3ckXb2VT6dp23BQMdDfbHyUWfJN + cloud_env: rackspace diff --git a/heat/vLB/dnsscaling.yaml b/heat/vLB/dnsscaling_rackspace.yaml similarity index 51% rename from heat/vLB/dnsscaling.yaml rename to heat/vLB/dnsscaling_rackspace.yaml index 003deb91..966a5155 100644 --- a/heat/vLB/dnsscaling.yaml +++ b/heat/vLB/dnsscaling_rackspace.yaml @@ -1,6 +1,6 @@ heat_template_version: 2013-05-23 -description: Heat template to deploy a vDNS for OpenECOMP (scaling-up scenario) +description: Heat template to deploy a vDNS for ONAP (scaling-up scenario) parameters: vlb_image_name: @@ -19,30 +19,30 @@ parameters: type: string label: vLoadBalancer private network name or ID description: Private network that connects vLoadBalancer with vDNSs - ecomp_private_net_id: + onap_private_net_id: type: string - label: ECOMP management network name or ID - description: Private network that connects ECOMP component and the VNF - ecomp_private_subnet_id: + label: ONAP management network name or ID + description: Private network that connects ONAP components and the VNF + onap_private_subnet_id: type: string - label: ECOMP management sub-network name or ID - description: Private sub-network that connects ECOMP component and the VNF + label: ONAP management sub-network name or ID + description: Private sub-network that connects ONAP components and the VNF vlb_private_ip_0: type: string label: vLoadBalancer private IP address towards the private network description: Private IP address that is assigned to the vLoadBalancer to communicate with the vDNSs vlb_private_ip_1: type: string - label: vLoadBalancer private IP address towards the ECOMP management network - description: Private IP address that is assigned to the vLoadBalancer to communicate with ECOMP components + label: vLoadBalancer private IP address towards the ONAP management network + description: Private IP address that is assigned to the vLoadBalancer to communicate with ONAP components vdns_private_ip_0: type: string label: vDNS private IP address towards the private network description: Private IP address that is assigned to the vDNS to communicate with the vLoadBalancer vdns_private_ip_1: type: string - label: vDNS private IP address towards the ECOMP management network - description: Private IP address that is assigned to the vDNS to communicate with ECOMP components + label: vDNS private IP address towards the ONAP management network + description: Private IP address that is assigned to the vDNS to communicate with ONAP components vdns_name_0: type: string label: vDNS name @@ -50,11 +50,11 @@ parameters: vnf_id: type: string label: VNF ID - description: The VNF ID is provided by ECOMP + description: The VNF ID is provided by ONAP vf_module_id: type: string label: vFirewall module ID - description: The vLoadBalancer Module ID is provided by ECOMP + description: The vLoadBalancer Module ID is provided by ONAP key_name: type: string label: Key pair name @@ -71,10 +71,18 @@ parameters: type: string label: Repository URL description: URL of the repository that hosts the demo packages + install_script_version: + type: string + label: Installation script version number + description: Version number of the scripts that install the vFW demo app demo_artifacts_version: type: string label: Artifacts version used in demo vnfs description: Artifacts (jar, tar.gz) version used in demo vnfs + cloud_env: + type: string + label: Cloud environment + description: Cloud environment (e.g., openstack, rackspace) resources: @@ -95,6 +103,19 @@ resources: public_key: { get_param: pub_key } save_private_key: false + # Virtual DNS Instantiation + vdns_private_0_port: + type: OS::Neutron::Port + properties: + network: { get_param: vlb_private_net_id } + fixed_ips: [{"subnet": { get_param: vlb_private_net_id }, "ip_address": { get_param: vdns_private_ip_0 }}] + + vdns_private_1_port: + type: OS::Neutron::Port + properties: + network: { get_param: onap_private_net_id } + fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vdns_private_ip_1 }}] + vdns_0: type: OS::Nova::Server properties: @@ -117,78 +138,24 @@ resources: __repo_url_blob__ : { get_param: repo_url_blob } __repo_url_artifacts__ : { get_param: repo_url_artifacts } __demo_artifacts_version__ : { get_param: demo_artifacts_version } + __install_script_version__ : { get_param: install_script_version } + __cloud_env__ : { get_param: cloud_env } template: | #!/bin/bash - LB_OAM_INT=__lb_oam_int__ - LB_PRIVATE_IPADDR=__lb_private_ipaddr__ - LOCAL_PRIVATE_IPADDR=__local_private_ipaddr__ - REPO_URL_BLOB=__repo_url_blob__ - REPO_URL_ARTIFACTS=__repo_url_artifacts__ - DEMO_ARTIFACTS_VERSION=__demo_artifacts_version__ - - # Download required dependencies - add-apt-repository -y ppa:openjdk-r/ppa - apt-get update - apt-get install -y wget openjdk-8-jdk bind9 bind9utils bind9-doc apt-transport-https ca-certificates - apt-get install -y maven - sleep 1 - - # Download vDNS demo code for DNS Server + # Create configuration files mkdir /opt/config - mkdir /opt/FDclient + echo "__lb_oam_int__" > /opt/config/lb_oam_int.txt + echo "__lb_private_ipaddr__" > /opt/config/lb_private_ipaddr.txt + echo "__local_private_ipaddr__" > /opt/config/local_private_ipaddr.txt + echo "__repo_url_blob__" > /opt/config/repo_url_blob.txt + echo "__repo_url_artifacts__" > /opt/config/repo_url_artifacts.txt + echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt + echo "__install_script_version__" > /opt/config/install_script_version.txt + echo "__cloud_env__" > /opt/config/cloud_env.txt + + # Download and run install script + curl -k __repo_url_blob__/org.openecomp.demo/vnfs/vlb/__install_script_version__/v_dns_install.sh -o /opt/v_dns_install.sh cd /opt - - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/v_dns_init.sh - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/vdns.sh - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/dnsclient.sh - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/set_gre_tunnel.sh - - mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -DremoteRepositories=$REPO_URL_ARTIFACTS -Dartifact=org.openecomp.demo.vnf.vlb:dns-client:$DEMO_ARTIFACTS_VERSION:jar -Dtransitive=false -Ddest=. - - mv dns-client-$DEMO_ARTIFACTS_VERSION.jar /opt/FDclient/ - mv dnsclient.sh /opt/FDclient/ - mv set_gre_tunnel.sh /opt/FDclient/ - - chmod +x v_dns_init.sh - chmod +x vdns.sh - chmod +x /opt/FDclient/dnsclient.sh - chmod +x /opt/FDclient/set_gre_tunnel.sh - - echo $LB_OAM_INT > config/lb_oam_int.txt - echo $LB_PRIVATE_IPADDR > config/lb_private_ipaddr.txt - echo $LOCAL_PRIVATE_IPADDR > config/local_private_ipaddr.txt - echo $DEMO_ARTIFACTS_VERSION > config/artifacts_version.txt - - # Download Bind config files - cd /opt/config - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/db_dnsdemo_openecomp_org - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/named.conf.options - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/named.conf.local - - # Configure Bind - modprobe ip_gre - mkdir /etc/bind/zones - sed -i "s/OPTIONS=.*/OPTIONS=\"-4 -u bind\"/g" /etc/default/bind9 - mv db_dnsdemo_openecomp_org /etc/bind/zones/db.dnsdemo.openecomp.org - mv named.conf.options /etc/bind/ - mv named.conf.local /etc/bind/ - sleep 1 - - # Run instantiation script - cd /opt - mv vdns.sh /etc/init.d - update-rc.d vdns.sh defaults - ./v_dns_init.sh - - vdns_private_0_port: - type: OS::Neutron::Port - properties: - network: { get_param: vlb_private_net_id } - fixed_ips: [{"subnet": { get_param: vlb_private_net_id }, "ip_address": { get_param: vdns_private_ip_0 }}] - - vdns_private_1_port: - type: OS::Neutron::Port - properties: - network: { get_param: ecomp_private_net_id } - fixed_ips: [{"subnet": { get_param: ecomp_private_subnet_id }, "ip_address": { get_param: vdns_private_ip_1 }}] + chmod +x v_dns_install.sh + ./v_dns_install.sh \ No newline at end of file diff --git a/heat/vLB/packet_gen_vlb.yaml b/heat/vLB/packet_gen_vlb.yaml deleted file mode 100644 index eb9100cd..00000000 --- a/heat/vLB/packet_gen_vlb.yaml +++ /dev/null @@ -1,139 +0,0 @@ -heat_template_version: 2013-05-23 -description: Heat template to deploy a packet generator for the vLoadBalancer/vDNS demo app for OpenECOMP - -parameters: - public_net_id: - type: string - label: Public network name or ID - description: Public network that enables remote connection to VNF - vpg_image_name: - type: string - label: Image name or ID - description: Image to be used for compute instance - vpg_flavor_name: - type: string - label: Flavor - description: Type of instance (flavor) to be used - vpg_name_0: - type: string - label: vPacketGenerator name - description: Name of the vPacketGenerator - key_name: - type: string - label: Key pair name - description: Public/Private key pair name - pub_key: - type: string - label: Public key - description: Public key to be installed on the compute instance - repo_url_blob: - type: string - label: Repository URL - description: URL of the repository that hosts the demo packages - repo_url_artifacts: - type: string - label: Repository URL - description: URL of the repository that hosts the demo packages - vlb_ipaddr: - type: string - label: Public IP of the vLoadBalancer to which we want to send traffic - description: Public IP of the vLoadBalancer to which we want to send traffic - demo_artifacts_version: - type: string - label: Artifacts version used in demo vnfs - description: Artifacts (jar, tar.gz) version used in demo vnfs - - -resources: - - random-str: - type: OS::Heat::RandomString - properties: - length: 4 - - my_keypair: - type: OS::Nova::KeyPair - properties: - name: - str_replace: - template: base_rand - params: - base: { get_param: key_name } - rand: { get_resource: random-str } - public_key: { get_param: pub_key } - save_private_key: false - - - vpg_0: - type: OS::Nova::Server - properties: - image: { get_param: vpg_image_name } - flavor: { get_param: vpg_flavor_name } - name: { get_param: vpg_name_0 } - key_name: { get_resource: my_keypair } - networks: - - network: { get_param: public_net_id } - user_data_format: RAW - user_data: - str_replace: - params: - __repo_url_blob__ : { get_param: repo_url_blob } - __repo_url_artifacts__ : { get_param: repo_url_artifacts } - __vlb_ipaddr__: { get_param: vlb_ipaddr } - __demo_artifacts_version__ : { get_param: demo_artifacts_version } - template: | - #!/bin/bash - - REPO_URL_BLOB=__repo_url_blob__ - REPO_URL_ARTIFACTS=__repo_url_artifacts__ - VLB_IPADDR=__vlb_ipaddr__ - DEMO_ARTIFACTS_VERSION=__demo_artifacts_version__ - - # Download required dependencies - add-apt-repository -y ppa:openjdk-r/ppa - apt-get update - apt-get install -y make wget openjdk-8-jdk gcc libcurl4-openssl-dev python-pip bridge-utils apt-transport-https ca-certificates - apt-get install -y maven - pip install jsonschema - - # Download vFirewall demo code for packet generator - mkdir /opt/config - mkdir /opt/honeycomb - cd /opt - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/v_packetgen_for_dns_demo_init.sh - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/vpacketgenfordnsdemo.sh - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/run_streams_dns.sh - wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/vdnspacketgen_change_streams_ports.sh - - mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -DremoteRepositories=$REPO_URL_ARTIFACTS -Dartifact=org.openecomp.demo.vnf:sample-distribution:$DEMO_ARTIFACTS_VERSION:tar.gz:hc -Dtransitive=false -Ddest=. - mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -DremoteRepositories=$REPO_URL_ARTIFACTS -Dartifact=org.openecomp.demo.vnf.vlb:vlb_dns_streams:$DEMO_ARTIFACTS_VERSION:tar.gz:demo -Dtransitive=false -Ddest=. - - - tar -zxvf vpp.tar.gz - tar -zxvf sample-distribution-$DEMO_ARTIFACTS_VERSION-hc.tar.gz - mv sample-distribution-$DEMO_ARTIFACTS_VERSION honeycomb - sed -i 's/"restconf-binding-address": "127.0.0.1",/"restconf-binding-address": "0.0.0.0",/g' honeycomb/sample-distribution-$DEMO_ARTIFACTS_VERSION/config/honeycomb.json - tar -zxvf vlb_dns_streams-$DEMO_ARTIFACTS_VERSION-demo.tar.gz - mv vlb_dns_streams-$DEMO_ARTIFACTS_VERSION dns_streams - rm *.tar.gz - chmod +x v_packetgen_for_dns_demo_init.sh - chmod +x vpacketgenfordnsdemo.sh - chmod +x run_streams_dns.sh - chmod +x vdnspacketgen_change_streams_ports.sh - echo $VLB_IPADDR > config/vlb_ipaddr.txt - echo $DEMO_ARTIFACTS_VERSION > config/artifacts_version.txt - - # Install VPP - export UBUNTU="trusty" - export RELEASE=".stable.1609" - rm /etc/apt/sources.list.d/99fd.io.list - echo "deb [trusted=yes] https://nexus.fd.io/content/repositories/fd.io$RELEASE.ubuntu.$UBUNTU.main/ ./" | sudo tee -a /etc/apt/sources.list.d/99fd.io.list - apt-get update - apt-get install -y vpp vpp-dpdk-dkms vpp-lib vpp-dbg vpp-plugins vpp-dev - sleep 1 - - # Run instantiation script - cd /opt - mv vpacketgenfordnsdemo.sh /etc/init.d - update-rc.d vpacketgenfordnsdemo.sh defaults - ./v_packetgen_for_dns_demo_init.sh diff --git a/heat/vLB/packet_gen_vlb.env b/heat/vLB/packet_gen_vlb_rackspace.env similarity index 78% rename from heat/vLB/packet_gen_vlb.env rename to heat/vLB/packet_gen_vlb_rackspace.env index 3bb5cb31..43d7dca7 100644 --- a/heat/vLB/packet_gen_vlb.env +++ b/heat/vLB/packet_gen_vlb_rackspace.env @@ -5,7 +5,9 @@ parameters: vlb_ipaddr: INSERT THE PUBLIC ADDRESS OF THE vLB HERE vpg_name_0: ziad1vdnspg01pg01 repo_url_blob: https://nexus.onap.org/content/sites/raw - repo_url_artifacts: https://nexus.onap.org/content/repositories/snapshots - demo_artifacts_version: 1.1.0-SNAPSHOT - key_name: pgforvdnsdemo_key + repo_url_artifacts: https://nexus.onap.org/content/groups/staging + demo_artifacts_version: 1.1.0 + install_script_version: 1.1.0-SNAPSHOT + key_name: dns_packetgen_key pub_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQXYJYYi3/OUZXUiCYWdtc7K0m5C0dJKVxPG0eI8EWZrEHYdfYe6WoTSDJCww+1qlBSpA5ac/Ba4Wn9vh+lR1vtUKkyIC/nrYb90ReUd385Glkgzrfh5HdR5y5S2cL/Frh86lAn9r6b3iWTJD8wBwXFyoe1S2nMTOIuG4RPNvfmyCTYVh8XTCCE8HPvh3xv2r4egawG1P4Q4UDwk+hDBXThY2KS8M5/8EMyxHV0ImpLbpYCTBA6KYDIRtqmgS6iKyy8v2D1aSY5mc9J0T5t9S2Gv+VZQNWQDDKNFnxqYaAo1uEoq/i1q63XC5AD3ckXb2VT6dp23BQMdDfbHyUWfJN + cloud_env: rackspace diff --git a/heat/vLB/packet_gen_vlb_rackspace.yaml b/heat/vLB/packet_gen_vlb_rackspace.yaml new file mode 100644 index 00000000..94776fc6 --- /dev/null +++ b/heat/vLB/packet_gen_vlb_rackspace.yaml @@ -0,0 +1,110 @@ +heat_template_version: 2013-05-23 +description: Heat template to deploy a packet generator for the vLoadBalancer/vDNS demo app for ONAP + +parameters: + public_net_id: + type: string + label: Public network name or ID + description: Public network that enables remote connection to VNF + vpg_image_name: + type: string + label: Image name or ID + description: Image to be used for compute instance + vpg_flavor_name: + type: string + label: Flavor + description: Type of instance (flavor) to be used + vpg_name_0: + type: string + label: vPacketGenerator name + description: Name of the vPacketGenerator + key_name: + type: string + label: Key pair name + description: Public/Private key pair name + pub_key: + type: string + label: Public key + description: Public key to be installed on the compute instance + repo_url_blob: + type: string + label: Repository URL + description: URL of the repository that hosts the demo packages + repo_url_artifacts: + type: string + label: Repository URL + description: URL of the repository that hosts the demo packages + vlb_ipaddr: + type: string + label: Public IP of the vLoadBalancer to which we want to send traffic + description: Public IP of the vLoadBalancer to which we want to send traffic + install_script_version: + type: string + label: Installation script version number + description: Version number of the scripts that install the vFW demo app + demo_artifacts_version: + type: string + label: Artifacts version used in demo vnfs + description: Artifacts (jar, tar.gz) version used in demo vnfs + cloud_env: + type: string + label: Cloud environment + description: Cloud environment (e.g., openstack, rackspace) + + +resources: + + random-str: + type: OS::Heat::RandomString + properties: + length: 4 + + my_keypair: + type: OS::Nova::KeyPair + properties: + name: + str_replace: + template: base_rand + params: + base: { get_param: key_name } + rand: { get_resource: random-str } + public_key: { get_param: pub_key } + save_private_key: false + + + vpg_0: + type: OS::Nova::Server + properties: + image: { get_param: vpg_image_name } + flavor: { get_param: vpg_flavor_name } + name: { get_param: vpg_name_0 } + key_name: { get_resource: my_keypair } + networks: + - network: { get_param: public_net_id } + user_data_format: RAW + user_data: + str_replace: + params: + __repo_url_blob__ : { get_param: repo_url_blob } + __repo_url_artifacts__ : { get_param: repo_url_artifacts } + __vlb_ipaddr__: { get_param: vlb_ipaddr } + __demo_artifacts_version__ : { get_param: demo_artifacts_version } + __install_script_version__ : { get_param: install_script_version } + __cloud_env__ : { get_param: cloud_env } + template: | + #!/bin/bash + + # Create configuration files + mkdir /opt/config + echo "__vlb_ipaddr__" > /opt/config/vlb_ipaddr.txt + echo "__repo_url_blob__" > /opt/config/repo_url_blob.txt + echo "__repo_url_artifacts__" > /opt/config/repo_url_artifacts.txt + echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt + echo "__install_script_version__" > /opt/config/install_script_version.txt + echo "__cloud_env__" > /opt/config/cloud_env.txt + + # Download and run install script + curl -k __repo_url_blob__/org.openecomp.demo/vnfs/vlb/__install_script_version__/v_packetgen_install.sh -o /opt/v_packetgen_install.sh + cd /opt + chmod +x v_packetgen_install.sh + ./v_packetgen_install.sh \ No newline at end of file diff --git a/vnfs/vFW/scripts/v_firewall_install.sh b/vnfs/vFW/scripts/v_firewall_install.sh index d1d552b2..c2043574 100644 --- a/vnfs/vFW/scripts/v_firewall_install.sh +++ b/vnfs/vFW/scripts/v_firewall_install.sh @@ -31,7 +31,6 @@ fi add-apt-repository -y ppa:openjdk-r/ppa apt-get update apt-get install -y make wget openjdk-8-jdk gcc libcurl4-openssl-dev python-pip bridge-utils apt-transport-https ca-certificates -apt-get install -y maven pip install jsonschema # Download artifacts for virtual firewall diff --git a/vnfs/vFW/scripts/v_packetgen_install.sh b/vnfs/vFW/scripts/v_packetgen_install.sh index 8f8537cd..b141b584 100644 --- a/vnfs/vFW/scripts/v_packetgen_install.sh +++ b/vnfs/vFW/scripts/v_packetgen_install.sh @@ -24,7 +24,6 @@ fi add-apt-repository -y ppa:openjdk-r/ppa apt-get update apt-get install -y make wget openjdk-8-jdk gcc libcurl4-openssl-dev python-pip bridge-utils apt-transport-https ca-certificates -apt-get install -y maven pip install jsonschema # Download code for packet generator diff --git a/vnfs/vLB/.DS_Store b/vnfs/vLB/.DS_Store index 0c09373018167011345ecbcbf39fee6c2961c595..b7ccbfd4e0d26934e82a4efe031721923a77daec 100644 GIT binary patch delta 118 zcmZn(XbITxL6q_5!Vmf?ua-yg_2{jpI2LlE$;1FO8$xF;lrOok|8Vua8PvQQdIF{W(ZE#btz NnO)%}D+vxx005QGG%f%D diff --git a/vnfs/vLB/scripts/.DS_Store b/vnfs/vLB/scripts/.DS_Store index a77bdc47f712531af1802936be1c6e964a67a94a..32f7ecabe74b3cdf4a9721f61f254dc28a7caf34 100644 GIT binary patch delta 453 zcmZp1XmOa}&nUbxU^hRb@MInV6%Gal1~(wqm~0{70pgqib2mkFz0}P1&DJ4 z#F-=rVuQ8JnCu{E1Jg2Na*Lo5Ov{YP`@k|_Ei)!F30Xn)FmgfuY z0C@}y0t{sg@eC;pc?`usIulHnFeEbM0HGdGEW`+;U9O|}tMgM~)L> H_{$CeKay)l delta 299 zcmZp1XmOa}&nU1lU^hRbz+@f)6^{Q5lLQg$$qs@xaEZw+ zf<_3=K4cjtAuEK8ix9FhAp;SZ10Xa52pCUx5O%O)&|@fONMg`sFl8`iFayF=hGd2m zAX}HgfWei)hryB|kHOb7CqFqUCqD_OO#o)p4DIj OLwGhbZ)TVH%MJity0HZS diff --git a/vnfs/vLB/scripts/dnsclient.sh b/vnfs/vLB/scripts/dnsclient.sh index 11f575f6..3692706b 100644 --- a/vnfs/vLB/scripts/dnsclient.sh +++ b/vnfs/vLB/scripts/dnsclient.sh @@ -2,6 +2,6 @@ LB_OAM_INT=$(cat /opt/config/lb_oam_int.txt) PID=$(cat /opt/config/local_private_ipaddr.txt) -VERSION=$(cat /opt/config/artifacts_version.txt) +VERSION=$(cat /opt/config/demo_artifacts_version.txt) java -jar dns-client-$VERSION.jar $PID $LB_OAM_INT 8888 10 0 diff --git a/vnfs/vLB/scripts/dnsmembership.sh b/vnfs/vLB/scripts/dnsmembership.sh index 9c8ccede..345dc3ff 100644 --- a/vnfs/vLB/scripts/dnsmembership.sh +++ b/vnfs/vLB/scripts/dnsmembership.sh @@ -1,6 +1,6 @@ #!/bin/bash MY_PUBLIC_IP=$(cat /opt/config/local_public_ipaddr.txt) -VERSION=$(cat /opt/config/artifacts_version.txt) +VERSION=$(cat /opt/config/demo_artifacts_version.txt) java -jar dns-manager-$VERSION.jar $MY_PUBLIC_IP 8888 10 3 0 diff --git a/vnfs/vLB/scripts/v_dns_install.sh b/vnfs/vLB/scripts/v_dns_install.sh new file mode 100644 index 00000000..be2c5ed3 --- /dev/null +++ b/vnfs/vLB/scripts/v_dns_install.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +REPO_URL_BLOB=$(cat /opt/config/repo_url_blob.txt) +REPO_URL_ARTIFACTS=$(cat /opt/config/repo_url_artifacts.txt) +DEMO_ARTIFACTS_VERSION=$(cat /opt/config/demo_artifacts_version.txt) +INSTALL_SCRIPT_VERSION=$(cat /opt/config/install_script_version.txt) +CLOUD_ENV=$(cat /opt/config/cloud_env.txt) + +# Download required dependencies +add-apt-repository -y ppa:openjdk-r/ppa +apt-get update +apt-get install -y wget openjdk-8-jdk bind9 bind9utils bind9-doc apt-transport-https ca-certificates +sleep 1 + +# Download vDNS demo code for DNS Server +mkdir /opt/config +mkdir /opt/FDclient +cd /opt + +wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$INSTALL_SCRIPT_VERSION/v_dns_init.sh +wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$INSTALL_SCRIPT_VERSION/vdns.sh +wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$INSTALL_SCRIPT_VERSION/dnsclient.sh +wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$INSTALL_SCRIPT_VERSION/set_gre_tunnel.sh +wget $REPO_URL_ARTIFACTS/org/openecomp/demo/vnf/vlb/dns-client/$DEMO_ARTIFACTS_VERSION/dns-client-$DEMO_ARTIFACTS_VERSION.jar + +mv dns-client-$DEMO_ARTIFACTS_VERSION.jar /opt/FDclient/ +mv dnsclient.sh /opt/FDclient/ +mv set_gre_tunnel.sh /opt/FDclient/ + +chmod +x v_dns_init.sh +chmod +x vdns.sh +chmod +x /opt/FDclient/dnsclient.sh +chmod +x /opt/FDclient/set_gre_tunnel.sh + +# Download Bind config files +cd /opt/config +wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$INSTALL_SCRIPT_VERSION/db_dnsdemo_openecomp_org +wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$INSTALL_SCRIPT_VERSION/named.conf.options +wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$INSTALL_SCRIPT_VERSION/named.conf.local + +# Configure Bind +modprobe ip_gre +mkdir /etc/bind/zones +sed -i "s/OPTIONS=.*/OPTIONS=\"-4 -u bind\"/g" /etc/default/bind9 +mv db_dnsdemo_openecomp_org /etc/bind/zones/db.dnsdemo.openecomp.org +mv named.conf.options /etc/bind/ +mv named.conf.local /etc/bind/ +sleep 1 + +# Run instantiation script +cd /opt +mv vdns.sh /etc/init.d +update-rc.d vdns.sh defaults +./v_dns_init.sh \ No newline at end of file diff --git a/vnfs/vLB/scripts/v_lb_install.sh b/vnfs/vLB/scripts/v_lb_install.sh new file mode 100644 index 00000000..b5f6fd6c --- /dev/null +++ b/vnfs/vLB/scripts/v_lb_install.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +REPO_URL_BLOB=$(cat /opt/config/repo_url_blob.txt) +REPO_URL_ARTIFACTS=$(cat /opt/config/repo_url_artifacts.txt) +DEMO_ARTIFACTS_VERSION=$(cat /opt/config/demo_artifacts_version.txt) +INSTALL_SCRIPT_VERSION=$(cat /opt/config/install_script_version.txt) +CLOUD_ENV=$(cat /opt/config/cloud_env.txt) + +# Download required dependencies +add-apt-repository -y ppa:openjdk-r/ppa +apt-get update +apt-get install -y make gcc wget openjdk-8-jdk bridge-utils libcurl4-openssl-dev apt-transport-https ca-certificates +sleep 1 + +# Download vLB demo code for load balancer +mkdir /opt/config +mkdir /opt/FDserver +cd /opt + +wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$INSTALL_SCRIPT_VERSION/v_lb_init.sh +wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$INSTALL_SCRIPT_VERSION/vlb.sh +wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$INSTALL_SCRIPT_VERSION/dnsmembership.sh +wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$INSTALL_SCRIPT_VERSION/add_dns.sh +wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$INSTALL_SCRIPT_VERSION/remove_dns.sh +wget $REPO_URL_ARTIFACTS/org/openecomp/demo/vnf/vlb/dns-manager/$DEMO_ARTIFACTS_VERSION/dns-manager-$DEMO_ARTIFACTS_VERSION.jar +wget $REPO_URL_ARTIFACTS/org/openecomp/demo/vnf/ves/ves/$DEMO_ARTIFACTS_VERSION/ves-$DEMO_ARTIFACTS_VERSION-demo.tar.gz +wget $REPO_URL_ARTIFACTS/org/openecomp/demo/vnf/ves/ves_vlb_reporting/$DEMO_ARTIFACTS_VERSION/ves_vlb_reporting-$DEMO_ARTIFACTS_VERSION-demo.tar.gz + +tar -zxvf ves-$DEMO_ARTIFACTS_VERSION-demo.tar.gz +mv ves-$DEMO_ARTIFACTS_VERSION VES +tar -zxvf ves_vlb_reporting-$DEMO_ARTIFACTS_VERSION-demo.tar.gz +mv ves_vlb_reporting-$DEMO_ARTIFACTS_VERSION VESreporting_vLB + +mv VESreporting_vLB /opt/VES/code/evel_training/VESreporting +mv dns-manager-$DEMO_ARTIFACTS_VERSION.jar /opt/FDserver/dns-manager-$DEMO_ARTIFACTS_VERSION.jar +mv dnsmembership.sh /opt/FDserver/dnsmembership.sh +mv add_dns.sh /opt/FDserver/add_dns.sh +mv remove_dns.sh /opt/FDserver/remove_dns.sh +rm *.tar.gz + +chmod +x v_lb_init.sh +chmod +x vlb.sh +chmod +x /opt/VES/code/evel_training/VESreporting/go-client.sh +chmod +x /opt/FDserver/dnsmembership.sh +chmod +x /opt/FDserver/add_dns.sh +chmod +x /opt/FDserver/remove_dns.sh + +# Install VPP +export UBUNTU="trusty" +export RELEASE=".stable.1609" +rm /etc/apt/sources.list.d/99fd.io.list +echo "deb [trusted=yes] https://nexus.fd.io/content/repositories/fd.io$RELEASE.ubuntu.$UBUNTU.main/ ./" | sudo tee -a /etc/apt/sources.list.d/99fd.io.list +apt-get update +apt-get install -y vpp vpp-dpdk-dkms vpp-lib vpp-dbg vpp-plugins vpp-dev +sleep 1 + +# Install VES +cd /opt/VES/bldjobs/ +make clean +make +sleep 1 + +# Run instantiation script +cd /opt +mv vlb.sh /etc/init.d +update-rc.d vlb.sh defaults +./v_lb_init.sh \ No newline at end of file diff --git a/vnfs/vLB/scripts/v_packetgen_for_dns_demo_init.sh b/vnfs/vLB/scripts/v_packetgen_for_dns_demo_init.sh index 9078b7f5..0968b5fa 100644 --- a/vnfs/vLB/scripts/v_packetgen_for_dns_demo_init.sh +++ b/vnfs/vLB/scripts/v_packetgen_for_dns_demo_init.sh @@ -85,7 +85,7 @@ vppctl exec /opt/dns_streams/stream_dns10 sleep 1 # Start HoneyComb -VERSION=$(cat /opt/config/artifacts_version.txt) +VERSION=$(cat /opt/config/demo_artifacts_version.txt) echo "" > /var/lib/honeycomb/persist/context/data.json echo "" > /var/lib/honeycomb/persist/config/data.json /opt/honeycomb/sample-distribution-$VERSION/honeycomb &>/dev/null &disown diff --git a/vnfs/vLB/scripts/v_packetgen_install.sh b/vnfs/vLB/scripts/v_packetgen_install.sh new file mode 100644 index 00000000..bf08f63e --- /dev/null +++ b/vnfs/vLB/scripts/v_packetgen_install.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +REPO_URL_BLOB=$(cat /opt/config/repo_url_blob.txt) +REPO_URL_ARTIFACTS=$(cat /opt/config/repo_url_artifacts.txt) +DEMO_ARTIFACTS_VERSION=$(cat /opt/config/demo_artifacts_version.txt) +INSTALL_SCRIPT_VERSION=$(cat /opt/config/install_script_version.txt) +CLOUD_ENV=$(cat /opt/config/cloud_env.txt) + +# Download required dependencies +add-apt-repository -y ppa:openjdk-r/ppa +apt-get update +apt-get install -y make wget openjdk-8-jdk gcc libcurl4-openssl-dev python-pip bridge-utils apt-transport-https ca-certificates +pip install jsonschema + +# Download vFirewall demo code for packet generator +mkdir /opt/config +mkdir /opt/honeycomb +cd /opt +wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$INSTALL_SCRIPT_VERSION/v_packetgen_for_dns_demo_init.sh +wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$INSTALL_SCRIPT_VERSION/vpacketgenfordnsdemo.sh +wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$INSTALL_SCRIPT_VERSION/run_streams_dns.sh +wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$INSTALL_SCRIPT_VERSION/vdnspacketgen_change_streams_ports.sh +wget $REPO_URL_ARTIFACTS/org/openecomp/demo/vnf/sample-distribution/$DEMO_ARTIFACTS_VERSION/sample-distribution-$DEMO_ARTIFACTS_VERSION-hc.tar.gz +wget $REPO_URL_ARTIFACTS/org/openecomp/demo/vnf/vlb/vlb_dns_streams/$DEMO_ARTIFACTS_VERSION/vlb_dns_streams-$DEMO_ARTIFACTS_VERSION-demo.tar.gz + +tar -zxvf vpp.tar.gz +tar -zxvf sample-distribution-$DEMO_ARTIFACTS_VERSION-hc.tar.gz +mv sample-distribution-$DEMO_ARTIFACTS_VERSION honeycomb +sed -i 's/"restconf-binding-address": "127.0.0.1",/"restconf-binding-address": "0.0.0.0",/g' honeycomb/sample-distribution-$DEMO_ARTIFACTS_VERSION/config/honeycomb.json +tar -zxvf vlb_dns_streams-$DEMO_ARTIFACTS_VERSION-demo.tar.gz +mv vlb_dns_streams-$DEMO_ARTIFACTS_VERSION dns_streams +rm *.tar.gz +chmod +x v_packetgen_for_dns_demo_init.sh +chmod +x vpacketgenfordnsdemo.sh +chmod +x run_streams_dns.sh +chmod +x vdnspacketgen_change_streams_ports.sh + +# Install VPP +export UBUNTU="trusty" +export RELEASE=".stable.1609" +rm /etc/apt/sources.list.d/99fd.io.list +echo "deb [trusted=yes] https://nexus.fd.io/content/repositories/fd.io$RELEASE.ubuntu.$UBUNTU.main/ ./" | sudo tee -a /etc/apt/sources.list.d/99fd.io.list +apt-get update +apt-get install -y vpp vpp-dpdk-dkms vpp-lib vpp-dbg vpp-plugins vpp-dev +sleep 1 + +# Run instantiation script +cd /opt +mv vpacketgenfordnsdemo.sh /etc/init.d +update-rc.d vpacketgenfordnsdemo.sh defaults +./v_packetgen_for_dns_demo_init.sh -- 2.16.6