+Apex
+~~~~
+
+Apex installer uses CentOS as the platform.
+
+**1 Install Packages :**
+
+Install necessary packages by following:
+
+.. code:: bash
+
+ cd ~
+ yum install –y git rpm-build python-setuptools python-setuptools-devel
+ yum install –y epel-release gcc
+ curl -O https://bootstrap.pypa.io/get-pip.py
+ um install –y python3 python34
+ /usr/bin/python3.4 get-pip.py
+ yum install –y python34-devel python34-setuptools
+ yum install –y libffi-devel python-devel openssl-devel
+ yum -y install libxslt-devel libxml2-devel
+
+Then you can use “dev_deploy_check.sh“ in Apex installer source to install the remaining necessary
+packages by following:
+
+.. code:: bash
+
+ cd ~
+ git clone https://gerrit.opnfv.org/gerrit/p/apex.git
+ export CONFIG=$(pwd)/apex/build
+ export LIB=$(pwd)/apex/lib
+ export PYTHONPATH=$PYTHONPATH:$(pwd)/apex/lib/python
+ cd ci
+ ./dev_deploy_check.sh
+ yum install –y python2-oslo-config python2-debtcollector
+
+
+**2 Create ssh key :**
+
+Use following commands to create ssh key, when asked for passphrase, just enter return for empty
+passphrase:
+
+.. code:: bash
+
+ cd ~
+ ssh-keygen -t rsa
+
+Then prepare the authorized_keys for Apex scenario deployment:
+
+.. code:: bash
+
+ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
+
+**3 Create default pool :**
+
+Use following command to default pool device:
+
+.. code:: bash
+
+ cd ~
+ virsh pool-define /dev/stdin <<EOF
+ <pool type='dir'>
+ <name>default</name>
+ <target>
+ <path>/var/lib/libvirt/images</path>
+ </target>
+ </pool>
+ EOF
+
+Use following commands to start and set autostart the default pool device:
+
+.. code:: bash
+
+ virsh pool-start default
+ virsh pool-autostart default
+
+Use following commands to verify the success of the creation of the default pool device and starting
+and setting autostart of the default pool device:
+
+.. code:: bash
+
+ virsh pool-list
+ virsh pool-info default
+
+**4 Get Apex source code :**
+
+Get Apex installer source code:
+
+.. code:: bash
+
+ git clone https://gerrit.opnfv.org/gerrit/p/apex.git
+ cd apex
+
+**5 Modify code to work behind proxy :**
+
+In “lib” sub-directory of Apex source, change line 284 “if ping -c 2 www.google.com > /dev/null;
+then” to “if curl www.google.com > /dev/null; then” in “common-functions.sh” file, since we can’t
+ping www.google.com behind Intel proxy.
+
+**6 Setup build environment :**
+
+Setup build environment by:
+
+.. code:: bash
+
+ cd ~
+ export BASE=$(pwd)/apex/build
+ export LIB=$(pwd)/apex/lib
+ export PYTHONPATH=$PYTHONPATH:$(pwd)/apex/lib/python
+ export IMAGES=$(pwd)/apex/.build
+
+**7 Build Apex installer :**
+
+Build undercloud image by:
+
+.. code:: bash
+
+ cd ~/apex/build
+ make images-clean
+ make undercloud
+
+You can look at the targets in ~/apex/build/Makefile to build image for specific feature.
+Following show how to build vanilla ODL image (this can be used to build the overcloud image for
+basic (nosdn-nofeature) and opendaylight test scenario:
+
+.. code:: bash
+
+ cd ~/apex/build
+ make overcloud-opendaylight
+
+You can build the complete full set of images (undercloud, overcloud-full, overcloud-opendaylight,
+overcloud-onos) by:
+
+.. code:: bash
+
+ cd ~/apex/build
+ make images
+
+**8 Modification of network_settings.yaml :**
+
+Since we are working behind proxy, we need to modify the network_settings.yaml in ~/apex/config/network
+to make the deployment work properly. In order to avoid checking our modification into the repo
+accidentally, it is recommend that you copy “network_settings.yaml” to “intc_network_settings.yaml”
+in the ~/apex/config/network and do following modification in intc_network_settings.yaml:
+
+Change dns_nameservers settings from
+
+.. code:: bash
+
+ dns_servers: ["8.8.8.8", "8.8.4.4"]
+to
+
+.. code:: bash
+
+ dns_servers: ["<ip-address>"]
+
+Also, you need to modify deploy.sh in apex/ci from “ntp_server="pool.ntp.org"” to
+“ntp_server="<ip-address>"” to reflect that fact we couldn’t reach outside NTP server, just use
+local time.
+
+**9 Commands to deploy scenario :**
+
+Following shows the commands used to deploy os-nosdn-kvm_ovs_dpdk-noha scenario behind the proxy:
+
+.. code:: bash
+
+ cd ~/apex/ci
+ ./clean.sh
+ ./dev_deploy_check.sh
+ ./deploy.sh -v --ping-site <ping_ip-address> --dnslookup-site <dns_ip-address> -n \
+ ~/apex/config/network/intc_network_settings.yaml -d \
+ ~/apex/config/deploy/os-nosdn-kvm_ovs_dpdk-noha.yaml
+
+**10 Accessing the Overcloud dashboard :**
+
+If the deployment completes successfully, the last few output lines from the deployment will look
+like the following:
+
+.. code:: bash
+
+ INFO: Undercloud VM has been setup to NAT Overcloud public network
+ Undercloud IP: <ip-address>, please connect by doing 'opnfv-util undercloud'
+ Overcloud dashboard available at http://<ip-address>/dashboard
+ INFO: Post Install Configuration Complete
+
+**11 Accessing the Undercloud and Overcloud through command line :**
+
+At the end of the deployment we obtain the Undercloud ip. One can login to the Undercloud and obtain
+the Overcloud ip as follows:
+
+.. code:: bash
+
+ cd ~/apex/ci/
+ ./util.sh undercloud
+ source stackrc
+ nova list
+ ssh heat-admin@<overcloud-ip>
+