This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
compass4nfv_deployment_guide [2015/09/16 03:56] shuai chen |
compass4nfv_deployment_guide [2016/03/04 07:10] mei mei |
||
---|---|---|---|
Line 1: | Line 1: | ||
======Compass4nfv deployment guide====== | ======Compass4nfv deployment guide====== | ||
- | =====Prerequisite===== | + | please pay attention to our latest release: |
- | + | [[https://www.opnfv.org/opnfv-brahmaputra-compass-users|opnfv-brahmaputra-compass-users]] | |
- | 1. One jumpserver installed with Ubuntu14.04. | + | |
- | + | ||
- | + | ||
- | 2. If baremetal is target installed environment, the jumpserver needs 3 physical ethernet ports, 2 ports(for Managerment/Installation, IPMI) connect with baremetals, 1 ports connects with externel network. Baremetal neets to be same. | + | |
- | + | ||
- | + | ||
- | 3. Pre-allocate IP addresses for baremetals, and get accounts and passwords of BMC on baremetals. | + | |
- | + | ||
- | + | ||
- | 4. If virtual machine is target installed environment, the jumpserver also needs 100G storage and 16G RAM. | + | |
- | + | ||
- | + | ||
- | 5. Gerrit: git clone https://gerrit.opnfv.org/gerrit/compass4nfv | + | |
- | + | ||
- | + | ||
- | 6. Please don't git clone compass4nfv in the root directory. | + | |
- | + | ||
- | + | ||
- | + | ||
- | __**Attention:**__ | + | |
- | + | ||
- | Compass4nfv does stick on the OPNFV communities' Operating System version requirement. | + | |
- | + | ||
- | For Brahmputra, Ubuntu14.04 or newer and Centos7.0 or newer are requested, so the target installed environment will be installed on Ubuntu14.04 or Centos7.0. | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | =====How to build a ISO===== | + | |
- | + | ||
- | If you want to use official ISO to deploy Compass4nfv, you can jump over this section. | + | |
- | + | ||
- | + | ||
- | This section indicates how to add new packages into the compass4nfv iso file and Compass4nfv would install the packages automatically during the deployment. | + | |
- | + | ||
- | + | ||
- | ===Approach 1 ----- apt/yum installation=== | + | |
- | + | ||
- | + | ||
- | 1. Confirm the targeted packages could be installed via apt-get(Ubuntu) and yum(Centos), you can verify on your own environment first by commands "apt-get install {targeted packages}" on Ubuntu and "yum install {targeted packages}" on Centos. | + | |
- | + | ||
- | + | ||
- | 2. Create a new role folder ({newrole}) in the compass4nfv/deploy/adapters/ansible/roles/, create a new folder named "vars" in the new role folder({newrole}), and create a file named "main.yml". | + | |
- | + | ||
- | + | ||
- | 3. If the targeted packages name are same in both Ubuntu and Centos, you just need edit main.yml. | + | |
- | + | ||
- | the content: | + | |
- | <code> | + | |
- | --- | + | |
- | packages_noarch: | + | |
- | - {targeted packages1} | + | |
- | - {targeted packages2} | + | |
- | - {targeted packages3} | + | |
- | ... | + | |
- | </code> | + | |
- | + | ||
- | 4. If the targeted packages name are different, you need add "Debian.yml" and "RedHat.yml" in the same folder as "main.yml". | + | |
- | + | ||
- | The content in "Debian.yml" and "RedHat.yml" : | + | |
- | <code> | + | |
- | --- | + | |
- | packages: | + | |
- | - {targeted Ubuntu/RedHat packages1} | + | |
- | - {targeted Ubuntu/RedHat packages2} | + | |
- | - {targeted Ubuntu/RedHat packages3} | + | |
- | ... | + | |
- | </code> | + | |
- | + | ||
- | Also you can refer compass4nfv/deploy/adapters/ansible/roles/glance/vars as example. | + | |
- | + | ||
- | + | ||
- | 5.1 Add the new role to ansible so that Compass4nfv will install the packages during the deployment : enter compass4nfv/deploy/adapters/ansible/openstack_juno/ and edit HA-ansible-multinodes.yml and/or single-controller.yml, add {newrole} at an appropriate position, please be aware of that compass4nfv deploys the roles in the order as list in HA-ansible-multinodes.yml/single-controller.yml, you can add a new section as the following:: | + | |
- | + | ||
- | <code> | + | |
- | - hosts: all/controller/compute/ha | + | |
- | remote_user: root | + | |
- | sudo: True | + | |
- | roles: | + | |
- | - {newrole} | + | |
- | </code> | + | |
- | + | ||
- | + | ||
- | The first line "hosts" of the section means compass4nfv will deploy {newrole} on which baremetals/VMs, "all" means it deploys on all baremetals/VMs, "controller" means it deploys on all controller and so on. | + | |
- | + | ||
- | Also you can refer "glance" position in HA-ansible-multinodes.yml and single-controller.yml. | + | |
- | + | ||
- | + | ||
- | __**Attention:**__ | + | |
- | + | ||
- | "HA-ansible-multinodes.yml" deploys controllers backup targeted environment and 3 controllers in backup mode + 2 compute by default; | + | |
- | "single-controller.yml" deploys 1 controller + 4 compute. | + | |
- | + | ||
- | + | ||
- | 5.2 Or insert the new role into the existing section at an appropriate position in HA-ansible-multinodes.yml and single-controller.yml. | + | |
- | + | ||
- | Example: | + | |
- | <code> | + | |
- | - hosts: controller/all/compute/ha | + | |
- | remote_user: root | + | |
- | sudo: True | + | |
- | roles: | + | |
- | - database | + | |
- | - mq | + | |
- | - keystone | + | |
- | - nova-controller | + | |
- | - neutron-controller | + | |
- | - {newrole} | + | |
- | </code> | + | |
- | + | ||
- | Please pay attention to the first line "hosts" by which Compass4nfv deploys {newrole} on which baremetals/VMs. | + | |
- | + | ||
- | Also please pay attention to the position inserted as Compass4nfv deploys the packages in the order as list. | + | |
- | + | ||
- | Also you can refer "glance" position as example in HA-ansible-multinodes.yml and single-controller.yml. | + | |
- | + | ||
- | + | ||
- | + | ||
- | 6. Run compass4nfv/build/make_repo.sh | + | |
- | + | ||
- | + | ||
- | 7. After 6 finishs, please check "compass4nfv/work/repo/" folder, if files as following exist in the folder, that means building packages successfully. | + | |
- | + | ||
- | centos7-juno-ppa.tar.gz is OpenStack Juno version for Centos7. | + | |
- | + | ||
- | trusty-juno-ppa.tar.gz is OpenStack Juno version for Ubuntu14.04. | + | |
- | + | ||
- | trusty-kilo-ppa.tar.gz is OpenStack Kilo version for Ubuntu14.04. | + | |
- | + | ||
- | + | ||
- | + | ||
- | 8. Edit compass4nfv/build/build.conf, find CENTOS7_JUNO_PPA and TRUSTY_JUNO_PPA items, modify these 2 items as local paths(if you just want deploy with one operating system, you just modify one item). | + | |
- | + | ||
- | CENTOS7_JUNO_PPA is packages path for Centos, TRUSTY_JUNO_PPA is packages path for Ubuntu | + | |
- | + | ||
- | <code> | + | |
- | CENTOS7_JUNO_PPA=/compass4nfv/work/repo/centos7-juno-ppa.tar.gz | + | |
- | + | ||
- | TRUSTY_JUNO_PPA=/compass4nfv/work/repo/trusty-juno-ppa.tar.gz | + | |
- | </code> | + | |
- | + | ||
- | + | ||
- | + | ||
- | 9. Run compass4nfv/build.sh to build a new ISO, after finished, if there is a new ISO file compass.iso in the "compass4nfv/work/building" folder, that means building iso successfully. | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | ===Approach 2 ---- source installation=== | + | |
- | + | ||
- | This section indicates to install packages from source codes. If the installing packages could not be installed from apt-get and yum but from source codes, please refer this section. | + | |
- | + | ||
- | 1. Enter compass4nfv/build/arch/Debian or compass4nfv/build/arch/RedHat depend on which operating system you want to install package, create a bash(.sh) file which includes all the commands which install the packages from source codes. | + | |
- | + | ||
- | Example: | + | |
- | <code> | + | |
- | #!/bin/bash | + | |
- | apt-get update | + | |
- | apt-get install -y build-essential fakeroot debhelper \ | + | |
- | autoconf automake bzip2 libssl-dev \ | + | |
- | openssl graphviz python-all procps \ | + | |
- | python-qt4 python-zopeinterface \ | + | |
- | python-twisted-conch libtool wget | + | |
- | pushd . | + | |
- | cd /tmp | + | |
- | wget http://openvswitch.org/releases/openvswitch-2.3.1.tar.gz | + | |
- | tar -zxvf openvswitch-2.3.1.tar.gz | + | |
- | cd openvswitch-2.3.1 | + | |
- | DEB_BUILD_OPTIONS='parallel=8 nocheck' fakeroot debian/rules binary | + | |
- | cd - | + | |
- | cp -f *.deb /var/cache/apt/archives/ | + | |
- | popd | + | |
- | </code> | + | |
- | + | ||
- | Please pay attention to the last second sentence, all the compiled packages need to be copied to the "/var/cache/apt/archives/"(Ubuntu) folder, and for Centos, the folder is ... to be continued . | + | |
- | + | ||
- | + | ||
- | + | ||
- | 2. Create a new role folder ({newrole}) in the compass4nfv/deploy/adapters/ansible/roles/, create a new folder named "vars" in the new role folder({newrole}), and create a file named "main.yml". | + | |
- | + | ||
- | + | ||
- | 3. If the targeted packages name are same in both Ubuntu and Centos, you just need edit main.yml. | + | |
- | + | ||
- | the content: | + | |
- | <code> | + | |
- | --- | + | |
- | packages_noarch: | + | |
- | - {targeted packages1} | + | |
- | - {targeted packages2} | + | |
- | - {targeted packages3} | + | |
- | ... | + | |
- | </code> | + | |
- | + | ||
- | 4. If the targeted packages name are different, you need add "Debian.yml" and "RedHat.yml" in the same folder as "main.yml". | + | |
- | + | ||
- | The content in "Debian.yml" and "RedHat.yml" : | + | |
- | <code> | + | |
- | --- | + | |
- | packages: | + | |
- | - {targeted Ubuntu/RedHat packages1} | + | |
- | - {targeted Ubuntu/RedHat packages2} | + | |
- | - {targeted Ubuntu/RedHat packages3} | + | |
- | ... | + | |
- | </code> | + | |
- | + | ||
- | Also you can refer compass4nfv/deploy/adapters/ansible/roles/glance/vars as example. | + | |
- | + | ||
- | + | ||
- | 5.1 Add the new role to ansible so that Compass4nfv will install the packages during the deployment : enter compass4nfv/deploy/adapters/ansible/openstack_juno/ and edit HA-ansible-multinodes.yml and/or single-controller.yml, add {newrole} at an appropriate position, please be aware of that compass4nfv deploys the roles in the order as list in HA-ansible-multinodes.yml/single-controller.yml, you can add a new section as the following:: | + | |
- | + | ||
- | <code> | + | |
- | - hosts: all/controller/compute/ha | + | |
- | remote_user: root | + | |
- | sudo: True | + | |
- | roles: | + | |
- | - {newrole} | + | |
- | </code> | + | |
- | + | ||
- | + | ||
- | The first line "hosts" of the section means compass4nfv will deploy {newrole} on which baremetals/VMs, "all" means it deploys on all baremetals/VMs, "controller" means it deploys on all controller and so on. | + | |
- | + | ||
- | Also you can refer "glance" position in HA-ansible-multinodes.yml and single-controller.yml. | + | |
- | + | ||
- | + | ||
- | __**Attention:**__ | + | |
- | + | ||
- | "HA-ansible-multinodes.yml" deploys controllers backup targeted environment and 3 controllers in backup mode + 2 compute by default; | + | |
- | "single-controller.yml" deploys 1 controller + 4 compute. | + | |
- | + | ||
- | + | ||
- | 5.2 Or insert the new role into the existing section at an appropriate position in HA-ansible-multinodes.yml and single-controller.yml. | + | |
- | + | ||
- | Example: | + | |
- | <code> | + | |
- | - hosts: controller/all/compute/ha | + | |
- | remote_user: root | + | |
- | sudo: True | + | |
- | roles: | + | |
- | - database | + | |
- | - mq | + | |
- | - keystone | + | |
- | - nova-controller | + | |
- | - neutron-controller | + | |
- | - {newrole} | + | |
- | </code> | + | |
- | + | ||
- | Please pay attention to the first line "hosts" by which Compass4nfv deploys {newrole} on which baremetals/VMs. | + | |
- | + | ||
- | Also please pay attention to the position inserted as Compass4nfv deploys the packages in the order as list. | + | |
- | + | ||
- | Also you can refer "glance" position as example in HA-ansible-multinodes.yml and single-controller.yml. | + | |
- | + | ||
- | + | ||
- | + | ||
- | 6. Run compass4nfv/build/make_repo.sh | + | |
- | + | ||
- | + | ||
- | 7. After 6 finishs, please check "compass4nfv/work/repo/" folder, if files as following exist in the folder, that means building packages successfully. | + | |
- | + | ||
- | centos7-juno-ppa.tar.gz is OpenStack Juno version for Centos7. | + | |
- | + | ||
- | trusty-juno-ppa.tar.gz is OpenStack Juno version for Ubuntu14.04. | + | |
- | + | ||
- | trusty-kilo-ppa.tar.gz is OpenStack Kilo version for Ubuntu14.04. | + | |
- | + | ||
- | + | ||
- | + | ||
- | 8. Edit compass4nfv/build/build.conf, find CENTOS7_JUNO_PPA and TRUSTY_JUNO_PPA items, modify these 2 items as local paths(if you just want deploy with one operating system, you just modify one item). | + | |
- | + | ||
- | CENTOS7_JUNO_PPA is packages path for Centos, TRUSTY_JUNO_PPA is packages path for Ubuntu | + | |
- | + | ||
- | <code> | + | |
- | CENTOS7_JUNO_PPA=/compass4nfv/work/repo/centos7-juno-ppa.tar.gz | + | |
- | + | ||
- | TRUSTY_JUNO_PPA=/compass4nfv/work/repo/trusty-juno-ppa.tar.gz | + | |
- | </code> | + | |
- | + | ||
- | + | ||
- | + | ||
- | 9. Run compass4nfv/build.sh to build a new ISO, after finished, if there is a new ISO file compass.iso in the "compass4nfv/work/building" folder, that means building iso successfully. | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | ===Approach 3 ---- autonomous packages installation=== | + | |
- | + | ||
- | package installed, to be continued... | + | |
- | + | ||
- | + | ||
- | =====How to deploy baremetal and VMs===== | + | |
- | + | ||
- | ===Deploy baremetal in HA mode:=== | + | |
- | + | ||
- | 1. (optional)If you have built a new ISO before and want to use the new ISO, please edit compass4nfv/deploy/conf/base.conf file, modify the item "ISO_URL" as | + | |
- | <code> | + | |
- | export ISO_URL=file:///compass4nfv/work/building/compass.iso | + | |
- | </code> | + | |
- | + | ||
- | 2. Edit compass4nfv/deploy/conf/baremetal_cluster_general.yml, to be continued. | + | |
- | + | ||
- | 3. Edit compass4nfv/deploy/conf/base.conf, modify the item "export OM_NIC=${OM_NIC:-eth3}" as the install network ethernet port based your jumpserver. | + | |
- | + | ||
- | 4. Run compass4nfv/deploy.sh baremetal_cluster_general . | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | ===Deploy baremetal in Single mode:=== | + | |
- | + | ||
- | 1. (optional)If you have built a new ISO before and want to use the new ISO, please edit compass4nfv/deploy/conf/base.conf file, modify the item "ISO_URL" as | + | |
- | <code> | + | |
- | export ISO_URL=file:///compass4nfv/work/building/compass.iso | + | |
- | </code> | + | |
- | + | ||
- | + | ||
- | 2. Edit compass4nfv/deploy/conf/baremetal_five.yml , change items [name, mac, ipmiUser, ipmiPass, ipmiIp, roles] based on the baremetal to be deployed. | + | |
- | + | ||
- | 3. Edit compass4nfv/deploy/conf/base.conf, modify the item "export OM_NIC=${OM_NIC:-eth3}" as the install network ethernet port based your jumpserver. | + | |
- | + | ||
- | 4. Run compass4nfv/deploy.sh baremetal_five . | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | ===Deploy VMs in HA mode:=== | + | |
- | + | ||
- | 1. (optional)If you have built a new ISO before and want to use the new ISO, please edit compass4nfv/deploy/conf/base.conf file, modify the item "ISO_URL" as | + | |
- | <code> | + | |
- | export ISO_URL=file:///compass4nfv/work/building/compass.iso | + | |
- | </code> | + | |
- | + | ||
- | 2.(Optional) Edit compass4nfv/deploy/conf/virtual_cluster.yml, change items [name, roles] as you want, also you could reduce or add hosts sections as you want. And 3 controller in HA mode and 2 compute will be deployed without changing this yml file. | + | |
- | + | ||
- | 3. Run compass4nfv/deploy.sh virtual_cluster or Run compass4nfv/deploy.sh . | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | ===Deploy baremetal in Single mode:=== | + | |
- | + | ||
- | 1. (optional)If you have built a new ISO before and want to use the new ISO, please edit compass4nfv/deploy/conf/base.conf file, modify the item "ISO_URL" as | + | |
- | <code> | + | |
- | export ISO_URL=file:///compass4nfv/work/building/compass.iso | + | |
- | </code> | + | |
- | + | ||
- | 2.(Optional) Edit compass4nfv/deploy/conf/virtual_five.yml, change items [name, roles] as you want, also you could reduce or add hosts sections as you want. And 3 controller in HA mode and 2 compute will be deployed without changing this yml file. | + | |
- | + | ||
- | 3. Run compass4nfv/deploy.sh virtual_five . | + | |
- | + | ||
- | + | ||
- | __**Attention:**__ | + | |
- | + | ||
- | Roles here includes controller compute network storage ha odl and onos. | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | =====How to deploy without network access===== | + | |
- | + | ||
- | + | ||
- | If you have created your own ISO file(compass.iso), you realy could deploy without internet access, what you need to do is to edit compass4nfv/deploy/conf/base.conf file and assign item ISO_URL as your local path | + | |
- | <code> | + | |
- | export ISO_URL=file:///compass4nfv/work/building/compass.iso | + | |
- | </code> | + | |
- | Then Compass4nfv could deploy via local compass.iso without Internet access. | + | |
- | + | ||
- | + | ||
- | Except this, also you can download compass.iso, log in http://artifacts.opnfv.org/ and search "compass4nfv" , then you will find several ISO files and choose the appropriate one, and use wget or curl to download the ISO file. | + | |
- | + | ||
- | + | ||
- | After downloaded, modify "ISO_URL" item in "compass4nfv/deploy/conf/base.conf" file as the downloaded compass.iso location. | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | =====How to integration plugins===== | + | |
- | to be continued... | + | |
- | + |