diff options
author | cristinapauna <cristina.pauna@enea.com> | 2016-09-08 16:38:15 +0300 |
---|---|---|
committer | cristinapauna <cristina.pauna@enea.com> | 2016-09-16 19:03:18 +0300 |
commit | b832a3e82070e12dff555e2a83d604de7e398acb (patch) | |
tree | 52cc5df48f845cd32c3c46ce54f847a8bc11d30c /docs/build-instruction.rst | |
parent | df00772021308f2f9a09f9a87db164daf104d1db (diff) |
docs: Copy OPNFV docs dir as documentation base
There has been some restructuring of the documentation in fuel project.
This commit copies those files, while a subsequent commit will adapt
the documentation with aarch64 specifics.
Change-Id: I56b52d5d16975b88fd5b26099b43046c6a5d5747
Signed-off-by: cristinapauna <cristina.pauna@enea.com>
Diffstat (limited to 'docs/build-instruction.rst')
-rw-r--r-- | docs/build-instruction.rst | 344 |
1 files changed, 0 insertions, 344 deletions
diff --git a/docs/build-instruction.rst b/docs/build-instruction.rst deleted file mode 100644 index e1ead30e..00000000 --- a/docs/build-instruction.rst +++ /dev/null @@ -1,344 +0,0 @@ -================================================================================================= -OPNFV Build instruction for the AArch64 Colorado 1.0 release of OPNFV when using Fuel as a deployment tool -================================================================================================= - -License -======= - -This work is licensed under a Creative Commons Attribution 4.0 -International License. .. http://creativecommons.org/licenses/by/4.0 .. -(c) Jonas Bjurel (Ericsson AB) and others - -Abstract -======== - -This document describes how to build the Fuel deployment tool for the -AArch64 Colorado release of OPNFV build system, dependencies and -required system resources. - -Introduction -============ - -This document describes the build system used to build the Fuel -deployment tool for the AArch64 Colorado release of OPNFV, required -dependencies and minimum requirements on the host to be used for the -build system. - -The Fuel build system is designed around Docker containers such that -dependencies outside of the build system can be kept to a minimum. It -also shields the host from any potential dangerous operations -performed by the build system. - -The audience of this document is assumed to have good knowledge in -network and Unix/Linux administration. - -Due to early docker and nodejs support on AArch64, we will still use an -x86_64 Fuel Master to build and deploy an AArch64 target pool, as well -as an x86_64 build machine for building the OPNFV ISO. - -Requirements -============ - -Minimum Hardware Requirements ------------------------------ - -- ~50 GB available disc - -- 4 GB RAM - -Minimum Software Requirements ------------------------------ - -The build host should run Ubuntu 14.04 (x86_64) operating system. - -On the host, the following packages must be installed: - -- An x86_64 host (Bare-metal or VM) with Ubuntu 14.04 LTS installed - - - **Note:** Builds on Wily (Ubuntu 15.x) are currently not supported - - - A kernel equal- or later than 3.19 (Vivid), simply available through: - -.. code-block:: bash - - $ sudo apt-get install linux-generic-lts-vivid - -- docker - see https://docs.docker.com/engine/installation/ubuntulinux/ for - installation notes for Ubuntu 14.04. Tested against version 1.9.x and greater - -- git - -- make - -- curl - -- fuseiso - -Apart from docker, all other package requirements listed above are -simply available through: - -.. code-block:: bash - - $ sudo apt-get install git make curl fuseiso - -Preparations -============ - -Setting up the Docker build container -------------------------------------- -After having installed Docker, add yourself to the docker group: - -.. code-block:: bash - - $ sudo usermod -a -G docker [userid] - -Also make sure to define relevant DNS servers part of the global -DNS chain in your </etc/default/docker> configuration file. -Uncomment, and modify the values appropriately. - -For example: - -.. code-block:: bash - - DOCKER_OPTS=" --dns=8.8.8.8 --dns=8.8.8.4" - -Then restart docker: - -.. code-block:: bash - - $ sudo service docker restart - -Setting up OPNFV Gerrit in order to being able to clone the code -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- Start setting up OPNFV gerrit by creating a SSH key (unless you - don't already have one), create one with ssh-keygen - -- Add your generated public key in OPNFV Gerrit (https://gerrit.opnfv.org/) - (this requires a Linux foundation account, create one if you do not - already have one) - -- Select "SSH Public Keys" to the left and then "Add Key" and paste - your public key in. - -Clone the armband@OPNFV code Git repository with your SSH key -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Now it is time to clone the code repository: - -.. code-block:: bash - - $ git clone ssh://<Linux foundation user>@gerrit.opnfv.org:29418/armband - -Now you should have the OPNFV ARMBAND repository with its -directories stored locally on your build host. - -Check out the Colorado release: - -.. code-block:: bash - - $ cd armband - $ git checkout colorado.1.0 - -Clone the armband@OPNFV code Git repository without a SSH key -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -You can also opt to clone the code repository without a SSH key: - -.. code-block:: bash - - $ git clone https://gerrit.opnfv.org/gerrit/armband - -Make sure to checkout the release tag as described above. - -Support for building behind a http/https/rsync proxy ----------------------------------------------------- - -The build system is able to make use of a web proxy setup if the -http_proxy, https_proxy, no_proxy (if needed) and RSYNC_PROXY or -RSYNC_CONNECT_PROG environment variables have been set before invoking make. - -The proxy setup must permit port 80 (http), 443 (https) and 873 (rsync). - -Important note about the host Docker daemon settings -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The Docker daemon on the host must be configured to use the http proxy -for it to be able to pull the base Ubuntu 14.04 image from the Docker -registry before invoking make! In Ubuntu this is done by adding a line -like: - -.. code-block:: bash - - export http_proxy="http://10.0.0.1:8888/" - -to </etc/default/docker> and restarting the Docker daemon. - -Setting proxy environment variables prior to build -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The build system will make use the following environment variables -that needs to be exported to subshells by using export (bash) or -setenv (csh/tcsh). - -.. code-block:: bash - - http_proxy (or HTTP_PROXY) - https_proxy (or HTTP_PROXY) - no_proxy (or NO_PROXY) - RSYNC_PROXY - RSYNC_CONNECT_PROG - -As an example, these are the settings that were put in the user's -.bashrc when verifying the proxy build functionality: - -.. code-block:: bash - - export RSYNC_PROXY=10.0.0.1:8888 - export http_proxy=http://10.0.0.1:8888 - export https_proxy=http://10.0.0.1:8888 - export no_proxy=localhost,127.0.0.1,.consultron.com,.sock - -Using a ssh proxy for the rsync connection -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If the proxy setup is not allowing the rsync protocol, an alternative -solution is to use a SSH tunnel to a machine capable of accessing the -outbound port 873. Set the RSYNC_CONNECT_PROG according to the rsync -manual page (for example to "ssh <username>@<hostname> nc %H 873") -to enable this. Also note that netcat needs to be installed on the -remote system! - -Make sure that the ssh command also refers to the user on the remote -system, as the command itself will be run from the Docker build container -as the root user (but with the invoking user's SSH keys). - -Disabling the Ubuntu repo cache if rsync is not allowed -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -During the build phase, a local Ubuntu package repository is fetched -from upstream in order to be added to the OPNFV Fuel ISO and for parts -of this process rsync is used. - -If neither of the two available methods for proxying rsync are -available, the last resort is to turn off the caching of the Ubuntu -packages in the build system. This is done by removing the -"f_repobuild" from SUBDIRS in the beginning of the -<armband/upstream/fuel/build/f_isoroot/Makefile>. - -Note! Doing this will require the Fuel master node to have Internet -access when installing the ISO artifact built as no Ubuntu package -cache will be on the ISO! - -Note! Armband build system uses git submodules to track fuel and -other upstream repos, so in order to apply the above change, one -should first initialize the submodules and apply armband patches -(only needed once): - -.. code-block:: bash - - $ make submodules-init - $ make patches-import - -Configure your build environment --------------------------------- - -** Configuring the build environment should not be performed if building -standard Colorado release ** - -Select the versions of the components you want to build by editing the -<armband/upstream/fuel/build/config.mk> file. - -Note! The same observation as above, before altering Makefile, run: - -.. code-block:: bash - - $ make submodules-init patches-import - -Non official build: Selecting which plugins to build ----------------------------------------------------- -In order to cut the build time for unofficial builds (made by an -individual developer locally), the selection if which Fuel plugins to -build (if any) can be done by environment variable -"BUILD_FUEL_PLUGINS" prior to building. - -Only the plugin targets from -<armband/upstream/fuel/build/f_isoroot/Makefile> that are -specified in the environment variable will then be built. In order to -completely disable the building of plugins, the environment variable -is set to " ". When using this functionality, the resulting iso file -will be prepended with the prefix "unofficial-" to clearly indicate -that this is not a full build. - -This method of plugin selection is not meant to be used from within -Gerrit! - -Note! Not all plugins are ported to AArch64. Full list of supported plugins is in release notes. - -Building -======== - -There is only one preffered method available for building Fuel for AArch64: - -- A low level method using Make - -Low level build method using make ---------------------------------- -The low level method is based on Make: - -From the <armband> directory, invoke <make [target]> - -Following targets exist: - -- release - this will do the same as: - - - make submodules-clean clean-docker clean-build - - - make submodules-init patches-import build - -- none/all/build - this will: - - - Initialize the docker build environment - - - Build Fuel from upstream (as defined by fuel-build/config-spec) - - - Build the OPNFV defined plugins/features from upstream - - - Build the defined additions to fuel (as defined by the structure - of this framework) - - - Apply changes and patches to fuel (as defined by the structure of - this framework) - - - Reconstruct a fuel .iso image - -- submodules-init - Initialize git submodules (fuel@OPNFV, fuel-library etc.) - -- submodules-clean - cleanup git submodules (fuel@OPNFV, fuel-library etc.) - -- patches-import - this will apply armband@OPNFV patches to git submodules - -- patches-export - this will export git submodules changes as armband patches - -- clean-build - this will remove all artifacts from earlier builds. - -- clean-docker - this will remove all docker caches from earlier builds. - -If the build is successful, you will find the generated ISO file in -the <armband/upstream/fuel/build/release> subdirectory! - -Artifacts -========= - -The artifacts produced are: - -- <OPNFV_XXXX.iso> - Which represents the bootable (x86_64) Fuel for AArch64 - image, XXXX is replaced with the build identity provided to the build system - -- <OPNFV_XXXX.iso.txt> - Which holds version metadata. - -References -========== - -1) `OPNFV Installation instruction for the AArch64 Colorado 1.0 release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/armband/docs/installation-instruction.html>`_ - -2) `OPNFV Build instruction for the AArch64 Colorado 1.0 release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/armband/docs/build-instruction.html>`_ - -3) `OPNFV Release Note for the AArch64 Colorado 1.0 release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/armband/docs/release-notes.html>`_ |