diff options
Diffstat (limited to 'docs/release/installation')
-rw-r--r-- | docs/release/installation/bmdeploy.rst | 558 | ||||
-rw-r--r-- | docs/release/installation/configure-network.rst | 107 | ||||
-rw-r--r-- | docs/release/installation/expansion.rst | 157 | ||||
-rw-r--r-- | docs/release/installation/featureTable.rst | 51 | ||||
-rw-r--r-- | docs/release/installation/index.rst | 20 | ||||
-rw-r--r-- | docs/release/installation/installation.rst | 163 | ||||
-rw-r--r-- | docs/release/installation/introduction.rst | 38 | ||||
-rw-r--r-- | docs/release/installation/offline-deploy.rst | 47 | ||||
-rw-r--r-- | docs/release/installation/postinstall.rst | 32 | ||||
-rw-r--r-- | docs/release/installation/preconditions.rst | 163 | ||||
-rw-r--r-- | docs/release/installation/references.rst | 34 | ||||
-rw-r--r-- | docs/release/installation/vmdeploy.rst | 231 |
12 files changed, 1601 insertions, 0 deletions
diff --git a/docs/release/installation/bmdeploy.rst b/docs/release/installation/bmdeploy.rst new file mode 100644 index 00000000..43f08370 --- /dev/null +++ b/docs/release/installation/bmdeploy.rst @@ -0,0 +1,558 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) by Weidong Shao (HUAWEI) and Justin Chi (HUAWEI) + +Installation on Bare Metal +========================== + +Nodes Configuration (Bare Metal Deployment) +------------------------------------------- + +The below file is the inventory template of deployment nodes: + +"compass4nfv/deploy/conf/hardware_environment/huawei-pod1/dha.yml" + +The "dha.yml" is a collectively name for "os-nosdn-nofeature-ha.yml +os-ocl-nofeature-ha.yml os-odl_l2-moon-ha.yml etc". + +You can write your own IPMI IP/User/Password/Mac address/roles reference to it. + + - name -- Host name for deployment node after installation. + + - ipmiVer -- IPMI interface version for deployment node support. IPMI 1.0 + or IPMI 2.0 is available. + + - ipmiIP -- IPMI IP address for deployment node. Make sure it can access + from Jumphost. + + - ipmiUser -- IPMI Username for deployment node. + + - ipmiPass -- IPMI Password for deployment node. + + - mac -- MAC Address of deployment node PXE NIC. + + - interfaces -- Host NIC renamed according to NIC MAC addresses when OS provisioning. + + - roles -- Components deployed. + +**Set TYPE/FLAVOR and POWER TOOL** + +E.g. +.. code-block:: yaml + + TYPE: baremetal + FLAVOR: cluster + POWER_TOOL: ipmitool + +**Set ipmiUser/ipmiPass and ipmiVer** + +E.g. + +.. code-block:: yaml + + ipmiUser: USER + ipmiPass: PASSWORD + ipmiVer: '2.0' + +**Assignment of different roles to servers** + +E.g. Openstack only deployment roles setting + +.. code-block:: yaml + + hosts: + - name: host1 + mac: 'F8:4A:BF:55:A2:8D' + interfaces: + - eth1: 'F8:4A:BF:55:A2:8E' + ipmiIp: 172.16.130.26 + roles: + - controller + - ha + + - name: host2 + mac: 'D8:49:0B:DA:5A:B7' + interfaces: + - eth1: 'D8:49:0B:DA:5A:B8' + ipmiIp: 172.16.130.27 + roles: + - compute + +NOTE: +THE 'ha' role MUST BE SELECT WITH CONTROLLERS, EVEN THERE IS ONLY ONE CONTROLLER NODE. + +E.g. Openstack and ceph deployment roles setting + +.. code-block:: yaml + + hosts: + - name: host1 + mac: 'F8:4A:BF:55:A2:8D' + interfaces: + - eth1: 'F8:4A:BF:55:A2:8E' + ipmiIp: 172.16.130.26 + roles: + - controller + - ha + - ceph-adm + - ceph-mon + + - name: host2 + mac: 'D8:49:0B:DA:5A:B7' + interfaces: + - eth1: 'D8:49:0B:DA:5A:B8' + ipmiIp: 172.16.130.27 + roles: + - compute + - ceph-osd + +E.g. Openstack and ODL deployment roles setting + +.. code-block:: yaml + + hosts: + - name: host1 + mac: 'F8:4A:BF:55:A2:8D' + interfaces: + - eth1: 'F8:4A:BF:55:A2:8E' + ipmiIp: 172.16.130.26 + roles: + - controller + - ha + - odl + + - name: host2 + mac: 'D8:49:0B:DA:5A:B7' + interfaces: + - eth1: 'D8:49:0B:DA:5A:B8' + ipmiIp: 172.16.130.27 + roles: + - compute + +E.g. Openstack and ONOS deployment roles setting + +.. code-block:: yaml + + hosts: + - name: host1 + mac: 'F8:4A:BF:55:A2:8D' + interfaces: + - eth1: 'F8:4A:BF:55:A2:8E' + ipmiIp: 172.16.130.26 + roles: + - controller + - ha + - onos + + - name: host2 + mac: 'D8:49:0B:DA:5A:B7' + interfaces: + - eth1: 'D8:49:0B:DA:5A:B8' + ipmiIp: 172.16.130.27 + roles: + - compute + +Network Configuration (Bare Metal Deployment) +--------------------------------------------- + +Before deployment, there are some network configuration to be checked based +on your network topology.Compass4nfv network default configuration file is +"compass4nfv/deploy/conf/hardware_environment/huawei-pod1/network.yml". +This file is an example, you can customize by yourself according to specific network +environment. + +In this network.yml, there are several config sections listed following(corresponed to the +ordre of the config file): + +Provider Mapping +~~~~~~~~~~~~~~~~ + + - name -- provider network name. + + - network -- default as physnet, do not change it. + + - interfaces -- the NIC or Bridge attached by the Network. + + - type -- the type of the NIC or Bridge(vlan for NIC and ovs for Bridge, either). + + - roles -- all the possible roles of the host machines which connected by this + network(mostly put both controller and compute). + +System Interface +~~~~~~~~~~~~~~~~ + + - name -- Network name. + + - interfaces -- the NIC or Bridge attached by the Network. + + - vlan_tag -- if type is vlan, add this tag before 'type' tag. + + - type -- the type of the NIC or Bridge(vlan for NIC and ovs for Bridge, either). + + - roles -- all the possible roles of the host machines which connected by this + network(mostly put both controller and compute). + +IP Settings +~~~~~~~~~~~ + + - name -- network name corresponding the the network name in System Interface section one by one. + + - ip_ranges -- ip addresses range provided for this network. + + - cidr -- the IPv4 address and its associated routing prefix and subnet maskã + + - gw -- need to add this line only if network is external. + + - roles -- all the possible roles of the host machines which connected by this + network(mostly put both controller and compute). + +Internal VIP(virtual or proxy IP) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + - ip -- virtual or proxy ip address, must be in the same subnet with mgmt network + but must not be in the range of mgmt network. + + - netmask -- the length of netmask + + - interface -- mostly mgmt. + +Public VIP +~~~~~~~~~~ + + - ip -- virtual or proxy ip address, must be in the same subnet with external + network but must not be in the range of external network. + + - netmask -- the length of netmask + + - interface -- mostly external. + +ONOS NIC +~~~~~~~~ + + - the NIC for ONOS, if there is no ONOS configured, leave it unchanged. + + +Public Network +~~~~~~~~~~~~~~ + + - enable -- must be True(if False, you need to set up provider network manually). + + - network -- leave it ext-net. + + - type -- the type of the ext-net above, such as flat or vlan. + + - segment_id -- when the type is vlan, this should be id of vlan. + + - subnet -- leave it ext-subnet. + + - provider_network -- leave it physnet. + + - router -- leave it router-ext. + + - enable_dhcp -- must be False. + + - no_gateway -- must be False. + + - external_gw -- same as gw in ip_settings. + + - floating_ip_cidr -- cidr for floating ip, see explanation in ip_settings. + + - floating_ip_start -- define range of floating ip with floating_ip_end(this + defined range must not be included in ip range of external configured in + ip_settings section). + + - floating_ip_end -- define range of floating ip with floating_ip_start. + + +**The following figure shows the default network configuration.** + +.. code-block:: console + + + +--+ +--+ +--+ + | | | | | | + | | +------------+ | | | | + | +------+ Jumphost +------+ | | | + | | +------+-----+ | | | | + | | | | | | | + | | +------------+ +-----+ | + | | | | | | + | | +------------+ | | | | + | +------+ host1 +------+ | | | + | | +------+-----+ | | | | + | | | | | | | + | | +------------+ +-----+ | + | | | | | | + | | +------------+ | | | | + | +------+ host2 +------+ | | | + | | +------+-----+ | | | | + | | | | | | | + | | +------------+ +-----+ | + | | | | | | + | | +------------+ | | | | + | +------+ host3 +------+ | | | + | | +------+-----+ | | | | + | | | | | | | + | | +------------+ +-----+ | + | | | | | | + | | | | | | + +-++ ++-+ +-++ + ^ ^ ^ + | | | + | | | + +-+-------------------------+ | | + | External Network | | | + +---------------------------+ | | + +-----------------------+---+ | + | IPMI Network | | + +---------------------------+ | + +-------------------------+-+ + | PXE(Installation) Network | + +---------------------------+ + + + + +**The following figure shows the interfaces and nics of JumpHost and deployment nodes in +huawei-pod1 network configuration(default one nic for openstack networks).** + +.. code-block:: console + + + +--------------JumpHost-------------+ + | | + | +-+Compass+-+ | + | | + +--------+ | External-network + | | eth2+---+br-ext +-+eth0+----------------------+ + | | + +--------+ | | + | | | | | + | | | | | + | | + +--------+ | Install-network | + | | eth1+---+install +-+eth1+-----------------+ | + | | + +--------+ | | | + | | | | | | + | | | | | | + | | + | IPMI-network | | + | | eth0 eth2+-----------+ | | + | | + | | | | + | +---+VM+----+ | | | | + +-----------------------------------+ | | | + | | | + | | | + | | | + | | | + +---------------Host1---------------+ | | | + | | | | | + | eth0+----------------+ | + | | | | | + | mgmt +--------+ | | | | + | | | | | | + | +-----------+ | | | | | + | external+----+ br-prv +----+eth1+---------------------+ + | +-----------+ | | | | | + | | | | | | + | storage +-----+ | | | | + | | | | | + +-----------------------------------+ | | | + | IPMI+-----------+ | | + +-----------------------------------+ | | | + | | | + | | | + | | | + +---------------Host2---------------+ | | | + | | | | | + | eth0+----------------+ | + | | | | + | mgmt +--------+ | | | + | | | | | + | +-----------+ | | | | + | external+----+ br-prv +----+eth1+---------------------+ + | +-----------+ | | | + | | | | + | storage +-----+ | | + | | | + +-----------------------------------+ | + | IPMI+-----------+ + +-----------------------------------+ + +**The following figure shows the interfaces and nics of JumpHost and deployment nodes in +intel-pod8 network configuration(openstack networks are seperated by multiple NICs).** + +.. code-block:: console + + + +-------------+JumpHost+------------+ + | | + | +-+Compass+-+ | + | | + +--------+ | External-network + | | eth2+---+br-ext +-+eth0+----------------------+ + | | + +--------+ | | + | | | | | + | | | | | + | | + +--------+ | Install-network | + | | eth1+---+install +-+eth1+-----------------+ | + | | + +--------+ | | | + | | | | | | + | | | | | | + | | + | IPMI-network | | + | | eth0 eth2+-----------+ | | + | | + | | | | + | +---+VM+----+ | | | | + +-----------------------------------+ | | | + | | | + | | | + | | | + | | | + +--------------+Host1+--------------+ | | | + | | | | | + | eth0+----------------+ | + | | | | | + | +--------+ | | | | + | external+----+br-prv +-+eth1+---------------------+ + | +--------+ | | | | + | storage +---------------+eth2+-------------------------+ + | | | | | | + | Mgmt +---------------+eth3+----------------------------+ + | | | | | | | + | | | | | | | + +-----------------------------------+ | | | | | + | IPMI+-----------+ | | | | + +-----------------------------------+ | | | | | + | | | | | + | | | | | + | | | | | + | | | | | + +--------------+Host2+--------------+ | | | | | + | | | | | | | + | eth0+----------------+ | | | + | | | | | | + | +--------+ | | | | | + | external+----+br-prv +-+eth1+---------------------+ | | + | +--------+ | | | | + | storage +---------------+eth2+-------------------------+ | + | | | storage-network | + | Mgmt +---------------+eth3+----------------------------+ + | | | mgmt-network + | | | + +-----------------------------------+ | + | IPMI+-----------+ + +-----------------------------------+ + + +Start Deployment (Bare Metal Deployment) +---------------------------------------- + +1. Edit deploy.sh + +1.1. Set OS version for deployment nodes. + Compass4nfv supports ubuntu and centos based openstack newton. + +E.g. + +.. code-block:: bash + + # Set OS version for target hosts + # Ubuntu16.04 or CentOS7 + export OS_VERSION=xenial + or + export OS_VERSION=centos7 + +1.2. Set ISO image corresponding to your code + +E.g. + +.. code-block:: bash + + # Set ISO image corresponding to your code + export ISO_URL=file:///home/compass/compass4nfv.iso + +1.3. Set hardware deploy jumpserver PXE NIC. (set eth1 E.g.) + You do not need to set it when virtual deploy. + +E.g. + +.. code-block:: bash + + # Set hardware deploy jumpserver PXE NIC + # you need to comment out it when virtual deploy + export INSTALL_NIC=eth1 + +1.4. Set scenario that you want to deploy + +E.g. + +nosdn-nofeature scenario deploy sample + +.. code-block:: bash + + # DHA is your dha.yml's path + export DHA=./deploy/conf/hardware_environment/huawei-pod1/os-nosdn-nofeature-ha.yml + + # NETWORK is your network.yml's path + export NETWORK=./deploy/conf/hardware_environment/huawei-pod1/network.yml + +ocl-nofeature scenario deploy sample + +.. code-block:: bash + + # DHA is your dha.yml's path + export DHA=./deploy/conf/hardware_environment/huawei-pod1/os-ocl-nofeature-ha.yml + + # NETWORK is your network.yml's path + export NETWORK=./deploy/conf/hardware_environment/huawei-pod1/network_ocl.yml + +odl_l2-moon scenario deploy sample + +.. code-block:: bash + + # DHA is your dha.yml's path + export DHA=./deploy/conf/hardware_environment/huawei-pod1/os-odl_l2-moon-ha.yml + + # NETWORK is your network.yml's path + export NETWORK=./deploy/conf/hardware_environment/huawei-pod1/network.yml + +odl_l2-nofeature scenario deploy sample + +.. code-block:: bash + + # DHA is your dha.yml's path + export DHA=./deploy/conf/hardware_environment/huawei-pod1/os-odl_l2-nofeature-ha.yml + + # NETWORK is your network.yml's path + export NETWORK=./deploy/conf/hardware_environment/huawei-pod1/network.yml + +odl_l3-nofeature scenario deploy sample + +.. code-block:: bash + + # DHA is your dha.yml's path + export DHA=./deploy/conf/hardware_environment/huawei-pod1/os-odl_l3-nofeature-ha.yml + + # NETWORK is your network.yml's path + export NETWORK=./deploy/conf/hardware_environment/huawei-pod1/network.yml + +onos-nofeature scenario deploy sample + +.. code-block:: bash + + # DHA is your dha.yml's path + export DHA=./deploy/conf/hardware_environment/huawei-pod1/os-onos-nofeature-ha.yml + + # NETWORK is your network.yml's path + export NETWORK=./deploy/conf/hardware_environment/huawei-pod1/network_onos.yml + +onos-sfc deploy scenario sample + +.. code-block:: bash + + # DHA is your dha.yml's path + export DHA=./deploy/conf/hardware_environment/huawei-pod1/os-onos-sfc-ha.yml + + # NETWORK is your network.yml's path + export NETWORK=./deploy/conf/hardware_environment/huawei-pod1/network_onos.yml + +2. Run ``deploy.sh`` + +.. code-block:: bash + + ./deploy.sh diff --git a/docs/release/installation/configure-network.rst b/docs/release/installation/configure-network.rst new file mode 100644 index 00000000..2303be45 --- /dev/null +++ b/docs/release/installation/configure-network.rst @@ -0,0 +1,107 @@ +Configure network +================= +network_cfg.yaml file describes networks configuration for openstack on hosts. It +specifies host network mapping and ip assignment of networks to be installed on hosts. +Compass4nfv includes a sample network_cfg.yaml under +``compass4nfv/deploy/conf/network_cfg.yaml`` + +There are three openstack networks to be installed: external, mgmt and storage. These +three networks can be shared on one physical nic or on separate nics (multi-nic). The +sample included in compass4nfv uses one nic. For multi-nic configuration, see multi-nic +configuration. + +Configure openstack network +--------------------------- + +****! All interface name in network_cfg.yaml must be identified in dha file by mac address !**** + +Compass4nfv will install networks on host as described in this configuration. It will look +for physical nic on host by **mac address** from dha file and rename nic to the name with +that mac address. Therefore, any network interface name that is not identified by mac +address in dha file will not be installed correctly as compass4nfv cannot find the nic. + +**Configure provider network** + +.. code-block:: yaml + + provider_net_mappings: + - name: br-prv + network: physnet + interface: eth1 + type: ovs + role: + - controller + - compute + +The external nic in dha file must be named ``eth1`` with mac address. If user uses a +different interface name in dha file, change ``eth1`` to that name here. +Note: User cannot use eth0 for external interface name as install/pxe network is named as +such. + +**Configure openstack mgmt&storage network**: + +.. code-block:: yaml + + sys_intf_mappings: + - name: mgmt + interface: eth1 + vlan_tag: 101 + type: vlan + role: + - controller + - compute + - name: storage + interface: eth1 + vlan_tag: 102 + type: vlan + role: + - controller + - compute + +Change ``vlan_tag`` of ``mgmt`` and ``storage`` to corresponding vlan tag configured on +switch. + +**Note**: for virtual deployment, there is no need to modify mgmt&storage network. + +If using multi-nic feature, i.e, separate nic for mgmt or storage network, user needs to +change ``name`` to desired nic name (need to match dha file). Please see multi-nic +configuration. + +Assign IP address to networks +----------------------------------------- + +``ip_settings`` section specifics ip assignment for openstack networks. + +User can use default ip range for mgmt&storage network. + +for external networks: + +.. code-block:: yaml + + - name: external + ip_ranges: + - - "192.168.50.210" + - "192.168.50.220" + cidr: "192.168.50.0/24" + gw: "192.168.50.1" + role: + - controller + - compute + +Provide at least number of hosts available ip for external IP range(these ips will be +assigned to each host). Provide actual cidr and gateway in ``cidr`` and ``gw`` fields. + +**configure public IP for horizon dashboard** + +.. code-block:: yaml + + public_vip: + ip: 192.168.50.240 + netmask: "24" + interface: external + +Provide an external ip in ``ip`` field. This ip cannot be within the ip range assigned to +external network configured in pervious section. It will be used for horizon address. + +See section 6.2 (Vitual) and 7.2 (BareMetal) for graphs illustrating network topology. + diff --git a/docs/release/installation/expansion.rst b/docs/release/installation/expansion.rst new file mode 100644 index 00000000..df0edb2d --- /dev/null +++ b/docs/release/installation/expansion.rst @@ -0,0 +1,157 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) by Weidong Shao (HUAWEI) and Justin Chi (HUAWEI) + +Expansion Guide +=============== + +Edit NETWORK File +----------------- + +The below file is the inventory template of deployment nodes: + + "./deploy/conf/hardware_environment/huawei-pod1/network.yml" + +You can edit the network.yml which you had edited before the first deployment. + +NOTE: +External subnet's ip_range should be changed as the first 6 IPs are already taken +by the first deployment. + +Edit DHA File +------------- + +The below file is the inventory template of deployment nodes: + +"./deploy/conf/hardware_environment/expansion-sample/hardware_cluster_expansion.yml" + +You can write your own IPMI IP/User/Password/Mac address/roles reference to it. + + - name -- Host name for deployment node after installation. + + - ipmiIP -- IPMI IP address for deployment node. Make sure it can access + from Jumphost. + + - ipmiUser -- IPMI Username for deployment node. + + - ipmiPass -- IPMI Password for deployment node. + + - mac -- MAC Address of deployment node PXE NIC . + +**Set TYPE/FLAVOR and POWER TOOL** + +E.g. + +.. code-block:: yaml + + TYPE: baremetal + FLAVOR: cluster + POWER_TOOL: ipmitool + +**Set ipmiUser/ipmiPass and ipmiVer** + +E.g. + +.. code-block:: yaml + + ipmiUser: USER + ipmiPass: PASSWORD + ipmiVer: '2.0' + +**Assignment of roles to servers** + +E.g. Only increase one compute node + +.. code-block:: yaml + + hosts: + - name: host6 + mac: 'E8:4D:D0:BA:60:45' + interfaces: + - eth1: '08:4D:D0:BA:60:44' + ipmiIp: 172.16.131.23 + roles: + - compute + + +E.g. Increase two compute nodes + +.. code-block:: yaml + + hosts: + - name: host6 + mac: 'E8:4D:D0:BA:60:45' + interfaces: + - eth1: '08:4D:D0:BA:60:44' + ipmiIp: 172.16.131.23 + roles: + - compute + + - name: host6 + mac: 'E8:4D:D0:BA:60:78' + interfaces: + - eth1: '08:4D:56:BA:60:83' + ipmiIp: 172.16.131.23 + roles: + - compute + +Start Expansion +~~~~~~~~~~~~~~~ + +1. Edit network.yml and dha.yml file + + You need to Edit network.yml and virtual_cluster_expansion.yml or + hardware_cluster_expansion.yml. Edit the DHA and NETWORK envionment variables. + External subnet's ip_range and management ip should be changed as the first 6 + IPs are already taken by the first deployment. + +E.g. + +.. code-block:: bash + + --- network.yml 2017-02-16 20:07:10.097878150 +0800 + +++ network_expansion.yml 2017-02-17 11:40:08.734480478 +0800 + @@ -56,7 +56,7 @@ + - name: external + ip_ranges: + - - - "192.168.116.201" + + - - "192.168.116.206" + - "192.168.116.221" + cidr: "192.168.116.0/24" + gw: "192.168.116.1" + +2. Edit deploy.sh + +2.1. Set EXPANSION and VIRT_NUMBER. + VIRT_NUMBER decide how many virtual machines needs to expand when virtual expansion + +E.g. + +.. code-block:: bash + + export EXPANSION="true" + export MANAGEMENT_IP_START="10.1.0.55" + export VIRT_NUMBER=1 + export DEPLOY_FIRST_TIME="false" + + +2.2. Set scenario that you need to expansion + +E.g. + +.. code-block:: bash + + # DHA is your dha.yml's path + export DHA=./deploy/conf/hardware_environment/expansion-sample/hardware_cluster_expansion.yml + + # NETWORK is your network.yml's path + export NETWORK=./deploy/conf/hardware_environment/huawei-pod1/network.yml + +Note: Other environment variable shoud be same as your first deployment. + Please check the environment variable before you run deploy.sh. + +2. Run ``deploy.sh`` + +.. code-block:: bash + + ./deploy.sh diff --git a/docs/release/installation/featureTable.rst b/docs/release/installation/featureTable.rst new file mode 100644 index 00000000..e5ad9776 --- /dev/null +++ b/docs/release/installation/featureTable.rst @@ -0,0 +1,51 @@ +Features +======== + +Supported Openstack Version and OS +---------------------------------- + ++---------------+----------+-----------+-----------+-----------+ +| | OS | OpenStack | OpenStack | OpenStack | +| | only | Liberty | Mitaka | Newton | ++---------------+----------+-----------+-----------+-----------+ +| CentOS 7 | yes | yes | yes | yes | ++---------------+----------+-----------+-----------+-----------+ +| Ubuntu trusty | yes | yes | yes | no | ++---------------+----------+-----------+-----------+-----------+ +| Ubuntu xenial | yes | no | yes | yes | ++---------------+----------+-----------+-----------+-----------+ + + +Supported Openstack Flavor and Features +--------------------------------------- + ++---------------+--------------+--------------+---------------+ +| | OpenStack | OpenStack | OpenStack | +| | Liberty | Mitaka | Newton | ++---------------+--------------+--------------+---------------+ +| Virtual | Yes | Yes | Yes | +| Deployment | | | | ++---------------+--------------+--------------+---------------+ +| Baremetal | Yes | Yes | Yes | +| Deployment | | | | ++---------------+--------------+--------------+---------------+ +| HA | Yes | Yes | Yes | +| | | | | ++---------------+--------------+--------------+---------------+ +| Ceph | Yes | Yes | Yes | +| | | | | ++---------------+--------------+--------------+---------------+ +| SDN | Yes | Yes | Yes* | +| ODL/ONOS | | | | ++---------------+--------------+--------------+---------------+ +| Compute Node | Yes | Yes | Yes | +| Expansion | | | | ++---------------+--------------+--------------+---------------+ +| Multi-Nic | Yes | Yes | Yes | +| Support | | | | ++---------------+--------------+--------------+---------------+ +| Boot | Yes | Yes | Yes | +| Recovery | | | | ++---------------+--------------+--------------+---------------+ + +* ONOS support will Release in Danube 2.0 or 3.0 diff --git a/docs/release/installation/index.rst b/docs/release/installation/index.rst new file mode 100644 index 00000000..85805d64 --- /dev/null +++ b/docs/release/installation/index.rst @@ -0,0 +1,20 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +===================================== +Compass4nfv Installation Instructions +===================================== + +.. toctree:: + :numbered: + :maxdepth: 4 + + introduction.rst + featureTable.rst + preconditions.rst + configure-network.rst + bmdeploy.rst + vmdeploy.rst + offline-deploy.rst + expansion.rst + references.rst diff --git a/docs/release/installation/installation.rst b/docs/release/installation/installation.rst new file mode 100644 index 00000000..18bac119 --- /dev/null +++ b/docs/release/installation/installation.rst @@ -0,0 +1,163 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) by Weidong Shao (HUAWEI) and Justin Chi (HUAWEI) + +Compass4nfv configuration +========================= + +This document describes providing guidelines on how to install and +configure the Danube release of OPNFV when using Compass as a +deployment tool including required software and hardware +configurations. + +Installation and configuration of host OS, OpenStack, OpenDaylight, +ONOS, Ceph etc. can be supported by Compass on Virtual nodes or Bare Metal +nodes. + +The audience of this document is assumed to have good knowledge in +networking and Unix/Linux administration. + + +Preconditions +------------- + +Before starting the installation of the Danube release of OPNFV, +some planning must be done. + + +Retrieving the installation ISO image +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +First of all, The installation ISO is needed for deploying your OPNFV +environment, it included packages of Compass, OpenStack, OpenDaylight, ONOS +and so on. + +The stable release ISO can be retrieved via `OPNFV software download page <https://www.opnfv.org/software>`_ + +The daily build ISO can be retrieved via OPNFV artifacts repository: + +http://artifacts.opnfv.org/compass4nfv.html + +NOTE: Search the keyword "compass4nfv/Danube" to locate the ISO image. + +E.g. +compass4nfv/Danube/opnfv-2016-09-18_08-15-13.iso + +The name of iso image includes the time of iso building, you can get the daily +ISO according the building time. +The git url and sha1 of Compass4nfv are recorded in properties files, +According these, the corresponding deployment scripts can be retrieved. + + +Getting the deployment scripts +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To retrieve the repository of Compass4nfv on Jumphost use the following command: + +- git clone https://gerrit.opnfv.org/gerrit/compass4nfv + +NOTE: PLEASE DO NOT GIT CLONE COMPASS4NFV IN ROOT DIRECTORY(INCLUDE SUBFOLDERS). + +To get stable /Danube release, you can use the following command: + +- git checkout Danube.1.0 + +Setup Requirements +------------------ + +If you have only 1 Bare Metal server, Virtual deployment is recommended. if more +than or equal 3 servers, the Bare Metal deployment is recommended. The minimum number of +servers for Bare metal deployment is 3, 1 for JumpServer(Jumphost), 1 for controller, +1 for compute. + + +Jumphost Requirements +~~~~~~~~~~~~~~~~~~~~~ + +The Jumphost requirements are outlined below: + +1. Ubuntu 14.04 (Pre-installed). + +2. Root access. + +3. libvirt virtualization support. + +4. Minimum 2 NICs. + + - PXE installation Network (Receiving PXE request from nodes and providing OS provisioning) + + - IPMI Network (Nodes power control and set boot PXE first via IPMI interface) + + - External Network (Optional: Internet access) + +5. 16 GB of RAM for a Bare Metal deployment, 64 GB of RAM for a Virtual deployment. + +6. CPU cores: 32, Memory: 64 GB, Hard Disk: 500 GB, (Virtual Deployment needs 1 TB Hard Disk) + + +Bare Metal Node Requirements +---------------------------- + +Bare Metal nodes require: + +1. IPMI enabled on OOB interface for power control. + +2. BIOS boot priority should be PXE first then local hard disk. + +3. Minimum 3 NICs. + + - PXE installation Network (Broadcasting PXE request) + + - IPMI Network (Receiving IPMI command from Jumphost) + + - External Network (OpenStack mgmt/external/storage/tenant network) + + +Network Requirements +-------------------- + +Network requirements include: + +1. No DHCP or TFTP server running on networks used by OPNFV. + +2. 2-6 separate networks with connectivity between Jumphost and nodes. + + - PXE installation Network + + - IPMI Network + + - Openstack mgmt Network* + + - Openstack external Network* + + - Openstack tenant Network* + + - Openstack storage Network* + +3. Lights out OOB network access from Jumphost with IPMI node enabled (Bare Metal deployment only). + +4. External network has Internet access, meaning a gateway and DNS availability. + +**The networks with(*) can be share one NIC(Default configuration) or use an exclusive** +**NIC(Reconfigurated in network.yml).** + + +Execution Requirements (Bare Metal Only) +---------------------------------------- + +In order to execute a deployment, one must gather the following information: + +1. IPMI IP addresses of the nodes. + +2. IPMI login information for the nodes (user/pass). + +3. MAC address of Control Plane / Provisioning interfaces of the Bare Metal nodes. + + +Configurations +--------------- + +There are three configuration files a user needs to modify for a cluster deployment. +``network_cfg.yaml`` for openstack networks on hosts. +``dha file`` for host role, IPMI credential and host nic idenfitication (MAC address). +``deploy.sh`` for os and openstack version. diff --git a/docs/release/installation/introduction.rst b/docs/release/installation/introduction.rst new file mode 100644 index 00000000..7470363a --- /dev/null +++ b/docs/release/installation/introduction.rst @@ -0,0 +1,38 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International Licence. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) by Weidong Shao (HUAWEI) and Justin Chi (HUAWEI) + +Abstract +======== + +This document describes how to install the Danube release of OPNFV when +using Compass4nfv as a deployment tool covering it's limitations, dependencies +and required system resources. + +Version history +=============== + ++--------------------+--------------------+--------------------+---------------------------+ +| **Date** | **Ver.** | **Author** | **Comment** | +| | | | | ++--------------------+--------------------+--------------------+---------------------------+ +| 2017-02-21 | 3.0.0 | Justin chi | Changes for D release | +| | | (HUAWEI) | | ++--------------------+--------------------+--------------------+---------------------------+ +| 2016-09-13 | 2.1.0 | Yuenan Li | Adjusted the docs | +| | | (HUAWEI) | structure | ++--------------------+--------------------+--------------------+---------------------------+ +| 2016-09-12 | 2.0.0 | Yuenan Li | Rewritten for | +| | | (HUAWEI) | Compass4nfv C release | ++--------------------+--------------------+--------------------+---------------------------+ +| 2016-01-17 | 1.0.0 | Justin chi | Rewritten for | +| | | (HUAWEI) | Compass4nfv B release | ++--------------------+--------------------+--------------------+---------------------------+ +| 2015-12-16 | 0.0.2 | Matthew Li | Minor changes & | +| | | (HUAWEI) | formatting | ++--------------------+--------------------+--------------------+---------------------------+ +| 2015-09-12 | 0.0.1 | Chen Shuai | First draft | +| | | (HUAWEI) | | ++--------------------+--------------------+--------------------+---------------------------+ + + diff --git a/docs/release/installation/offline-deploy.rst b/docs/release/installation/offline-deploy.rst new file mode 100644 index 00000000..68c78a0b --- /dev/null +++ b/docs/release/installation/offline-deploy.rst @@ -0,0 +1,47 @@ +.. two dots create a comment. please leave this logo at the top of each of your rst files. + +Offline Deploy +============== + +Compass4nfv uses offline approuch to deploy cluster and support complete offline +deployment on a jumphost without access internet. Here is the offline deployment +instuction: + +Preparation for offline deploy +------------------------------ + +1. Download compass.iso from OPNFV artifacts repository (Search compass4nfv in + http://artifacts.opnfv.org/ and download an appropriate ISO. ISO can also be + generated by script build.sh in compass4nfv root directory.) + +2. Download the Jumphost preparation package from our httpserver. (Download the + jumphost environment package from `here <http://205.177.226.237:9999/jh_env_package.tar.gz>`_. + It should be awared that currently we only support ubuntu trusty as offline + jumphost OS.) + +3. Clone the compass4nfv code repository. + +Steps of offline deploy +----------------------- + +1. Copy the compass.iso, jh_env_package.tar.gz and the compass4nfv code + repository to your jumphost. + +2. Export the local path of the compass.iso and jh_env_package.tar.gz on + jumphost. Then you can perform deployment on a offline jumphost. + +E.g. + +Export the compass4nfv.iso and jh_env_package.tar.gz path + +.. code-block:: bash + + # ISO_URL and JHPKG_URL should be absolute path + export ISO_URL=file:///home/compass/compass4nfv.iso + export JHPKG_URL=file:///home/compass/jh_env_package.tar.gz + +Run deploy.sh + +.. code-block:: bash + + ./deploy.sh diff --git a/docs/release/installation/postinstall.rst b/docs/release/installation/postinstall.rst new file mode 100644 index 00000000..f9b7aa92 --- /dev/null +++ b/docs/release/installation/postinstall.rst @@ -0,0 +1,32 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International Licence. +.. http://creativecommons.org/licenses/by/4.0 + +.. commented as there is no content for this file at this time. + +.. <Project> post installation procedures +.. ====================================== +.. Add a brief introduction to the methods of validating the installation +.. according to this specific installer or feature. + +.. Automated post installation activities +.. -------------------------------------- +.. Describe specific post installation activities performed by the OPNFV +.. deployment pipeline including testing activities and reports. Refer to +.. the relevant testing guides, results, and release notes. + +.. note: this section should be singular and derived from the test projects +.. once we have one test suite to run for all deploy tools. This is not the +.. case yet so each deploy tool will need to provide (hopefully very simillar) +.. documentation of this. + +.. <Project> post configuration procedures +.. --------------------------------------- +.. Describe any deploy tool or feature specific scripts, tests or procedures +.. that should be carried out on the deployment post install and configuration +.. in this section. + +.. Platform components validation +.. --------------------------------- +.. Describe any component specific validation procedures necessary for your +.. deployment tool in this section. + diff --git a/docs/release/installation/preconditions.rst b/docs/release/installation/preconditions.rst new file mode 100644 index 00000000..18bac119 --- /dev/null +++ b/docs/release/installation/preconditions.rst @@ -0,0 +1,163 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) by Weidong Shao (HUAWEI) and Justin Chi (HUAWEI) + +Compass4nfv configuration +========================= + +This document describes providing guidelines on how to install and +configure the Danube release of OPNFV when using Compass as a +deployment tool including required software and hardware +configurations. + +Installation and configuration of host OS, OpenStack, OpenDaylight, +ONOS, Ceph etc. can be supported by Compass on Virtual nodes or Bare Metal +nodes. + +The audience of this document is assumed to have good knowledge in +networking and Unix/Linux administration. + + +Preconditions +------------- + +Before starting the installation of the Danube release of OPNFV, +some planning must be done. + + +Retrieving the installation ISO image +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +First of all, The installation ISO is needed for deploying your OPNFV +environment, it included packages of Compass, OpenStack, OpenDaylight, ONOS +and so on. + +The stable release ISO can be retrieved via `OPNFV software download page <https://www.opnfv.org/software>`_ + +The daily build ISO can be retrieved via OPNFV artifacts repository: + +http://artifacts.opnfv.org/compass4nfv.html + +NOTE: Search the keyword "compass4nfv/Danube" to locate the ISO image. + +E.g. +compass4nfv/Danube/opnfv-2016-09-18_08-15-13.iso + +The name of iso image includes the time of iso building, you can get the daily +ISO according the building time. +The git url and sha1 of Compass4nfv are recorded in properties files, +According these, the corresponding deployment scripts can be retrieved. + + +Getting the deployment scripts +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To retrieve the repository of Compass4nfv on Jumphost use the following command: + +- git clone https://gerrit.opnfv.org/gerrit/compass4nfv + +NOTE: PLEASE DO NOT GIT CLONE COMPASS4NFV IN ROOT DIRECTORY(INCLUDE SUBFOLDERS). + +To get stable /Danube release, you can use the following command: + +- git checkout Danube.1.0 + +Setup Requirements +------------------ + +If you have only 1 Bare Metal server, Virtual deployment is recommended. if more +than or equal 3 servers, the Bare Metal deployment is recommended. The minimum number of +servers for Bare metal deployment is 3, 1 for JumpServer(Jumphost), 1 for controller, +1 for compute. + + +Jumphost Requirements +~~~~~~~~~~~~~~~~~~~~~ + +The Jumphost requirements are outlined below: + +1. Ubuntu 14.04 (Pre-installed). + +2. Root access. + +3. libvirt virtualization support. + +4. Minimum 2 NICs. + + - PXE installation Network (Receiving PXE request from nodes and providing OS provisioning) + + - IPMI Network (Nodes power control and set boot PXE first via IPMI interface) + + - External Network (Optional: Internet access) + +5. 16 GB of RAM for a Bare Metal deployment, 64 GB of RAM for a Virtual deployment. + +6. CPU cores: 32, Memory: 64 GB, Hard Disk: 500 GB, (Virtual Deployment needs 1 TB Hard Disk) + + +Bare Metal Node Requirements +---------------------------- + +Bare Metal nodes require: + +1. IPMI enabled on OOB interface for power control. + +2. BIOS boot priority should be PXE first then local hard disk. + +3. Minimum 3 NICs. + + - PXE installation Network (Broadcasting PXE request) + + - IPMI Network (Receiving IPMI command from Jumphost) + + - External Network (OpenStack mgmt/external/storage/tenant network) + + +Network Requirements +-------------------- + +Network requirements include: + +1. No DHCP or TFTP server running on networks used by OPNFV. + +2. 2-6 separate networks with connectivity between Jumphost and nodes. + + - PXE installation Network + + - IPMI Network + + - Openstack mgmt Network* + + - Openstack external Network* + + - Openstack tenant Network* + + - Openstack storage Network* + +3. Lights out OOB network access from Jumphost with IPMI node enabled (Bare Metal deployment only). + +4. External network has Internet access, meaning a gateway and DNS availability. + +**The networks with(*) can be share one NIC(Default configuration) or use an exclusive** +**NIC(Reconfigurated in network.yml).** + + +Execution Requirements (Bare Metal Only) +---------------------------------------- + +In order to execute a deployment, one must gather the following information: + +1. IPMI IP addresses of the nodes. + +2. IPMI login information for the nodes (user/pass). + +3. MAC address of Control Plane / Provisioning interfaces of the Bare Metal nodes. + + +Configurations +--------------- + +There are three configuration files a user needs to modify for a cluster deployment. +``network_cfg.yaml`` for openstack networks on hosts. +``dha file`` for host role, IPMI credential and host nic idenfitication (MAC address). +``deploy.sh`` for os and openstack version. diff --git a/docs/release/installation/references.rst b/docs/release/installation/references.rst new file mode 100644 index 00000000..2dbaa144 --- /dev/null +++ b/docs/release/installation/references.rst @@ -0,0 +1,34 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International Licence. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) by Weidong Shao (HUAWEI) and Justin Chi (HUAWEI) + +References +========== + +OPNFV +----- + +`OPNFV Compass4nfv project page <https://wiki.opnfv.org/compass4nfv>`_ + +`Tutoring videos <https://wiki.opnfv.org/display/compass4nfv/Compass+101>`_ + +OpenStack +--------- + +`OpenStack Newton Release artifacts <http://www.openstack.org/software/Newton>`_ + +OpenDaylight +------------ + +`OpenDaylight artifacts <http://www.opendaylight.org/software/downloads>`_ + +ONOS +---- + +`ONOS artifacts <http://onosproject.org/software/>`_ + +Compass +------- + +`Compass Home Page <http://www.syscompass.org/>`_ + diff --git a/docs/release/installation/vmdeploy.rst b/docs/release/installation/vmdeploy.rst new file mode 100644 index 00000000..610ff51a --- /dev/null +++ b/docs/release/installation/vmdeploy.rst @@ -0,0 +1,231 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International Licence. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) by Weidong Shao (HUAWEI) and Justin Chi (HUAWEI) + +Installation on virtual machines +================================ + +Nodes Configuration (Virtual Deployment) +---------------------------------------- + +virtual machine setting +~~~~~~~~~~~~~~~~~~~~~~~ + + - VIRT_NUMBER -- the number of nodes for virtual deployment. + + - VIRT_CPUS -- the number of CPUs allocated per virtual machine. + + - VIRT_MEM -- the memory size(MB) allocated per virtual machine. + + - VIRT_DISK -- the disk size allocated per virtual machine. + +.. code-block:: bash + + export VIRT_NUMBER=${VIRT_NUMBER:-5} + export VIRT_CPUS=${VIRT_CPU:-4} + export VIRT_MEM=${VIRT_MEM:-16384} + export VIRT_DISK=${VIRT_DISK:-200G} + + +roles setting +~~~~~~~~~~~~~ + +The below file is the inventory template of deployment nodes: + +"./deploy/conf/vm_environment/huawei-virtual1/dha.yml" + +The "dha.yml" is a collectively name for "os-nosdn-nofeature-ha.yml +os-ocl-nofeature-ha.yml os-odl_l2-moon-ha.yml etc". + +You can write your own address/roles reference to it. + + - name -- Host name for deployment node after installation. + + - roles -- Components deployed. + +**Set TYPE and FLAVOR** + +E.g. + +.. code-block:: yaml + + TYPE: virtual + FLAVOR: cluster + +**Assignment of different roles to servers** + +E.g. Openstack only deployment roles setting + +.. code-block:: yaml + + hosts: + - name: host1 + roles: + - controller + - ha + + - name: host2 + roles: + - compute + +NOTE: +IF YOU SELECT MUTIPLE NODES AS CONTROLLER, THE 'ha' role MUST BE SELECT, TOO. + +E.g. Openstack and ceph deployment roles setting + +.. code-block:: yaml + + hosts: + - name: host1 + roles: + - controller + - ha + - ceph-adm + - ceph-mon + + - name: host2 + roles: + - compute + - ceph-osd + +E.g. Openstack and ODL deployment roles setting + +.. code-block:: yaml + + hosts: + - name: host1 + roles: + - controller + - ha + - odl + + - name: host2 + roles: + - compute + +E.g. Openstack and ONOS deployment roles setting + +.. code-block:: yaml + + hosts: + - name: host1 + roles: + - controller + - ha + - onos + + - name: host2 + roles: + - compute + +Network Configuration (Virtual Deployment) +------------------------------------------ + +The same with Baremetal Deployment. + +Start Deployment (Virtual Deployment) +------------------------------------- + +1. Edit deploy.sh + +1.1. Set OS version for deployment nodes. + Compass4nfv supports ubuntu and centos based openstack newton. + +E.g. + +.. code-block:: bash + + # Set OS version for target hosts + # Ubuntu16.04 or CentOS7 + export OS_VERSION=xenial + or + export OS_VERSION=centos7 + +1.2. Set ISO image corresponding to your code + +E.g. + +.. code-block:: bash + + # Set ISO image corresponding to your code + export ISO_URL=file:///home/compass/compass4nfv.iso + +1.3. Set scenario that you want to deploy + +E.g. + +nosdn-nofeature scenario deploy sample + +.. code-block:: bash + + # DHA is your dha.yml's path + export DHA=./deploy/conf/vm_environment/os-nosdn-nofeature-ha.yml + + # NETWORK is your network.yml's path + export NETWORK=./deploy/conf/vm_environment/huawei-virtual1/network.yml + +ocl-nofeature scenario deploy sample + +.. code-block:: bash + + # DHA is your dha.yml's path + export DHA=./deploy/conf/vm_environment/os-ocl-nofeature-ha.yml + + # NETWORK is your network.yml's path + export NETWORK=./deploy/conf/vm_environment/huawei-virtual1/network_ocl.yml + +odl_l2-moon scenario deploy sample + +.. code-block:: bash + + # DHA is your dha.yml's path + export DHA=./deploy/conf/vm_environment/os-odl_l2-moon-ha.yml + + # NETWORK is your network.yml's path + export NETWORK=./deploy/conf/vm_environment/huawei-virtual1/network.yml + +odl_l2-nofeature scenario deploy sample + +.. code-block:: bash + + # DHA is your dha.yml's path + export DHA=./deploy/conf/vm_environment/os-odl_l2-nofeature-ha.yml + + # NETWORK is your network.yml's path + export NETWORK=./deploy/conf/vm_environment/huawei-virtual1/network.yml + +odl_l3-nofeature scenario deploy sample + +.. code-block:: bash + + # DHA is your dha.yml's path + export DHA=./deploy/conf/vm_environment/os-odl_l3-nofeature-ha.yml + + # NETWORK is your network.yml's path + export NETWORK=./deploy/conf/vm_environment/huawei-virtual1/network.yml + +onos-nofeature scenario deploy sample + +.. code-block:: bash + + # DHA is your dha.yml's path + export DHA=./deploy/conf/vm_environment/os-onos-nofeature-ha.yml + + # NETWORK is your network.yml's path + export NETWORK=./deploy/conf/vm_environment/huawei-virtual1/network_onos.yml + +onos-sfc deploy scenario sample + +.. code-block:: bash + + # DHA is your dha.yml's path + export DHA=./deploy/conf/vm_environment/os-onos-sfc-ha.yml + + # NETWORK is your network.yml's path + export NETWORK=./deploy/conf/vm_environment/huawei-virtual1/network_onos.yml + +2. Run ``deploy.sh`` + +.. code-block:: bash + + ./deploy.sh |