fix regex expression to find IPV4 address
[samplevnf.git] / VNFs / DPPD-PROX / helper-scripts / rapid / README
index 602346d..198b6db 100644 (file)
@@ -1,5 +1,5 @@
 ##
-## Copyright (c) 2010-2019 Intel Corporation
+## Copyright (c) 2010-2020 Intel Corporation
 ##
 ## Licensed under the Apache License, Version 2.0 (the "License");
 ## you may not use this file except in compliance with the License.
@@ -20,6 +20,8 @@ rapid (Rapid Automated Performance Indication for Dataplane)
 rapid is a set of files offering an easy way to do a sanity check of the
 dataplane performance of an OpenStack or container environment.
 
+Most of the information below is now available on wiki.opnfv.org/display/SAM/Rapid+scripting
+
 In case of OpenStack, copy the files in a directory on a machine that can run the OpenStack CLI
 commands and that can reach the networks to connect to the VMs.
 
@@ -31,37 +33,79 @@ The default name of the qcow2 file is rapidVM.qcow2
 When using the packer tool, the first step is to upload an
 existing CentOS cloud image from the internet into OpenStack.
 Check out: https://cloud.centos.org/centos/7/images/
-You should now source the proper .rc file so Packer can connect to your OpenStack.
+You should now create proper clouds.yaml file so Packer can connect to your OpenStack.
+Sample clouds.yaml could look like this:
+
+client:
+  force_ipv4: true
+clouds:
+  overcloud:
+    verify:    False
+    interface: "public"
+    auth:
+      username:         "admin"
+      password:         "your_password"
+      project_name:     "admin"
+      tenant_name:      "admin"
+      auth_url:         "https://192.168.1.1:5000/v3"
+      user_domain_name: "Default"
+      domain_name:      "Default"
+    identity_api_version: "3"
+
+Packer could be run from docker image, you will need to create following alias:
+
+alias packer='docker run -it --env OS_CLOUD=$OS_CLOUD -v "$PWD":/root/project -w /root/project hashicorp/packer:light $@'
+and make sure the OS_CLOUD variable is set to the correct cloud: in the clouds.yaml example above, you would first
+export OS_CLOUD=overcloud
+
 There are 2 files: centos.json and deploycentostools.sh, allowing you to create
 an image automatically. Run
   # packer build centos.json
-Edit centos.json to reflect the settings of your environment: The following fields need to
-be the ID's of your system:
-  - "source_image": Needs to be the id of the Centos cloud image
-  - "flavor": Needs to be the ID of the flavor existing in your OpenStack environment that will be used
+Edit centos.json to reflect the settings of your environment: The following fields need to populated
+with the values of your system:
+  - "source_image_name": Needs to be the name of the Centos cloud image
+  - "flavor": Needs to be the ID or name of the flavor existing in your OpenStack environment that will be used
     to start the VM in which we will install all tools
-  - "networks": ID of the network that will be used for the VM
-  - "use_floating_ip": true or false
-  - "floating_ip_pool": ID of the floating ip pool in case floating ip are being used
-  - "security_groups": ID of the security group being used
+  - "network_discovery_cidrs": Should contain the CIDR of the network you want to use e.g. "10.6.6.0/24"
+  - "floating_ip_network": ID or name of the floating ip network in case floating ip are being used
+  - "security_groups": ID or name of the security group being used
+
+Refer to Packer docs for more details:
+https://www.packer.io/docs/builders/openstack.html
 
 Note that this procedure is not only installing the necessary tools to run PROX,
 but also does some system optimizations (tuned). Check deploycentostools.sh for more details.
 
