aboutsummaryrefslogtreecommitdiffstats
path: root/docs/FAQ/how-to-build-customized-iso.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/FAQ/how-to-build-customized-iso.rst')
-rw-r--r--docs/FAQ/how-to-build-customized-iso.rst294
1 files changed, 294 insertions, 0 deletions
diff --git a/docs/FAQ/how-to-build-customized-iso.rst b/docs/FAQ/how-to-build-customized-iso.rst
new file mode 100644
index 00000000..37b5c72b
--- /dev/null
+++ b/docs/FAQ/how-to-build-customized-iso.rst
@@ -0,0 +1,294 @@
+.. two dots create a comment. please leave this logo at the top of each of your rst files.
+
+How to build a customized ISO
+=============================
+
+If you want to use Compass4nfv official ISO to deploy the environment, you can jump over this section.
+
+
+This section indicates how to add additional packages and how to build a new compass4nfv ISO file
+so that Compass4nfv would install the additional 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" and add "---" at the head of this file.
+
+
+3. If the targeted packages names are same in both Ubuntu and Centos, you just need edit main.yml.
+
+Add the packages' names as following:
+
+.. code-block:: bash
+
+ packages_noarch:
+ - {targeted packages1}
+ - {targeted packages2}
+ - {targeted packages3}
+ ...
+
+
+4. If the targeted packages' names are different in Ubuntu and Centos,
+you need create "Debian.yml" and/or "RedHat.yml" in the same folder as "main.yml" and add "---" at the head of the files.
+
+Add the packages' names as following in the "Debian.yml" and/or "RedHat.yml" :
+
+.. code-block:: bash
+
+ ---
+ packages:
+ - {targeted Ubuntu/RedHat packages1}
+ - {targeted Ubuntu/RedHat packages2}
+ - {targeted Ubuntu/RedHat packages3}
+ ...
+
+
+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::
+
+ - hosts: all/controller/compute/ha
+ remote_user: root
+ sudo: True
+ roles:
+ - {newrole}
+
+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-block:: bash
+
+ - hosts: controller/all/compute/ha
+ remote_user: root
+ sudo: True
+ roles:
+ - database
+ - mq
+ - keystone
+ - nova-controller
+ - neutron-controller
+ - {newrole}
+
+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-block:: bash
+
+ CENTOS7_JUNO_PPA=/compass4nfv/work/repo/centos7-juno-ppa.tar.gz
+
+ TRUSTY_JUNO_PPA=/compass4nfv/work/repo/trusty-juno-ppa.tar.gz
+
+
+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 targeted packages could not be
+installed from apt-get and yum but from source codes, please refer this section.
+
+
+1. Enter folder "compass4nfv/build/arch/Debian" or "compass4nfv/build/arch/RedHat" that depend on
+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-block:: bash
+
+ #!/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
+
+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. Add a new role so that Compass4nfv will install the packages during the deployment,
+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" and add "---" at the head of this file.
+
+
+3. If the packages' names are same in both Ubuntu and Centos, you just need edit main.yml.
+
+Add the packages' names as following:
+
+.. code-block:: bash
+
+ packages_noarch:
+ - {targeted packages1}
+ - {targeted packages2}
+ - {targeted packages3}
+ ...
+
+
+4. If the targeted packages' names are different in Ubuntu and Centos,
+you need create "Debian.yml" and/or "RedHat.yml" in the same folder as "main.yml"
+and add "---" at the head of the files.
+
+Add the packages' names as following in the "Debian.yml" and/or "RedHat.yml" :
+
+.. code-block:: bash
+
+ packages:
+ - {targeted Ubuntu/RedHat packages1}
+ - {targeted Ubuntu/RedHat packages2}
+ - {targeted Ubuntu/RedHat packages3}
+ ...
+
+
+Also you can refer "compass4nfv/deploy/adapters/ansible/roles/glance/vars" as example.
+
+
+5.1 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::
+
+ - hosts: all/controller/compute/ha
+ remote_user: root
+ sudo: True
+ roles:
+ - {newrole}
+
+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-block:: bash
+
+ - hosts: controller
+ remote_user: root
+ sudo: True
+ roles:
+ - database
+ - mq
+ - keystone
+ - nova-controller
+ - neutron-controller
+ - {newrole}
+
+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-block:: bash
+
+ CENTOS7_JUNO_PPA=/compass4nfv/work/repo/centos7-juno-ppa.tar.gz
+
+ TRUSTY_JUNO_PPA=/compass4nfv/work/repo/trusty-juno-ppa.tar.gz
+
+
+
+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...