aboutsummaryrefslogtreecommitdiffstats
path: root/docs/release/installation/bmdeploy.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/release/installation/bmdeploy.rst')
-rw-r--r--docs/release/installation/bmdeploy.rst558
1 files changed, 558 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