-Now you can run the createrapid.py file. Use help for more info on the usage:
-  # ./createrapid.py --help
-
-createrapid.py will use the OpenStack CLI to create the flavor, key-pair, network, image,
-servers, ...
-It will create a <STACK>.env file containing all info that will be used by runrapid.py
-to actually run the tests. Logging can be found in the CREATE<STACK>.log file
-You can use floating IP addresses by specifying the floating IP network
---floating_network NETWORK
-or directly connect through the INTERNAL_NETWORK by using the following parameter:
---floating_network NO
-/etc/resolv.conf will contain DNS info from the "best" interface. Since we are
-deploying VMs with multiple interface on different networks, this info might be
-taken from the "wrong" network (e.g. the dataplane network).
+Now you need to create a stack, that will deploy the PROX VMs using the PROX
+image built in the previous step. The stack needs to have an ouput section
+with the following outputs:
+outputs:
+  number_of_servers:
+    value: 
+      - <NUMBER_OF_SERVERS>   # A list of <NUMBER_OF_SERVERS>
+  server_name:
+    value: 
+      - - <SERVER_NAME>       # A list containing a list of <SERVER_NAME>
+  data_plane_ips:
+    value: 
+      - - <DATA_PLANE_IPS>    # A list containing a list of <DATA_PLANE_IPS>
+  data_plane_macs:
+    value: 
+      - - <DATA_PLANE_MACS>   # A list containing a list of <DATA_PLANE_MACS>
+  mngmt_ips:
+    value: 
+      - - <MNGMT_IP>          # A list containing a list of <MNGMT_IP>
+where
+    * <NUMBER_OF_SERVERS> is an int
+    * <SERVER_NAME> is a string
+    * <DATA_PLANE_IPS> is a list of strings
+    * <DATA_PLANE_MACS> is a list of strings
+    * <MNGMT_IP> is a string
+createrapid.py will take the input from config_file, to create an ssh keypair
+and stack (if not already existing). The tool will use the yaml files as
+specified in the config_file and create a <STACK>.env file, containing
+input used for runrapid.py.
 
 Now you can run the runrapid.py file. Use help for more info on the usage:
   # ./runrapid.py --help
@@ -86,8 +130,6 @@ openstack subnet create --network  fast-network  --subnet-range 20.20.20.0/24 --
 openstack port create --network fast-network --vnic-type direct --fixed-ip subnet=fast-subnet Port1
 openstack port create --network fast-network --vnic-type direct --fixed-ip subnet=fast-subnet Port2
 openstack port create --network fast-network --vnic-type direct --fixed-ip subnet=fast-subnet Port3
-Make sure to use the network and subnet in the createrapid parameters list. Port1, Port2 and Port3
-are being used in the *.env file.
 
 Note when doing tests using the gateway functionality on OVS:
 When a GW VM is sending packets on behalf of another VM (e.g. the generator), we need to make sure the OVS
@@ -102,9 +144,9 @@ neutron port-update xxxxxx --port_security_enabled=False
 
 An example of the env file generated by createrapid.py can be found below.
 Note that this file can be created manually in case the stack is created in a
-different way (not using the createrapid.py). This can be useful in case you are
-not using OpenStack as a VIM or when using special configurations that cannot be
-achieved using createrapid.py. Fields needed for runrapid are:
+different way than what is described in this text. This can be useful in case
+you are not using OpenStack as a VIM or when using special configurations that
+cannot be achieved using createrapid.py. Fields needed for runrapid are:
 * all info in the [Mx] sections
 * the key information in the [ssh] section
 * the total_number_of_vms information in the [rapid] section
@@ -117,32 +159,25 @@ total_number_of_machines = 3
 [M1]
 name = rapid-VM1
 admin_ip = 10.25.1.109
-dp_ip = 10.10.10.4
-dp_mac = fa:16:3e:25:be:25
+dp_ip1 = 10.10.10.4
+dp_mac1 = fa:16:3e:25:be:25
 
 [M2]
 name = rapid-VM2
 admin_ip = 10.25.1.110
-dp_ip = 10.10.10.7
-dp_mac = fa:16:3e:72:bf:e8
+dp_ip1 = 10.10.10.7
+dp_mac1 = fa:16:3e:72:bf:e8
 
 [M3]
 name = rapid-VM3
 admin_ip = 10.25.1.125
-dp_ip = 10.10.10.15
-dp_mac = fa:16:3e:69:f3:e7
+dp_ip1 = 10.10.10.15
+dp_mac1 = fa:16:3e:69:f3:e7
 
 [ssh]
-key = prox
+key = prox.pem
+user = centos
 
 [Varia]
 vim = OpenStack
 stack = rapid
-vms = rapidVMs.vms
-image = rapidVM
-image_file = rapidVM.qcow2
-dataplane_network = dataplane-network
-subnet = dpdk-subnet
-subnet_cidr = 10.10.10.0/24
-internal_network = admin_internal_net
-floating_network = admin_floating_net