diff options
author | Miruna Paun <Miruna.Paun@enea.com> | 2017-04-07 12:27:55 +0200 |
---|---|---|
committer | Miruna Paun <Miruna.Paun@enea.com> | 2017-04-07 12:27:55 +0200 |
commit | 74c97c90a9fa10ebad46ec00061da9e2578b33a7 (patch) | |
tree | 9a6169d87c2b9ff598e83ae218c54c8400cefb78 | |
download | doc-enea-nfv-74c97c90a9fa10ebad46ec00061da9e2578b33a7.tar.gz |
Updated ENFV (COSNOS) Installation Guide
COSNOSCR-318 seeking to complete first time push
-rw-r--r-- | Makefile | 189 | ||||
-rw-r--r-- | book-enea-nfv-installation-guide/doc/0log-enfv_installation-guide.txt | 5 | ||||
-rw-r--r-- | book-enea-nfv-installation-guide/doc/about_release.xml | 32 | ||||
-rw-r--r-- | book-enea-nfv-installation-guide/doc/book.xml | 20 | ||||
-rw-r--r-- | book-enea-nfv-installation-guide/doc/hardware_requirements.xml | 77 | ||||
-rw-r--r-- | book-enea-nfv-installation-guide/doc/help_hw_req.xml | 37 | ||||
-rw-r--r-- | book-enea-nfv-installation-guide/doc/installation_deployment.xml | 869 | ||||
-rw-r--r-- | book-enea-nfv-installation-guide/doc/installation_health_check.xml | 27 | ||||
-rw-r--r-- | book-enea-nfv-installation-guide/doc/preface.xml | 130 | ||||
-rw-r--r-- | book-enea-nfv-installation-guide/doc/reference_index.xml-NOTES | 121 | ||||
-rw-r--r-- | book-enea-nfv-installation-guide/doc/tor_config_req.xml | 28 | ||||
-rw-r--r-- | book-enea-nfv-installation-guide/doc/use_cases_per_target_node.xml | 12 | ||||
-rw-r--r-- | book-enea-nfv-installation-guide/swcomp.mk | 10 | ||||
-rw-r--r-- | docsrc_common/pardoc-distro.xml | 18 | ||||
-rw-r--r-- | gen_known_issues.py | 120 | ||||
-rw-r--r-- | gen_pkgdiff.py | 222 | ||||
-rw-r--r-- | init.mk | 63 |
17 files changed, 1980 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..78dcfa9 --- /dev/null +++ b/Makefile | |||
@@ -0,0 +1,189 @@ | |||
1 | #Path to this subsystem's root directory | ||
2 | SUBSYSROOT := $(shell pwd) | ||
3 | |||
4 | # ***************** Generic docbuild.git auto-clone + s_docbuild symlink *** | ||
5 | # This also defines TMPCLONEROOT which optionally can be nondefault using BOOK_GLOBALCLONEROOT=yes or a path | ||
6 | include init.mk | ||
7 | |||
8 | # ----------------------------------------------------- | ||
9 | #Path to DocBook make files and templates | ||
10 | DOCBOOKMAKE = $(SUBSYSROOT)/s_docbuild/docmake | ||
11 | DOCBOOKTEMPLATE = $(SUBSYSROOT)/s_docbuild/template | ||
12 | |||
13 | #Path to the OLINK database including leading part of file name (will add -$(FORMAT).db) | ||
14 | DOCBOOKOLINKDB_BASE = $(SUBSYSROOT)/s_docbuild/olinkdb/olink-targetdb-master | ||
15 | |||
16 | DOCBOOK_OLINKS ?= yes | ||
17 | DOCBOOK_FO_USEFOP ?= yes | ||
18 | DOCBOOK_TO_BOOKDIR ?= yes | ||
19 | DOCBOOK_CLEANTMP ?= yes | ||
20 | |||
21 | COMPONENTS := $(shell ls -d book-enea* ) | ||
22 | # -------------------------------------------------------------- | ||
23 | ifeq ($(VERBOSE),yes) | ||
24 | VERB := | ||
25 | else | ||
26 | VERB := @ | ||
27 | endif | ||
28 | MAKEFLAGS += --no-print-directory | ||
29 | MAKEFLAGS += --directory $(SUBSYSROOT) | ||
30 | MAKEFLAGS += --no-builtin-rules --no-builting-variables | ||
31 | |||
32 | # Skip xml validation to make it possible to include xml files with unresolved links | ||
33 | VALIDATE = no | ||
34 | |||
35 | # BL_LABEL is either given on make command line or using BOOK_VER which have defaults below or a timestamp | ||
36 | |||
37 | # ****************************************************************** | ||
38 | |||
39 | # Export all parameters including those on the command line | ||
40 | export | ||
41 | |||
42 | .PHONY: doc books docusage init initbuild initpardoc dist | ||
43 | |||
44 | |||
45 | docusage: | ||
46 | @echo 'make docusage #Shows this help text' | ||
47 | @echo ' DOCBOOK_TOOLS_VERSIONS=yes #Displays DocBook tools versions in this machine' | ||
48 | @echo 'make doc #Builds doc. ALSO automatically does all inits if needed' | ||
49 | @echo 'make dist BOOK_DIST_DIR=xx/doc #Builds doc as above and copies results to BOOK_DIST_DIR' | ||
50 | @echo ' # Does not work with DOCBOOK_TO_BOOKDIR or BOOK_BUILD_DIR' | ||
51 | @echo ' BOOK_DIST_ECLIPSE=yes #Currently EclipseHelp formated doc will not be in BOOK_DIST_DIR' | ||
52 | @echo ' # unless BOOK_DIST_ECLIPSE is set to yes' | ||
53 | @echo 'make init #Init all needed init* below' | ||
54 | @echo 'make initbuild #Init s_docbuild Docbook build system and central files' | ||
55 | @echo 'make initpardoc #Init s_docsrc_common with extracted parameters/' | ||
56 | @echo 'make initissues #Init known issues section from Jira' | ||
57 | @echo ' DOCBOOK_CLEANTMP=no #Option to keep temp files in doc/ and tmp/' | ||
58 | @echo ' BOOK_GLOBALCLONEROOT=yes #Option for all init above to clone all outside the doc directory' | ||
59 | @echo ' BOOK_GLOBALCLONEROOT=otherpath #Option for all init above to clone all to given path' | ||
60 | @echo 'make pullbuild #git pull in s_docbuild' | ||
61 | @echo 'make clean #Clean results and all s_*, but not any external clones' | ||
62 | @echo '' | ||
63 | @echo 'Optional parameters for make doc:' | ||
64 | @echo ' COMP=<book-directory> #Component (book) to build. Book component names are book-*' | ||
65 | @echo ' #Default component/s:' | ||
66 | @echo ' $(COMPONENTS)' | ||
67 | @echo ' FORMAT=<format> #One of: pdf' | ||
68 | @echo ' BL_LABEL=<baseline> #Becomes footer in book' | ||
69 | @echo ' DOCBOOK_TO_BOOKDIR=no #(default yes) Avoid moving result to book directory' | ||
70 | @echo ' # and avoid erasing common doc and tmp directories' | ||
71 | @echo ' BOOKFORCE=yes #Force rebuilding (ignore dependency on file times or BL_LABEL)' | ||
72 | @echo ' # Dependency only works if common doc directory is kept' | ||
73 | @echo ' BOOKCONDITION="xx;yy;.." #Include XML elements with condition any of xx or yy' | ||
74 | @echo ' # (if rebuilding, BOOKFORCE=yes may be needed)' | ||
75 | @echo ' # Empty=only default. none=none, all=everything.' | ||
76 | @echo ' BOOKDEFAULTCONDITION #Default conditions, if no BOOKCONDITION. Used in book-*/swcomp.mk' | ||
77 | @echo ' SHOW_COMMENTS=yes #For proofread. Unhide <remark>..</remark> comments Only PDF' | ||
78 | @echo ' BOOKVERBOSE=yes #Verbose info building books' | ||
79 | @echo ' DOCBOOK_OLINKS=no #Avoid the olink database in Makefile (in book not using it)' | ||
80 | @echo ' DOCBOOK_OLINK_TARGETDB=only #Build a target db for this book (for links into it)' | ||
81 | @echo ' DOCBOOK_OLINK_TARGETDB=yes #Build a target db AND build the book' | ||
82 | @echo ' #Master olinkdb defined in this Makefile, one per generated format, is:' | ||
83 | @echo ' $(DOCBOOKOLINKDB_BASE)_*.db' | ||
84 | @echo ' Typical examples:' | ||
85 | @echo ' make doc Creates all books, all formats' | ||
86 | @echo ' make doc COMP=book-xxxx FORMAT=html' | ||
87 | @echo ' make doc COMP=book-xxxx FORMAT=pdf' | ||
88 | @echo ' make doc BL_LABEL="Version 1.2.3" Creates all with version in footers and front' | ||
89 | @echo '' | ||
90 | @echo ' Requires docbook-xsl-1.76.1 or later, docbook-xml 4.2, svg1.1, fop-1.0 + fop-hyph.jar' | ||
91 | @echo ' fop + the separate fop-hyph can be found together in package "libfop-java"' | ||
92 | @echo ' otherwise fetch fop-hyph.jar and place in same place as fop.jar' | ||
93 | @echo ' Requires libxml2-2.7.8 or later, libxslt-1.1.26 or later' | ||
94 | @echo ' Requires java machine to run fop (creating PDF). jar for optional FORMAT=eclipse' | ||
95 | @echo ' Without jar, the optional EclipseHelp format can not be built' | ||
96 | @echo ' tools_book_standalone.mk => libxml2, libxslt, and fop (and to catalog-el.xml)' | ||
97 | @echo ' catalog-el.xml => svg, docbook-xml, docbook-xsl' | ||
98 | ifeq ($(DOCBOOK_TOOLS_VERSIONS),yes) | ||
99 | $(VERB)$(MAKE) -f $(DOCBOOKMAKE)/tools_book_standalone.mk book_tools_versions | ||
100 | endif | ||
101 | |||
102 | # We rely on make doing these in order left to right | ||
103 | init: initbuild initpardoc | ||
104 | pullall: pullbuild | ||
105 | |||
106 | # If no COMP, iterate over books-* in COMPONENTS with make doc | ||
107 | ifeq ($(COMP),) | ||
108 | doc: | ||
109 | ifneq ($(filter book-%, $(COMPONENTS)),) | ||
110 | $(VERB)for comp in $(filter book-%, $(COMPONENTS)); do \ | ||
111 | $(MAKE) doc COMP=$$comp; \ | ||
112 | done | ||
113 | endif | ||
114 | |||
115 | else | ||
116 | include $(SUBSYSROOT)/$(COMP)/swcomp.mk | ||
117 | |||
118 | doc: books | ||
119 | @# | ||
120 | endif | ||
121 | |||
122 | dist: doc | ||
123 | @echo "Copying resulting built documents to $(BOOK_DIST_DIR)" | ||
124 | $(VERB)if [ "$(BOOK_DIST_DIR)" = "" ]; then echo "ERROR: Missing BOOK_DIST_DIR parameter, typically shall be xxx/doc"; exit 10; fi | ||
125 | $(VERB)if [ ! -d "`dirname $(BOOK_DIST_DIR)`" ]; then echo "ERROR: Missing parent for BOOK_DIST_DIR"; exit 10; fi | ||
126 | $(VERB)if [ -f "$(BOOK_DIST_DIR)/Makefile" ]; then echo "ERROR: Wrong BOOK_DIST_DIR, contains a Makefile?"; exit 10; fi | ||
127 | $(VERB)if [ ! -d "$(BOOK_DIST_DIR)" ]; then mkdir -p "$(BOOK_DIST_DIR)" ; fi | ||
128 | $(VERB)for book in $(COMPONENTS); do \ | ||
129 | if ls -d $$book/book*.pdf >/dev/null 2>&1; then cp --preserve=timestamps $$book/book*.pdf "$(BOOK_DIST_DIR)" ; fi ; \ | ||
130 | if ls -d $$book/html >/dev/null 2>&1; then cp -r --preserve=timestamps $$book/html "$(BOOK_DIST_DIR)" ; fi ; \ | ||
131 | done | ||
132 | |||
133 | # Default FORMATs | ||
134 | ifeq ($(FORMAT),) | ||
135 | FORMAT=pdf | ||
136 | endif | ||
137 | |||
138 | |||
139 | books: init | ||
140 | # BOOKPACKAGES is defined in all book-*/swcomp.mk | ||
141 | $(VERB)ENEA_NFV_REL_VER=`egrep 'id="ENEA_NFV_REL_VER"' s_docsrc_common/pardoc-distro.xml | sed 's/.*<phrase>//;s/<\/phrase>.*//'` ; \ | ||
142 | BOOKVER="$$ENEA_NFV_REL_VER" ; \ | ||
143 | for book in $(BOOKPACKAGES); do \ | ||
144 | for format in $(FORMAT); do \ | ||
145 | $(MAKE) -f $(DOCBOOKMAKE)/make_docbook_standalone.mk BOOK=$$book FORMAT=$$format BOOK_VER="$$BOOKVER" books || exit 10; \ | ||
146 | done ; \ | ||
147 | done | ||
148 | ifeq ($(DOCBOOK_TO_BOOKDIR),yes) | ||
149 | $(VERB)rm -rf doc tmp | ||
150 | else | ||
151 | ifeq ($(DOCBOOK_CLEANTMP),yes) | ||
152 | # keep only doc/pdf/book-*.pdf | ||
153 | $(VERB)rm -rf tmp 2>/dev/null ; rm -rf doc/pdf/book-*/ | ||
154 | endif | ||
155 | endif | ||
156 | |||
157 | # cleaninit cleans ALL tmpcommon and all s_* | ||
158 | clean: cleaninit | ||
159 | @echo "Cleaning build results and temporary files" | ||
160 | $(VERB)rm -rf doc tmp 2>/dev/null | ||
161 | ifneq ($(filter book-%, $(COMPONENTS)),) | ||
162 | $(VERB)for comp in $(filter book-%, $(COMPONENTS)); do \ | ||
163 | rm -rf $$comp/book*.pdf $$comp/html $$comp/eclipse 2>/dev/null; \ | ||
164 | done | ||
165 | $(VERB)rm -rf doc tmp 2>/dev/null | ||
166 | endif | ||
167 | |||
168 | # **************************************************************************** | ||
169 | # ******************** SUPPORT FOR dynamic pardoc with added parameters ****** | ||
170 | |||
171 | PATH_DOCSRC_COMMON = $(SUBSYSROOT)/s_docsrc_common | ||
172 | NAME_DOCSRC_COMMON = docsrc_common | ||
173 | TMPCLONEROOT_DOCSRC_COMMON := $(TMPCLONEROOT)/$(NAME_DOCSRC_COMMON) | ||
174 | TMPPARDOC := $(TMPCLONEROOT_DOCSRC_COMMON)/pardoc-distro.xml | ||
175 | |||
176 | initpardoc: s_docsrc_common | ||
177 | |||
178 | cleanpardoc: | ||
179 | @echo "Cleaning dynamic parameters" | ||
180 | $(VERB)rm -rf $(TMPCLONEROOT_DOCSRC_COMMON) ; rm s_docsrc_common | ||
181 | |||
182 | s_docsrc_common: $(TMPCLONEROOT_DOCSRC_COMMON) | ||
183 | $(VERB)rm s_docsrc_common 2>/dev/null; ln -s $(TMPCLONEROOT_DOCSRC_COMMON) s_docsrc_common | ||
184 | |||
185 | $(TMPCLONEROOT_DOCSRC_COMMON): | ||
186 | $(VERB)if [ ! -d "$(TMPCLONEROOT)" ] ; then mkdir -p "$(TMPCLONEROOT)" ; fi | ||
187 | $(VERB)if [ ! -d $(TMPCLONEROOT_DOCSRC_COMMON) ]; then mkdir -p $(TMPCLONEROOT_DOCSRC_COMMON) ; fi | ||
188 | @echo "**** Copy docsrc_common/ files to $(TMPCLONEROOT_DOCSRC_COMMON)" | ||
189 | $(VERB)cat docsrc_common/pardoc-distro.xml >$(TMPPARDOC) \ No newline at end of file | ||
diff --git a/book-enea-nfv-installation-guide/doc/0log-enfv_installation-guide.txt b/book-enea-nfv-installation-guide/doc/0log-enfv_installation-guide.txt new file mode 100644 index 0000000..33f8b39 --- /dev/null +++ b/book-enea-nfv-installation-guide/doc/0log-enfv_installation-guide.txt | |||
@@ -0,0 +1,5 @@ | |||
1 | 0log-enfv_installation-guide.txt | ||
2 | YYYY-MM-DD/name CR + short descriptive text for changes made | ||
3 | 2017-03-16/mrpa COSNOSCR-318 Created the 0log | ||
4 | 2017-03-23/mrpa COSNOSCR-361 updating build system locally on sestofb10 then once everything works, storing documentation files on Pharos once again | ||
5 | 2017-04-06/mrpa COSNOSCR-318 Updated formating, proofing and developed the book structure further | ||
diff --git a/book-enea-nfv-installation-guide/doc/about_release.xml b/book-enea-nfv-installation-guide/doc/about_release.xml new file mode 100644 index 0000000..a70b01a --- /dev/null +++ b/book-enea-nfv-installation-guide/doc/about_release.xml | |||
@@ -0,0 +1,32 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | <chapter id="relinfo-about-release"> | ||
5 | <title>About This Release</title> | ||
6 | |||
7 | <section id="relinfo-abstract"> | ||
8 | <title>Abstract</title> | ||
9 | |||
10 | <para>This document describes how to install the 1.0 release of Enea NFV | ||
11 | (ENFV) using Fuel as a deployment tool, and different target node pool(s). | ||
12 | It covers usage, limitations, dependencies and required system | ||
13 | resources.</para> | ||
14 | </section> | ||
15 | |||
16 | <section id="relinfo-introduction"> | ||
17 | <title>Introduction</title> | ||
18 | |||
19 | <para>This document provides guidelines on how to install and configure | ||
20 | the 1.0 release of ENFV when using Fuel as a deployment tool, including | ||
21 | the required software and hardware configurations, resulting in an ENFV | ||
22 | compliant deployment.</para> | ||
23 | |||
24 | <para>The available installation options give a high degree of freedom in | ||
25 | how the system is set-up, including architecture, services and features, | ||
26 | etc., however, the noted permutations may not provide an Enea NFV | ||
27 | compliant reference architecture.</para> | ||
28 | |||
29 | <para>The audience of this document is assumed to have good grasp of | ||
30 | networking and Unix/Linux administration knowledge.</para> | ||
31 | </section> | ||
32 | </chapter> \ No newline at end of file | ||
diff --git a/book-enea-nfv-installation-guide/doc/book.xml b/book-enea-nfv-installation-guide/doc/book.xml new file mode 100644 index 0000000..cba6611 --- /dev/null +++ b/book-enea-nfv-installation-guide/doc/book.xml | |||
@@ -0,0 +1,20 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [ | ||
4 | ]> | ||
5 | <book id="book_enea_nfv_installation_guide"> | ||
6 | <title><trademark class="registered">Enea</trademark> NFV Installation Guide</title> | ||
7 | <subtitle>Release Version | ||
8 | <xi:include href="../../s_docsrc_common/pardoc-distro.xml" xpointer="element(EneaNFV_REL_VER/1)" | ||
9 | xmlns:xi="http://www.w3.org/2001/XInclude" /></subtitle> | ||
10 | <xi:include href="../../s_docbuild/template/docsrc_common/bookinfo_userdoc.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
11 | <xi:include href="about_release.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
12 | <xi:include href="preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
13 | <xi:include href="hardware_requirements.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
14 | <xi:include href="help_hw_req.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
15 | <xi:include href="tor_config_req.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
16 | <xi:include href="installation_deployment.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
17 | <xi:include href="installation_health_check.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
18 | <xi:include href="use_cases_per_target_node.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
19 | <xi:include href="../../s_docbuild/template/docsrc_common/contacting_enea_enea_linux.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
20 | </book> | ||
diff --git a/book-enea-nfv-installation-guide/doc/hardware_requirements.xml b/book-enea-nfv-installation-guide/doc/hardware_requirements.xml new file mode 100644 index 0000000..0b28e3b --- /dev/null +++ b/book-enea-nfv-installation-guide/doc/hardware_requirements.xml | |||
@@ -0,0 +1,77 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | <chapter id="hardware-requirements"> | ||
5 | <title>Hardware requirements</title> | ||
6 | |||
7 | <para>The following minimum hardware requirements must be met for the | ||
8 | installation of ENFV using Fuel, to be successful:</para> | ||
9 | |||
10 | <informaltable> | ||
11 | <tgroup cols="2"> | ||
12 | <tbody> | ||
13 | <row> | ||
14 | <entry align="center" colname="HW Aspect"><emphasis | ||
15 | role="bold">Hardware Aspect</emphasis></entry> | ||
16 | |||
17 | <entry align="center" colname="Requirement"><emphasis | ||
18 | role="bold">Requirement</emphasis></entry> | ||
19 | </row> | ||
20 | |||
21 | <row> | ||
22 | <entry align="left">Nr. of nodes</entry> | ||
23 | |||
24 | <entry>Minimum 5 (3 for non-redundant deployment):<itemizedlist> | ||
25 | <listitem> | ||
26 | <para>1 Fuel deployment master (may be virtualized)</para> | ||
27 | </listitem> | ||
28 | |||
29 | <listitem> | ||
30 | <para>3 Controllers (1 co-located mongo/ceilometer role, 2 | ||
31 | Ceph-OSD roles)</para> | ||
32 | </listitem> | ||
33 | |||
34 | <listitem> | ||
35 | <para>1 Compute (1 co-located Ceph-OSD role)</para> | ||
36 | </listitem> | ||
37 | </itemizedlist></entry> | ||
38 | </row> | ||
39 | |||
40 | <row> | ||
41 | <entry>CPU</entry> | ||
42 | |||
43 | <entry>Minimum 1 socket x86_AMD64 with Virtualization | ||
44 | support</entry> | ||
45 | </row> | ||
46 | |||
47 | <row> | ||
48 | <entry>RAM</entry> | ||
49 | |||
50 | <entry>Minimum 16GB/server (depending on VNF work load)</entry> | ||
51 | </row> | ||
52 | |||
53 | <row> | ||
54 | <entry>Disk</entry> | ||
55 | |||
56 | <entry>Minimum 256GB 10kRPM spinning disks</entry> | ||
57 | </row> | ||
58 | |||
59 | <row> | ||
60 | <entry>Networks</entry> | ||
61 | |||
62 | <entry><itemizedlist> | ||
63 | <listitem> | ||
64 | <para>4 Tagged VLANs (PUBLIC, MGMT, STORAGE, PRIVATE)</para> | ||
65 | </listitem> | ||
66 | |||
67 | <listitem> | ||
68 | <para>1 Un-Tagged VLAN for PXE Boot - ADMIN Network</para> | ||
69 | </listitem> | ||
70 | </itemizedlist><para>Note: These can be allocated to a single NIC | ||
71 | - or spread out over multiple NICs as supported by your | ||
72 | hardware.</para></entry> | ||
73 | </row> | ||
74 | </tbody> | ||
75 | </tgroup> | ||
76 | </informaltable> | ||
77 | </chapter> \ No newline at end of file | ||
diff --git a/book-enea-nfv-installation-guide/doc/help_hw_req.xml b/book-enea-nfv-installation-guide/doc/help_hw_req.xml new file mode 100644 index 0000000..4b5f676 --- /dev/null +++ b/book-enea-nfv-installation-guide/doc/help_hw_req.xml | |||
@@ -0,0 +1,37 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | <chapter id="help-hw-req"> | ||
5 | <title>Help with Hardware Requirements</title> | ||
6 | |||
7 | <para>For information on compatible hardware types available for use, please | ||
8 | see the <ulink | ||
9 | url="http://docs.openstack.org/developer/fueldocs/plugindocs/fuel-plugin-sdk-guide.html">Fuel | ||
10 | Plugin Developers Guide</ulink><remark>update this link with the correct | ||
11 | ENFV guide if needed.</remark> . When choosing the hardware on which you | ||
12 | will deploy your OpenStack environment, you should consider the | ||
13 | following:</para> | ||
14 | |||
15 | <itemizedlist> | ||
16 | <listitem> | ||
17 | <para>CPU – the number of virtual machines that you plan to deploy | ||
18 | in your cloud environment and the CPU per virtual machine.</para> | ||
19 | </listitem> | ||
20 | |||
21 | <listitem> | ||
22 | <para>Memory – depends on the amount of RAM assigned per virtual | ||
23 | machine and the controller node.</para> | ||
24 | </listitem> | ||
25 | |||
26 | <listitem> | ||
27 | <para>Storage – depends on the local-drive space per virtual | ||
28 | machine, remote volumes that can be attached to a virtual machine, and | ||
29 | object storage.</para> | ||
30 | </listitem> | ||
31 | |||
32 | <listitem> | ||
33 | <para>Networking – depends on the chosen Network Topology, the | ||
34 | network bandwidth per virtual machine, and network storage.</para> | ||
35 | </listitem> | ||
36 | </itemizedlist> | ||
37 | </chapter> \ No newline at end of file | ||
diff --git a/book-enea-nfv-installation-guide/doc/installation_deployment.xml b/book-enea-nfv-installation-guide/doc/installation_deployment.xml new file mode 100644 index 0000000..55920af --- /dev/null +++ b/book-enea-nfv-installation-guide/doc/installation_deployment.xml | |||
@@ -0,0 +1,869 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | <chapter id="sw-installation-deployment"> | ||
5 | <title>ENFV Software Installation and Deployment</title> | ||
6 | |||
7 | <para>This section describes the installation of the ENFV installation | ||
8 | server (Fuel master) as well as the deployment of the full ENFV reference | ||
9 | platform stack across a server cluster.</para> | ||
10 | |||
11 | <section id="instal-fuel-master"> | ||
12 | <title>Install Fuel master</title> | ||
13 | |||
14 | <orderedlist> | ||
15 | <listitem> | ||
16 | <para>Mount the ENFV Fuel ISO file/media as a boot device to the jump | ||
17 | host server.</para> | ||
18 | </listitem> | ||
19 | |||
20 | <listitem> | ||
21 | <para>Reboot the jump host to establish the Fuel server:</para> | ||
22 | |||
23 | <itemizedlist> | ||
24 | <listitem> | ||
25 | <para>The system now boots from the ISO image</para> | ||
26 | </listitem> | ||
27 | |||
28 | <listitem> | ||
29 | <para>Select ”Fuel Install (Static IP)” (See figure | ||
30 | below)</para> | ||
31 | |||
32 | <remark>Insert the appropriate figure/screenshot</remark> | ||
33 | </listitem> | ||
34 | |||
35 | <listitem> | ||
36 | <para>Press [Enter]</para> | ||
37 | </listitem> | ||
38 | </itemizedlist> | ||
39 | </listitem> | ||
40 | |||
41 | <listitem> | ||
42 | <para>Wait until the Fuel setup screen is shown, this can take up to | ||
43 | 30 minutes.</para> | ||
44 | </listitem> | ||
45 | |||
46 | <listitem> | ||
47 | <para>In the ”Fuel User” section, confirm/change the | ||
48 | default password (see figure below) <remark>Insert the appropriate | ||
49 | figure/screenshot</remark></para> | ||
50 | |||
51 | <itemizedlist> | ||
52 | <listitem> | ||
53 | <para>Enter ”admin” in the Fuel password input</para> | ||
54 | </listitem> | ||
55 | |||
56 | <listitem> | ||
57 | <para>Enter ”admin” in the Confirm password | ||
58 | input</para> | ||
59 | </listitem> | ||
60 | |||
61 | <listitem> | ||
62 | <para>Select ”Check” and press [Enter]</para> | ||
63 | </listitem> | ||
64 | </itemizedlist> | ||
65 | </listitem> | ||
66 | |||
67 | <listitem> | ||
68 | <para>In the ”Network Setup” section, configure | ||
69 | DHCP/Static IP information for your FUEL node. E.g.: ETH0 is | ||
70 | 10.20.0.2/24 for FUEL booting and ETH1 is DHCP in your corporate/lab | ||
71 | network (see figure below) <remark>Insert the appropriate | ||
72 | figure/screenshot</remark>.</para> | ||
73 | |||
74 | <itemizedlist> | ||
75 | <listitem> | ||
76 | <para>Configure eth1 or other network interfaces here as well (if | ||
77 | you have them present on your FUEL server).</para> | ||
78 | </listitem> | ||
79 | </itemizedlist> | ||
80 | </listitem> | ||
81 | |||
82 | <listitem> | ||
83 | <para>In the ”PXE Setup” section (see figure below), | ||
84 | change the following fields to appropriate values, for example:</para> | ||
85 | |||
86 | <itemizedlist> | ||
87 | <listitem> | ||
88 | <para>DHCP Pool Start 10.20.0.3</para> | ||
89 | </listitem> | ||
90 | |||
91 | <listitem> | ||
92 | <para>DHCP Pool End 10.20.0.254</para> | ||
93 | </listitem> | ||
94 | |||
95 | <listitem> | ||
96 | <para>DHCP Pool Gateway 10.20.0.2 (IP address of Fuel node)</para> | ||
97 | |||
98 | <remark>Insert the appropriate figure/screenshot</remark> | ||
99 | </listitem> | ||
100 | </itemizedlist> | ||
101 | </listitem> | ||
102 | |||
103 | <listitem> | ||
104 | <para>In the ”DNS & Hostname” section (see figure | ||
105 | below), change the following fields to appropriate values:</para> | ||
106 | |||
107 | <itemizedlist> | ||
108 | <listitem> | ||
109 | <para>Hostname</para> | ||
110 | </listitem> | ||
111 | |||
112 | <listitem> | ||
113 | <para>Domain</para> | ||
114 | </listitem> | ||
115 | |||
116 | <listitem> | ||
117 | <para>Search Domain</para> | ||
118 | </listitem> | ||
119 | |||
120 | <listitem> | ||
121 | <para>External DNS</para> | ||
122 | </listitem> | ||
123 | |||
124 | <listitem> | ||
125 | <para>Hostname to test DNS</para> | ||
126 | </listitem> | ||
127 | |||
128 | <listitem> | ||
129 | <para>Select <Check> and press [Enter]</para> | ||
130 | |||
131 | <remark>Insert the appropriate figure/screenshot</remark> | ||
132 | </listitem> | ||
133 | </itemizedlist> | ||
134 | </listitem> | ||
135 | |||
136 | <listitem> | ||
137 | <para>You have the option to enable PROXY SUPPORT. In the | ||
138 | ”Bootstrap Image” section (see figure below), edit the | ||
139 | following fields to define a proxy. This cannot be used in tandem with | ||
140 | local repository support.</para> | ||
141 | |||
142 | <itemizedlist> | ||
143 | <listitem> | ||
144 | <para>Navigate to ”HTTP proxy” and enter your http | ||
145 | proxy address</para> | ||
146 | </listitem> | ||
147 | |||
148 | <listitem> | ||
149 | <para>Select <Check> and press [Enter]</para> | ||
150 | |||
151 | <remark>Insert the appropriate figure/screenshot</remark> | ||
152 | </listitem> | ||
153 | </itemizedlist> | ||
154 | </listitem> | ||
155 | |||
156 | <listitem> | ||
157 | <para>In the ”Time Sync” section (see figure below), | ||
158 | change the following fields to appropriate values:</para> | ||
159 | |||
160 | <itemizedlist> | ||
161 | <listitem> | ||
162 | <para>NTP Server 1 <Customer NTP server 1></para> | ||
163 | </listitem> | ||
164 | |||
165 | <listitem> | ||
166 | <para>NTP Server 2 <Customer NTP server 2></para> | ||
167 | </listitem> | ||
168 | |||
169 | <listitem> | ||
170 | <para>NTP Server 3 <Customer NTP server 3></para> | ||
171 | |||
172 | <remark>Insert the appropriate figure/screenshot</remark> | ||
173 | </listitem> | ||
174 | </itemizedlist> | ||
175 | </listitem> | ||
176 | |||
177 | <listitem> | ||
178 | <para>Start the installation</para> | ||
179 | |||
180 | <itemizedlist> | ||
181 | <listitem> | ||
182 | <para>Select "Quit Setup" and press [Save and Quit].</para> | ||
183 | </listitem> | ||
184 | |||
185 | <listitem> | ||
186 | <para>The installation will now start. Wait until the login screen | ||
187 | is shown.</para> | ||
188 | </listitem> | ||
189 | </itemizedlist> | ||
190 | </listitem> | ||
191 | </orderedlist> | ||
192 | </section> | ||
193 | |||
194 | <section id="boot-node-servers"> | ||
195 | <title>Boot the Node Servers</title> | ||
196 | |||
197 | <para>After the Fuel Master node has rebooted from the steps mentioned | ||
198 | above and is at the login prompt, you should boot the Node Servers (the | ||
199 | Compute/Control/Storage blades, nested or real) with a PXE booting scheme | ||
200 | so that the FUEL Master can pick them up for control.</para> | ||
201 | |||
202 | <orderedlist> | ||
203 | <listitem> | ||
204 | <para>Enable PXE booting</para> | ||
205 | |||
206 | <itemizedlist> | ||
207 | <listitem> | ||
208 | <para>For every controller and compute server: enable PXE Booting | ||
209 | as the first boot device in the BIOS boot order menu, and hard | ||
210 | disk as the second boot device in the same menu.</para> | ||
211 | </listitem> | ||
212 | </itemizedlist> | ||
213 | </listitem> | ||
214 | |||
215 | <listitem> | ||
216 | <para>Reboot all the control and compute blades</para> | ||
217 | </listitem> | ||
218 | |||
219 | <listitem> | ||
220 | <para>Wait for the availability of nodes to show up in the Fuel | ||
221 | GUI.</para> | ||
222 | |||
223 | <itemizedlist> | ||
224 | <listitem> | ||
225 | <para>Connect to the FUEL UI via the URL provided in the Console | ||
226 | (default: https://10.20.0.2:8443).</para> | ||
227 | </listitem> | ||
228 | |||
229 | <listitem> | ||
230 | <para>Wait until all nodes are displayed in top right corner of | ||
231 | the Fuel GUI: Total nodes and Unallocated nodes (see figure | ||
232 | below): <remark>Insert the appropriate | ||
233 | figure/screenshot</remark></para> | ||
234 | </listitem> | ||
235 | </itemizedlist> | ||
236 | </listitem> | ||
237 | </orderedlist> | ||
238 | </section> | ||
239 | |||
240 | <section id="plugins-features"> | ||
241 | <title>Install additional Plugins/Features on the FUEL node</title> | ||
242 | |||
243 | <para>Use the following procedure to install additional plugins and | ||
244 | features:</para> | ||
245 | |||
246 | <orderedlist> | ||
247 | <listitem> | ||
248 | <para>SSH to your FUEL node (e.g. root@10.20.0.2 pwd: r00tme)</para> | ||
249 | </listitem> | ||
250 | |||
251 | <listitem> | ||
252 | <para>Select wanted plugins/features from the /opt/enfv/ | ||
253 | directory.</para> | ||
254 | </listitem> | ||
255 | |||
256 | <listitem> | ||
257 | <para>Install each wanted plugin with the command:</para> | ||
258 | |||
259 | <programlisting>$ fuel plugins --install /opt/enfv/<plugin-name>-<version>.<arch>.rpm</programlisting> | ||
260 | |||
261 | <para>Expected output (see figure below):</para> | ||
262 | |||
263 | <programlisting>Plugin ....... was successfully installed.</programlisting> | ||
264 | |||
265 | <remark>Insert the appropriate figure/screenshot</remark> | ||
266 | </listitem> | ||
267 | </orderedlist> | ||
268 | </section> | ||
269 | |||
270 | <section id="create-openstack"> | ||
271 | <title>Create an OpenStack Environment</title> | ||
272 | |||
273 | <para>Follow the procedure below to create an OpenStack | ||
274 | environment:</para> | ||
275 | |||
276 | <orderedlist> | ||
277 | <listitem> | ||
278 | <para>Connect to Fuel WEB UI with a browser (default: | ||
279 | https://10.20.0.2:8443) (login: admin/admin)</para> | ||
280 | </listitem> | ||
281 | |||
282 | <listitem> | ||
283 | <para>Create and name a new OpenStack environment that you want to | ||
284 | install</para> | ||
285 | </listitem> | ||
286 | |||
287 | <listitem> | ||
288 | <para>Select ”Mitaka on Ubuntu 14.04” and press | ||
289 | [Next]</para> | ||
290 | </listitem> | ||
291 | |||
292 | <listitem> | ||
293 | <para>Select ”compute virtualization method”, then select | ||
294 | ”QEMU-KVM as hypervisor” and press [Next]</para> | ||
295 | </listitem> | ||
296 | |||
297 | <listitem> | ||
298 | <para>Select ”network mode”</para> | ||
299 | |||
300 | <itemizedlist> | ||
301 | <listitem> | ||
302 | <para>Select ”Neutron with ML2 plugin”</para> | ||
303 | </listitem> | ||
304 | |||
305 | <listitem> | ||
306 | <para>Select ”Neutron with tunneling segmentation”, | ||
307 | required when using the ODL or ONOS plugins.</para> | ||
308 | </listitem> | ||
309 | |||
310 | <listitem> | ||
311 | <para>Press [Next]</para> | ||
312 | </listitem> | ||
313 | </itemizedlist> | ||
314 | </listitem> | ||
315 | |||
316 | <listitem> | ||
317 | <para>Select ”Storage Back-ends”, then ”Ceph for | ||
318 | block storage” and press [Next]</para> | ||
319 | </listitem> | ||
320 | |||
321 | <listitem> | ||
322 | <para>Select the ”additional services” you wish to | ||
323 | install</para> | ||
324 | |||
325 | <itemizedlist> | ||
326 | <listitem> | ||
327 | <para>Check option ”Install Ceilometer and Aodh” and | ||
328 | press [Next]</para> | ||
329 | </listitem> | ||
330 | </itemizedlist> | ||
331 | </listitem> | ||
332 | |||
333 | <listitem> | ||
334 | <para>Create the new environment by clicking the [Create] | ||
335 | Button.</para> | ||
336 | </listitem> | ||
337 | </orderedlist> | ||
338 | </section> | ||
339 | |||
340 | <section id="config-net-env"> | ||
341 | <title>Configure the network environment</title> | ||
342 | |||
343 | <para>To configure the network environment please follow these | ||
344 | steps:</para> | ||
345 | |||
346 | <orderedlist> | ||
347 | <listitem> | ||
348 | <para>Open the environment you previously created</para> | ||
349 | </listitem> | ||
350 | |||
351 | <listitem> | ||
352 | <para>Open the networks tab and select the ”default” Node | ||
353 | Networks group on the left pane (see figure below) .</para> | ||
354 | |||
355 | <remark>Insert the appropriate figure/screenshot</remark> | ||
356 | </listitem> | ||
357 | |||
358 | <listitem> | ||
359 | <para>Update the Public Network configuration and change the following | ||
360 | fields to appropriate values:</para> | ||
361 | |||
362 | <itemizedlist> | ||
363 | <listitem> | ||
364 | <para>CIDR to <CIDR for Public IP Addresses></para> | ||
365 | </listitem> | ||
366 | |||
367 | <listitem> | ||
368 | <para>IP Range Start to <Public IP Address start></para> | ||
369 | </listitem> | ||
370 | |||
371 | <listitem> | ||
372 | <para>IP Range End to <Public IP Address end></para> | ||
373 | </listitem> | ||
374 | |||
375 | <listitem> | ||
376 | <para>Gateway to <Gateway for Public IP Addresses></para> | ||
377 | </listitem> | ||
378 | |||
379 | <listitem> | ||
380 | <para>Check <VLAN tagging></para> | ||
381 | </listitem> | ||
382 | |||
383 | <listitem> | ||
384 | <para>Set appropriate VLAN ID</para> | ||
385 | </listitem> | ||
386 | </itemizedlist> | ||
387 | </listitem> | ||
388 | |||
389 | <listitem> | ||
390 | <para>Update the Storage Network Configuration:</para> | ||
391 | |||
392 | <itemizedlist> | ||
393 | <listitem> | ||
394 | <para>Set CIDR to an appropriate value (default | ||
395 | 192.168.1.0/24)</para> | ||
396 | </listitem> | ||
397 | |||
398 | <listitem> | ||
399 | <para>Set IP Range Start to an appropriate value (default | ||
400 | 192.168.1.1)</para> | ||
401 | </listitem> | ||
402 | |||
403 | <listitem> | ||
404 | <para>Set IP Range End to an appropriate value (default | ||
405 | 192.168.1.254)</para> | ||
406 | </listitem> | ||
407 | |||
408 | <listitem> | ||
409 | <para>Set VLAN to an appropriate value (default 102)</para> | ||
410 | </listitem> | ||
411 | </itemizedlist> | ||
412 | </listitem> | ||
413 | |||
414 | <listitem> | ||
415 | <para>Update the Management Network configuration:</para> | ||
416 | |||
417 | <itemizedlist> | ||
418 | <listitem> | ||
419 | <para>Set CIDR to an appropriate value (default | ||
420 | 192.168.0.0/24)</para> | ||
421 | </listitem> | ||
422 | |||
423 | <listitem> | ||
424 | <para>Set IP Range Start to an appropriate value (default | ||
425 | 192.168.0.1)</para> | ||
426 | </listitem> | ||
427 | |||
428 | <listitem> | ||
429 | <para>Set IP Range End to an appropriate value (default | ||
430 | 192.168.0.254)</para> | ||
431 | </listitem> | ||
432 | |||
433 | <listitem> | ||
434 | <para>Check <VLAN tagging></para> | ||
435 | </listitem> | ||
436 | |||
437 | <listitem> | ||
438 | <para>Set appropriate VLAN ID (default 101)</para> | ||
439 | </listitem> | ||
440 | </itemizedlist> | ||
441 | </listitem> | ||
442 | |||
443 | <listitem> | ||
444 | <para>Update the Private Network information:</para> | ||
445 | |||
446 | <itemizedlist> | ||
447 | <listitem> | ||
448 | <para>Set CIDR to an appropriate value (default | ||
449 | 192.168.2.0/24)</para> | ||
450 | </listitem> | ||
451 | |||
452 | <listitem> | ||
453 | <para>Set IP Range Start to an appropriate value (default | ||
454 | 192.168.2.1)</para> | ||
455 | </listitem> | ||
456 | |||
457 | <listitem> | ||
458 | <para>Set IP Range End to an appropriate value (default | ||
459 | 192.168.2.254)</para> | ||
460 | </listitem> | ||
461 | |||
462 | <listitem> | ||
463 | <para>Check <VLAN tagging></para> | ||
464 | </listitem> | ||
465 | |||
466 | <listitem> | ||
467 | <para>Set appropriate VLAN tag (default 103)</para> | ||
468 | </listitem> | ||
469 | </itemizedlist> | ||
470 | </listitem> | ||
471 | |||
472 | <listitem> | ||
473 | <para>Select the ”Neutron L3” Node Networks group on the | ||
474 | left pane</para> | ||
475 | </listitem> | ||
476 | |||
477 | <listitem> | ||
478 | <para>Update the Floating Network configuration:</para> | ||
479 | |||
480 | <itemizedlist> | ||
481 | <listitem> | ||
482 | <para>Set the Floating IP range start (default | ||
483 | 172.16.0.130)</para> | ||
484 | </listitem> | ||
485 | |||
486 | <listitem> | ||
487 | <para>Set the Floating IP range end (default 172.16.0.254)</para> | ||
488 | </listitem> | ||
489 | |||
490 | <listitem> | ||
491 | <para>Set the Floating network name (default | ||
492 | admin_floating_net)</para> | ||
493 | </listitem> | ||
494 | </itemizedlist> | ||
495 | </listitem> | ||
496 | |||
497 | <listitem> | ||
498 | <para>Update the Internal Network configuration:</para> | ||
499 | |||
500 | <itemizedlist> | ||
501 | <listitem> | ||
502 | <para>Set Internal network CIDR to an appropriate value (default | ||
503 | 192.168.111.0/24)</para> | ||
504 | </listitem> | ||
505 | |||
506 | <listitem> | ||
507 | <para>Set Internal network gateway to an appropriate value</para> | ||
508 | </listitem> | ||
509 | |||
510 | <listitem> | ||
511 | <para>Set the Internal network name (default | ||
512 | admin_internal_net)</para> | ||
513 | </listitem> | ||
514 | </itemizedlist> | ||
515 | </listitem> | ||
516 | |||
517 | <listitem> | ||
518 | <para>Update the Guest OS DNS servers by setting Guest OS DNS Server | ||
519 | values appropriately</para> | ||
520 | </listitem> | ||
521 | |||
522 | <listitem> | ||
523 | <para>Save Settings</para> | ||
524 | </listitem> | ||
525 | |||
526 | <listitem> | ||
527 | <para>Select the ”Other” Node Networks group on the left | ||
528 | pane (see figure below) <remark>Insert the appropriate | ||
529 | figure/screenshot</remark></para> | ||
530 | </listitem> | ||
531 | |||
532 | <listitem> | ||
533 | <para>Update the Public Network assignment by checking the box for | ||
534 | ”Assign public network to all nodes” (required by | ||
535 | OpenDaylight).</para> | ||
536 | </listitem> | ||
537 | |||
538 | <listitem> | ||
539 | <para>Update Host OS DNS Servers by providing the DNS server | ||
540 | settings</para> | ||
541 | </listitem> | ||
542 | |||
543 | <listitem> | ||
544 | <para>Update Host OS NTP Servers by providing the NTP server | ||
545 | settings</para> | ||
546 | </listitem> | ||
547 | </orderedlist> | ||
548 | </section> | ||
549 | |||
550 | <section id="hypervisor-type"> | ||
551 | <title>Select Hypervisor type</title> | ||
552 | |||
553 | <para>Select the Hypervisor type in the following way:</para> | ||
554 | |||
555 | <orderedlist> | ||
556 | <listitem> | ||
557 | <para>In the FUEL UI of your Environment, click the | ||
558 | ”Settings” Tab</para> | ||
559 | </listitem> | ||
560 | |||
561 | <listitem> | ||
562 | <para>Select ”Compute” on the left side pane (see figure | ||
563 | below), check the KVM box and press [Save settings]</para> | ||
564 | |||
565 | <remark>Insert the appropriate figure/screenshot</remark> | ||
566 | </listitem> | ||
567 | </orderedlist> | ||
568 | </section> | ||
569 | |||
570 | <section id="enable-plugins"> | ||
571 | <title>Enable Plugins</title> | ||
572 | |||
573 | <para>To enable needed plugins, follow these steps:</para> | ||
574 | |||
575 | <orderedlist> | ||
576 | <listitem> | ||
577 | <para>In the FUEL UI of your Environment, click the | ||
578 | ”Settings” Tab</para> | ||
579 | </listitem> | ||
580 | |||
581 | <listitem> | ||
582 | <para>Select "Other" on the left side pane (see figure below), then | ||
583 | enable and configure the plugins of your choice <remark>Insert the | ||
584 | appropriate figure/screenshot</remark></para> | ||
585 | </listitem> | ||
586 | </orderedlist> | ||
587 | </section> | ||
588 | |||
589 | <section id="allocate-nodes-assign-roles"> | ||
590 | <title>Allocate Nodes to Environment and assign Functional Roles</title> | ||
591 | |||
592 | <para>This is accomplished in the following way:</para> | ||
593 | |||
594 | <orderedlist> | ||
595 | <listitem> | ||
596 | <para>Click on the ”Nodes” Tab in the FUEL WEB UI (see | ||
597 | figure below) <remark>Insert the appropriate | ||
598 | figure/screenshot</remark></para> | ||
599 | </listitem> | ||
600 | |||
601 | <listitem> | ||
602 | <para>Assign roles (see figure below):</para> | ||
603 | |||
604 | <itemizedlist> | ||
605 | <listitem> | ||
606 | <para>Click on the [+Add Nodes>] button</para> | ||
607 | </listitem> | ||
608 | |||
609 | <listitem> | ||
610 | <para>Check <Controller>, <Telemetry - MongoDB> and | ||
611 | optionally an SDN Controller role (OpenDaylight controller/ONOS) | ||
612 | in the ”Assign Roles” Section.</para> | ||
613 | </listitem> | ||
614 | |||
615 | <listitem> | ||
616 | <para>Check one node which you want to act as a Controller from | ||
617 | the bottom half of the screen</para> | ||
618 | </listitem> | ||
619 | |||
620 | <listitem> | ||
621 | <para>Click [Apply Changes]</para> | ||
622 | </listitem> | ||
623 | |||
624 | <listitem> | ||
625 | <para>Click on the [+Add Nodes] button</para> | ||
626 | </listitem> | ||
627 | |||
628 | <listitem> | ||
629 | <para>Check the <Controller> and <Storage - Ceph OSD> | ||
630 | roles</para> | ||
631 | </listitem> | ||
632 | |||
633 | <listitem> | ||
634 | <para>Check the next two nodes you want to act as Controllers from | ||
635 | the bottom half of the screen</para> | ||
636 | </listitem> | ||
637 | |||
638 | <listitem> | ||
639 | <para>Click [Apply Changes]</para> | ||
640 | </listitem> | ||
641 | |||
642 | <listitem> | ||
643 | <para>Click on the [+Add Nodes] button</para> | ||
644 | </listitem> | ||
645 | |||
646 | <listitem> | ||
647 | <para>Check the <Compute> and <Storage - Ceph OSD> | ||
648 | roles</para> | ||
649 | </listitem> | ||
650 | |||
651 | <listitem> | ||
652 | <para>Check the Nodes you want to act as Computes from the bottom | ||
653 | half of the screen</para> | ||
654 | </listitem> | ||
655 | |||
656 | <listitem> | ||
657 | <para>Click [Apply Changes] <remark>Insert the appropriate | ||
658 | figure/screenshot</remark></para> | ||
659 | </listitem> | ||
660 | </itemizedlist> | ||
661 | </listitem> | ||
662 | |||
663 | <listitem> | ||
664 | <para>Configure Interfaces (see figure below):</para> | ||
665 | |||
666 | <itemizedlist> | ||
667 | <listitem> | ||
668 | <para>Check [Select <All>] to select all allocated | ||
669 | nodes</para> | ||
670 | </listitem> | ||
671 | |||
672 | <listitem> | ||
673 | <para>Click [Configure Interfaces]</para> | ||
674 | </listitem> | ||
675 | |||
676 | <listitem> | ||
677 | <para>Assign interfaces (bonded) for mgmt-, admin-, private-, | ||
678 | public- and storage networks, and click [Apply] <remark>Insert the | ||
679 | appropriate figure/screenshot</remark></para> | ||
680 | </listitem> | ||
681 | </itemizedlist> | ||
682 | </listitem> | ||
683 | </orderedlist> | ||
684 | </section> | ||
685 | |||
686 | <section id="set-local-mirror-repos"> | ||
687 | <title>OPTIONAL - Set Local Mirror Repos</title> | ||
688 | |||
689 | <para>The following steps must be executed if you are in an environment | ||
690 | with no connection to the Internet. The Fuel server delivers a local repo | ||
691 | that can be used for installation/deployment of Openstack.</para> | ||
692 | |||
693 | <orderedlist> | ||
694 | <listitem> | ||
695 | <para>In the Fuel UI of your environment, click the Settings Tab and | ||
696 | select "General" from the left pane</para> | ||
697 | </listitem> | ||
698 | |||
699 | <listitem> | ||
700 | <para>Replace the URI values for the ”Name” values | ||
701 | outlined below:</para> | ||
702 | |||
703 | <itemizedlist> | ||
704 | <listitem> | ||
705 | <para>”ubuntu” URI=”deb | ||
706 | http://<ip-of-fuel-server>:8080/mirrors/ubuntu/trusty main | ||
707 | universe multiverse”</para> | ||
708 | </listitem> | ||
709 | |||
710 | <listitem> | ||
711 | <para>”ubuntu-security” URI=”deb | ||
712 | http://<ip-of-fuelserver>:8080/mirrors/ubuntu/trusty-security | ||
713 | main universe multiverse”</para> | ||
714 | </listitem> | ||
715 | |||
716 | <listitem> | ||
717 | <para>”ubuntu-updates” URI=”deb | ||
718 | http://<ip-of-fuelserver>:8080/mirrors/ubuntu/trusty-updates | ||
719 | main universe multiverse”</para> | ||
720 | </listitem> | ||
721 | |||
722 | <listitem> | ||
723 | <para>”mos” URI=”deb | ||
724 | http://<ip-of-fuel-server>::8080/mitaka-9.0/ubuntu/x86_64 | ||
725 | mos9.0 main restricted”</para> | ||
726 | </listitem> | ||
727 | |||
728 | <listitem> | ||
729 | <para>”Auxiliary” URI=”deb | ||
730 | http://<ip-of-fuel-server>:8080/mitaka-9.0/ubuntu/auxiliary | ||
731 | auxiliary main restricted”</para> | ||
732 | </listitem> | ||
733 | </itemizedlist> | ||
734 | </listitem> | ||
735 | |||
736 | <listitem> | ||
737 | <para>Click [Save Settings] at the bottom to save your changes.</para> | ||
738 | </listitem> | ||
739 | </orderedlist> | ||
740 | </section> | ||
741 | |||
742 | <section id="target-spec-config"> | ||
743 | <title>Target Specific Configuration</title> | ||
744 | |||
745 | <orderedlist> | ||
746 | <listitem> | ||
747 | <para>Set up targets for provisioning with non-default | ||
748 | ”Offloading Modes”.</para> | ||
749 | |||
750 | <para>Some target nodes may require additional configuration after | ||
751 | they are PXE booted (bootstrapped). The most frequent changes occur in | ||
752 | the defaults of ethernet device ”Offloading Modes” | ||
753 | settings (e.g. certain target ethernet drivers may strip VLAN traffic | ||
754 | by default).</para> | ||
755 | |||
756 | <para>If your target ethernet drivers have incorrect | ||
757 | ”Offloading Modes” defaults, in the ”Configure | ||
758 | interfaces” page (described above), expand the affected | ||
759 | interface’s ”Offloading Modes” and (un)check the | ||
760 | settings you need (see figure below): <remark>Insert the appropriate | ||
761 | figure/screenshot</remark></para> | ||
762 | </listitem> | ||
763 | |||
764 | <listitem> | ||
765 | <para>Set up targets for ”Verify Networks” with | ||
766 | non-default ”Offloading Modes”.</para> | ||
767 | |||
768 | <para>Please check the <ulink | ||
769 | url="http://artifacts.opnfv.org/fuel/colorado/3.0/docs/releasenotes/index.html">ENFV | ||
770 | Release Notes for the 1.0 release of ENFV when using Fuel as a | ||
771 | deployment tool</ulink>, <remark>Change this to an Olink to the | ||
772 | Release notes once the ID has been created for that book. Add the ID | ||
773 | to pardoc-names.xml and pardoc-common if needed, then updated the | ||
774 | OlinkDB</remark>for an updated and comprehensive list of known issues | ||
775 | and limitations, including the ”Offloading Modes” not | ||
776 | being applied during the ”Verify Networks” step.</para> | ||
777 | |||
778 | <para>Setting custom ”Offloading Modes” in Fuel GUI will | ||
779 | only apply during provisioning and not during ”Verify | ||
780 | Networks”. If your targets need this change, you have to apply | ||
781 | ”Offloading Modes” settings manually to bootstrapped | ||
782 | nodes. E.g.: Our driver has the ”rx-vlan-filter” default | ||
783 | ”on” (expected ”off”) on the Openstack | ||
784 | interface ”eth1”, preventing VLAN traffic from passing | ||
785 | during ”Verify Networks”.</para> | ||
786 | |||
787 | <itemizedlist> | ||
788 | <listitem> | ||
789 | <para>From Fuel master console identify target nodes' admin IPs | ||
790 | (see figure below):</para> | ||
791 | |||
792 | <programlisting>$ fuel nodes</programlisting> | ||
793 | |||
794 | <remark>Insert the appropriate figure/screenshot</remark> | ||
795 | </listitem> | ||
796 | |||
797 | <listitem> | ||
798 | <para>SSH into each of the target nodes and disable the | ||
799 | ”rx-vlan-filter” on the affected physical | ||
800 | interface(s) allocated for OpenStack traffic (eth1):</para> | ||
801 | |||
802 | <programlisting>$ ssh root@10.20.0.6 ethtool -K eth1 rx-vlan-filter off </programlisting> | ||
803 | </listitem> | ||
804 | |||
805 | <listitem> | ||
806 | <para>Repeat the step above for all affected nodes/interfaces in | ||
807 | the POD</para> | ||
808 | </listitem> | ||
809 | </itemizedlist> | ||
810 | </listitem> | ||
811 | </orderedlist> | ||
812 | </section> | ||
813 | |||
814 | <section id="verify-networks"> | ||
815 | <title>Verify Networks</title> | ||
816 | |||
817 | <para>It is important that the Verify Networks action is performed as it | ||
818 | will verify that Communicate <remark>what is Communicate and does this | ||
819 | apply to our settings</remark> works for the networks you have setup. | ||
820 | Also, check that packages needed for a successful deployment can be | ||
821 | fetched:</para> | ||
822 | |||
823 | <orderedlist> | ||
824 | <listitem> | ||
825 | <para>From the FUEL UI in your environment, select the Networks Tab, | ||
826 | then select ”Connectivity check” on the left pane (see | ||
827 | figure below): <remark>Insert the appropriate | ||
828 | figure/screenshot</remark></para> | ||
829 | </listitem> | ||
830 | |||
831 | <listitem> | ||
832 | <para>Select [Verify Networks]</para> | ||
833 | </listitem> | ||
834 | |||
835 | <listitem> | ||
836 | <para>Continue to fix your topology (physical switch, etc) until the | ||
837 | ”Verification Succeeded” and ”Your network is | ||
838 | configured correctly” messages are shown.</para> | ||
839 | </listitem> | ||
840 | </orderedlist> | ||
841 | </section> | ||
842 | |||
843 | <section id="deploy-env"> | ||
844 | <title>Deploy your Environment</title> | ||
845 | |||
846 | <para>In order to deploy your environment, do the following steps:</para> | ||
847 | |||
848 | <orderedlist> | ||
849 | <listitem> | ||
850 | <para>In the Fuel GUI, click on the ”Dashboard” | ||
851 | Tab</para> | ||
852 | </listitem> | ||
853 | |||
854 | <listitem> | ||
855 | <para>Click on [Deploy Changes] in the ”Ready to Deploy?” | ||
856 | section</para> | ||
857 | </listitem> | ||
858 | |||
859 | <listitem> | ||
860 | <para>Examine any information notice that pops up and click | ||
861 | [Deploy]</para> | ||
862 | </listitem> | ||
863 | </orderedlist> | ||
864 | |||
865 | <para>Wait for your deployment to complete. You can view the | ||
866 | ”Dashboard” Tab to see the progress and status of your | ||
867 | deployment.</para> | ||
868 | </section> | ||
869 | </chapter> \ No newline at end of file | ||
diff --git a/book-enea-nfv-installation-guide/doc/installation_health_check.xml b/book-enea-nfv-installation-guide/doc/installation_health_check.xml new file mode 100644 index 0000000..9cfaaa5 --- /dev/null +++ b/book-enea-nfv-installation-guide/doc/installation_health_check.xml | |||
@@ -0,0 +1,27 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | <chapter id="installation-hc"> | ||
5 | <title>Installation Health-Check</title> | ||
6 | |||
7 | <para>To ensure apt performance, the system health-check must be performed. | ||
8 | This is done in the following way (see figure below):</para> | ||
9 | |||
10 | <remark>insert figure</remark> | ||
11 | |||
12 | <orderedlist> | ||
13 | <listitem> | ||
14 | <para>Click the ”Health Check” tab inside your Environment | ||
15 | in the FUEL Web UI</para> | ||
16 | </listitem> | ||
17 | |||
18 | <listitem> | ||
19 | <para>Check the [Select All] option, then click [Run Tests]</para> | ||
20 | </listitem> | ||
21 | |||
22 | <listitem> | ||
23 | <para>Allow tests to run and investigate results where | ||
24 | appropriate</para> | ||
25 | </listitem> | ||
26 | </orderedlist> | ||
27 | </chapter> \ No newline at end of file | ||
diff --git a/book-enea-nfv-installation-guide/doc/preface.xml b/book-enea-nfv-installation-guide/doc/preface.xml new file mode 100644 index 0000000..d8b1273 --- /dev/null +++ b/book-enea-nfv-installation-guide/doc/preface.xml | |||
@@ -0,0 +1,130 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | <chapter id="preface"> | ||
5 | <title>Preface</title> | ||
6 | |||
7 | <para>Before starting the installation of this release of ENFV, certain | ||
8 | preparations must be done to ensure optimal performance.</para> | ||
9 | |||
10 | <section id="retrieve-ISO-image"> | ||
11 | <title>Retrieving the ISO image</title> | ||
12 | |||
13 | <para>First, the Fuel deployment ISO image needs to be retrieved. The .iso | ||
14 | image download link for this release can be found in <ulink | ||
15 | url="https://www.opnfv.org/software/download">OPNFV documentation and | ||
16 | software downloads</ulink></para> | ||
17 | |||
18 | <remark>Update this url link as appropriate</remark> | ||
19 | </section> | ||
20 | |||
21 | <section id="build-ISO-image"> | ||
22 | <title>Building the ISO image</title> | ||
23 | |||
24 | <para>Alternatively, you may build the Fuel .iso from source by cloning | ||
25 | the Fuel git repository. To retrieve the repository for the 1.0 release, | ||
26 | use the following command:</para> | ||
27 | |||
28 | <programlisting>$ git clone {insert link to our repo here}</programlisting> | ||
29 | |||
30 | <para>Check-out the ENFV 1.0 release tag to set the HEAD to the baseline | ||
31 | required to replicate the current release:</para> | ||
32 | |||
33 | <programlisting>$ git checkout {insert ENFV 1.0 release tag}</programlisting> | ||
34 | |||
35 | <para>Go to the fuel directory and build the .iso image:</para> | ||
36 | |||
37 | <programlisting>$ cd fuel/build; make all</programlisting> | ||
38 | |||
39 | <remark>Make sure this command works, if not, update it to the appropriate | ||
40 | one and verify it.</remark> | ||
41 | |||
42 | <para>For more information on how to build, please see the <ulink | ||
43 | url="http://artifacts.opnfv.org/fuel/colorado/3.0/docs/buildprocedure/index.html">ENFV | ||
44 | Build instruction for the 1.0 release of ENFV when using Fuel as a | ||
45 | deployment tool</ulink></para> | ||
46 | |||
47 | <remark>Change the link above to what is needed</remark> | ||
48 | </section> | ||
49 | |||
50 | <section id="other-preparations"> | ||
51 | <title>Other Preparations</title> | ||
52 | |||
53 | <para>Next, familiarize yourself with Fuel by reading the following | ||
54 | documents:</para> | ||
55 | |||
56 | <remark>Should any of these 4 documents be included/referenced as part of | ||
57 | our guide or should we include something else ?</remark> | ||
58 | |||
59 | <itemizedlist> | ||
60 | <listitem> | ||
61 | <para><ulink | ||
62 | url="http://docs.openstack.org/developer/fueldocs/userdocs/fuel-install-guide.html">Fuel | ||
63 | Installation Guide</ulink></para> | ||
64 | </listitem> | ||
65 | |||
66 | <listitem> | ||
67 | <para><ulink | ||
68 | url="http://docs.openstack.org/developer/fuel-docs/userdocs/fueluser-guide.html">Fuel | ||
69 | User Guide</ulink></para> | ||
70 | </listitem> | ||
71 | |||
72 | <listitem> | ||
73 | <para><ulink | ||
74 | url="http://docs.openstack.org/developer/fueldocs/devdocs/develop.html">Fuel | ||
75 | Developer Guide</ulink></para> | ||
76 | </listitem> | ||
77 | |||
78 | <listitem> | ||
79 | <para><ulink | ||
80 | url="http://docs.openstack.org/developer/fueldocs/plugindocs/fuel-plugin-sdk-guide.html">Fuel | ||
81 | Plugin Developers Guide</ulink></para> | ||
82 | </listitem> | ||
83 | </itemizedlist> | ||
84 | |||
85 | <para>Prior to installation, a number of deployment specific parameters | ||
86 | must be collected, such as:</para> | ||
87 | |||
88 | <remark>Change the following parameters as appropriate</remark> | ||
89 | |||
90 | <itemizedlist> | ||
91 | <listitem> | ||
92 | <para>Provider sub-net and gateway information</para> | ||
93 | </listitem> | ||
94 | |||
95 | <listitem> | ||
96 | <para>Provider VLAN information</para> | ||
97 | </listitem> | ||
98 | |||
99 | <listitem> | ||
100 | <para>Provider DNS addresses</para> | ||
101 | </listitem> | ||
102 | |||
103 | <listitem> | ||
104 | <para>Provider NTP addresses</para> | ||
105 | </listitem> | ||
106 | |||
107 | <listitem> | ||
108 | <para>Network overlay you plan to deploy (VLAN, VXLAN, FLAT)</para> | ||
109 | </listitem> | ||
110 | |||
111 | <listitem> | ||
112 | <para>How many nodes and what roles you want to deploy (Controllers, | ||
113 | Storage, Computes)</para> | ||
114 | </listitem> | ||
115 | |||
116 | <listitem> | ||
117 | <para>Monitoring options you want to deploy (Ceilometer, Syslog, | ||
118 | etc.).</para> | ||
119 | </listitem> | ||
120 | |||
121 | <listitem> | ||
122 | <para>Other options not covered in the document are available in the | ||
123 | links above.</para> | ||
124 | |||
125 | <para>This information will be needed for the configuration procedures | ||
126 | provided in this document.</para> | ||
127 | </listitem> | ||
128 | </itemizedlist> | ||
129 | </section> | ||
130 | </chapter> \ No newline at end of file | ||
diff --git a/book-enea-nfv-installation-guide/doc/reference_index.xml-NOTES b/book-enea-nfv-installation-guide/doc/reference_index.xml-NOTES new file mode 100644 index 0000000..d13d4b2 --- /dev/null +++ b/book-enea-nfv-installation-guide/doc/reference_index.xml-NOTES | |||
@@ -0,0 +1,121 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | <chapter id="ref-index"> | ||
5 | <title>Reference Index</title> | ||
6 | |||
7 | <para>The following is a collection of relevant references on which to draw | ||
8 | on:</para> | ||
9 | |||
10 | <section id="opnfv"> | ||
11 | <title>OPNFV</title> | ||
12 | |||
13 | <remark>Should these external remain as they are now, leading to opnfv, or | ||
14 | be changed to something referencing our own products if possible, or | ||
15 | omitted partially/entirely?</remark> | ||
16 | |||
17 | <orderedlist> | ||
18 | <listitem id="reference-one"> | ||
19 | <para>OPNFV Home Page: <ulink | ||
20 | url="http://www.opnfv.org">http://www.opnfv.org</ulink></para> | ||
21 | </listitem> | ||
22 | |||
23 | <listitem id="reference-two"> | ||
24 | <para>OPNFV documentation and software downloads: <ulink | ||
25 | url="https://www.opnfv.org/software/download">https://www.opnfv.org/software/download</ulink></para> | ||
26 | </listitem> | ||
27 | </orderedlist> | ||
28 | </section> | ||
29 | |||
30 | <section id="openstack"> | ||
31 | <title>OpenStack</title> | ||
32 | |||
33 | <orderedlist> | ||
34 | <listitem id="reference-three"> | ||
35 | <para>OpenStack Mitaka Release artifacts: <ulink | ||
36 | url="http://www.openstack.org/software/mitaka">http://www.openstack.org/software/mitaka</ulink></para> | ||
37 | </listitem> | ||
38 | |||
39 | <listitem id="reference-four"> | ||
40 | <para>OpenStack documentation: <ulink | ||
41 | url="http://docs.openstack.org">http://docs.openstack.org</ulink></para> | ||
42 | </listitem> | ||
43 | </orderedlist> | ||
44 | </section> | ||
45 | |||
46 | <section id="opendaylight"> | ||
47 | <title>OpenDaylight</title> | ||
48 | |||
49 | <orderedlist> | ||
50 | <listitem id="reference-five"> | ||
51 | <para>OpenDaylight artifacts: <ulink | ||
52 | url="http://www.opendaylight.org/software/downloads">http://www.opendaylight.org/software/downloads</ulink></para> | ||
53 | </listitem> | ||
54 | </orderedlist> | ||
55 | </section> | ||
56 | |||
57 | <section id="fuel"> | ||
58 | <title>Fuel</title> | ||
59 | |||
60 | <orderedlist> | ||
61 | <listitem id="reference-six"> | ||
62 | <para>The Fuel OpenStack project: <ulink | ||
63 | url="https://wiki.openstack.org/wiki/Fuel">https://wiki.openstack.org/wiki/Fuel</ulink></para> | ||
64 | </listitem> | ||
65 | |||
66 | <listitem id="reference-seven"> | ||
67 | <para>Fuel documentation overview: <ulink | ||
68 | url="http://docs.openstack.org/developer/fuel-docs">http://docs.openstack.org/developer/fuel-docs</ulink></para> | ||
69 | </listitem> | ||
70 | |||
71 | <listitem id="reference-eight"> | ||
72 | <para>Fuel Installation Guide: <ulink | ||
73 | url="http://docs.openstack.org/developer/fueldocs/userdocs/fuel-install-guide.html">http://docs.openstack.org/developer/fueldocs/userdocs/fuel-install-guide.html</ulink></para> | ||
74 | </listitem> | ||
75 | |||
76 | <listitem id="reference-nine"> | ||
77 | <para>Fuel User Guide: <ulink | ||
78 | url="http://docs.openstack.org/developer/fuel-docs/userdocs/fueluser-guide.html">http://docs.openstack.org/developer/fuel-docs/userdocs/fueluser-guide.html</ulink></para> | ||
79 | </listitem> | ||
80 | |||
81 | <listitem id="reference-ten"> | ||
82 | <para>Fuel Developer Guide: <ulink | ||
83 | url="http://docs.openstack.org/developer/fueldocs/devdocs/develop.html">http://docs.openstack.org/developer/fueldocs/devdocs/develop.html</ulink></para> | ||
84 | </listitem> | ||
85 | |||
86 | <listitem id="reference-eleven"> | ||
87 | <para>Fuel Plugin Developers Guide: <ulink | ||
88 | url="http://docs.openstack.org/developer/fueldocs/plugindocs/fuel-plugin-sdk-guide.html">http://docs.openstack.org/developer/fueldocs/plugindocs/fuel-plugin-sdk-guide.html</ulink></para> | ||
89 | </listitem> | ||
90 | |||
91 | <listitem id="reference-twelve"> | ||
92 | <para>Fuel OpenStack Hardware Compatibility List: <ulink | ||
93 | url="https://www.mirantis.com/products/openstack-drivers-and-plugins/hardwarecompatibility-list">https://www.mirantis.com/products/openstack-drivers-and-plugins/hardwarecompatibility-list</ulink></para> | ||
94 | </listitem> | ||
95 | </orderedlist> | ||
96 | </section> | ||
97 | |||
98 | <section id="fuel-enfv"> | ||
99 | <title>Fuel in ENFV</title> | ||
100 | |||
101 | <orderedlist> | ||
102 | <listitem id="reference-thirteen"> | ||
103 | <para>ENFV Installation instruction for the 1.0 release of ENFV when | ||
104 | using Fuel as a deployment tool: <ulink | ||
105 | url="http://artifacts.opnfv.org/fuel/colorado/3.0/docs/installationprocedure/index.html {change}">http://artifacts.opnfv.org/fuel/colorado/3.0/docs/installationprocedure/index.html</ulink></para> | ||
106 | </listitem> | ||
107 | |||
108 | <listitem id="reference-fourteen"> | ||
109 | <para>ENFV Build instruction for the 1.0 release of ENFV when using | ||
110 | Fuel as a deployment tool: <ulink | ||
111 | url="http://artifacts.opnfv.org/fuel/colorado/3.0/docs/buildprocedure/index.html {change}">http://artifacts.opnfv.org/fuel/colorado/3.0/docs/buildprocedure/index.html</ulink></para> | ||
112 | </listitem> | ||
113 | |||
114 | <listitem id="reference-fifteen"> | ||
115 | <para>ENFV Release Notes for the 1.0 release of ENFV when using Fuel | ||
116 | as a deployment tool: <ulink | ||
117 | url="http://artifacts.opnfv.org/fuel/colorado/3.0/docs/releasenotes/index.html {change}">http://artifacts.opnfv.org/fuel/colorado/3.0/docs/releasenotes/index.html</ulink></para> | ||
118 | </listitem> | ||
119 | </orderedlist> | ||
120 | </section> | ||
121 | </chapter> \ No newline at end of file | ||
diff --git a/book-enea-nfv-installation-guide/doc/tor_config_req.xml b/book-enea-nfv-installation-guide/doc/tor_config_req.xml new file mode 100644 index 0000000..8a23cac --- /dev/null +++ b/book-enea-nfv-installation-guide/doc/tor_config_req.xml | |||
@@ -0,0 +1,28 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | <chapter id="tor-config-req"> | ||
5 | <title>Top of the Rack (TOR) Configuration Requirements</title> | ||
6 | |||
7 | <para>The switching infrastructure provides connectivity for the ENFV | ||
8 | infrastructure operations, tenant networks (East/West) and provider | ||
9 | connectivity (North/South). It also provides needed connectivity for the | ||
10 | Storage Area Network (SAN).</para> | ||
11 | |||
12 | <para>To avoid traffic congestion, it is strongly encouraged that 3 | ||
13 | physically separated networks be used: 1 physical network for administration | ||
14 | and control, 1 physical network for tenant private and public networks, and | ||
15 | 1 for SAN. The switching connectivity can (but does not need to) be fully | ||
16 | redundant, in such case it comprises a redundant 10GE switch pair for each | ||
17 | of the 3 networks.</para> | ||
18 | |||
19 | <para>The physical TOR switches are not automatically configured from the | ||
20 | Fuel ENFV reference platform. All networks involved in the ENFV | ||
21 | infrastructure as well as the provider networks and the private tenant VLANs | ||
22 | need to be manually configured.</para> | ||
23 | |||
24 | <para>Manual configuration of the ENFV 1.0 hardware platform should be | ||
25 | carried out according to the <ulink | ||
26 | url="https://wiki.opnfv.org/display/pharos/Pharos+Specification">ENFV Pharos | ||
27 | specification</ulink>.</para> | ||
28 | </chapter> \ No newline at end of file | ||
diff --git a/book-enea-nfv-installation-guide/doc/use_cases_per_target_node.xml b/book-enea-nfv-installation-guide/doc/use_cases_per_target_node.xml new file mode 100644 index 0000000..d1bb720 --- /dev/null +++ b/book-enea-nfv-installation-guide/doc/use_cases_per_target_node.xml | |||
@@ -0,0 +1,12 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | <chapter id="use-cases"> | ||
5 | <title>Use Cases</title> | ||
6 | |||
7 | <para>This chapter contains use-case examples for each target node pool(s) | ||
8 | used/compatible with the Fuel Deployment Tool.</para> | ||
9 | |||
10 | <remark>FIXME Team COSNOS/Enea NFV will need to fill this chapter with any | ||
11 | and all appropriate use cases.</remark> | ||
12 | </chapter> \ No newline at end of file | ||
diff --git a/book-enea-nfv-installation-guide/swcomp.mk b/book-enea-nfv-installation-guide/swcomp.mk new file mode 100644 index 0000000..630d63b --- /dev/null +++ b/book-enea-nfv-installation-guide/swcomp.mk | |||
@@ -0,0 +1,10 @@ | |||
1 | # Component build specification | ||
2 | |||
3 | # Version of THIS book | ||
4 | BOOK_VER ?= $(REL_VER)-dev | ||
5 | |||
6 | DOCBOOK_SRC := $(COMP)/swcomp.mk $(COMP)/doc/book.xml $(shell find $(COMP)/doc -type f \( -name "*.xml" -o -name "*.svg" -o -name "*.png" \) ! -name "book.xml" -print) | ||
7 | |||
8 | BOOKPACKAGES := book-enea-nfv-installation-guide | ||
9 | BOOKDESC_$(BOOKPACKAGES) := "Enea NFV $(PROD_VER) Installation Guide" | ||
10 | BOOKDEFAULTCONDITION := $(DEFAULTCONDITIONS) | ||
diff --git a/docsrc_common/pardoc-distro.xml b/docsrc_common/pardoc-distro.xml new file mode 100644 index 0000000..23ec8c5 --- /dev/null +++ b/docsrc_common/pardoc-distro.xml | |||
@@ -0,0 +1,18 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | |||
5 | <!-- Declarations to inherit by xi:include | ||
6 | ========================================== --> | ||
7 | <section id="pardoc_names"> | ||
8 | <title>Enea NFV DocBook XML Based UserDoc Names and Parameters</title> | ||
9 | <para>NOTE: DO NOT EDIT THIS FILE IN XMLMIND only open it to see any errors, but don't save!</para> | ||
10 | <para>Note: Use 'xi:include' to include parameters into a docbook XML file. | ||
11 | Note: Only full elements can be included and the included element must be allowed in that place. | ||
12 | Example: For ulink, entire ulink elements must be included, not just parts of them.</para> | ||
13 | <para>**** The phrase elements below can be used as variables in several places in XML files ****</para> | ||
14 | |||
15 | <!-- Distribution and release --> | ||
16 | <para id="EneaNFV_REL_VER"><phrase>1.0</phrase></para> | ||
17 | <para id="ULINK_ENEA_NFV_URL"><ulink url='FIXTHIS'>FIXTHIS</ulink></para> | ||
18 | </section> \ No newline at end of file | ||
diff --git a/gen_known_issues.py b/gen_known_issues.py new file mode 100644 index 0000000..6d3f6e2 --- /dev/null +++ b/gen_known_issues.py | |||
@@ -0,0 +1,120 @@ | |||
1 | #!/usr/bin/python | ||
2 | |||
3 | #------------------------------------------------------------------------------ | ||
4 | # This script generates an XML file with a table with issues in Jira. See the | ||
5 | # variable 'conditions' for query details. It is used by the make system in | ||
6 | # the generation of the release notes. | ||
7 | # The result is printed to STDOUT. | ||
8 | # | ||
9 | # It is possible to override the generation. If there is a file named | ||
10 | # jiraissues_override.xml in the current directory, then that file will be | ||
11 | # printed instead. This mechanism can be used if the table needs manual | ||
12 | # modifications. | ||
13 | # | ||
14 | #------------------------------------------------------------------------------ | ||
15 | |||
16 | from subprocess import check_output | ||
17 | import json, re, datetime | ||
18 | import time | ||
19 | |||
20 | try: | ||
21 | with open("book-enea-linux-release-info/doc/jiraissues_override.xml") as f: | ||
22 | print f.read(), | ||
23 | |||
24 | exit(0) | ||
25 | |||
26 | except SystemExit: | ||
27 | # Printing the override file was successful. Exception raised by | ||
28 | # the exit() call in the try block. | ||
29 | exit(0) | ||
30 | |||
31 | except IOError: | ||
32 | # Accessing the override file failed. Assume that it does not exist | ||
33 | # and proceed with normal operation. | ||
34 | pass | ||
35 | |||
36 | jd = json.JSONDecoder() | ||
37 | |||
38 | def jira_query(query): | ||
39 | jira_url = "http://eneaissues.enea.com" | ||
40 | fields = "key,summary" | ||
41 | query = query.replace(" ", "+") | ||
42 | |||
43 | cmd = ["curl", | ||
44 | "-s", | ||
45 | "-D-", | ||
46 | "-u", "rest_reader:jira123", | ||
47 | "-X", "GET", | ||
48 | "-H", "Content-Type: application/json", | ||
49 | jira_url + "/rest/api/2/search?jql=" + query + "&fields=" + fields | ||
50 | ] | ||
51 | |||
52 | tmp = check_output(cmd).splitlines() | ||
53 | tmp = jd.decode(tmp[-1]) | ||
54 | return tmp["issues"] | ||
55 | |||
56 | conditions = ("project=LXCR", | ||
57 | "issueType=bug", | ||
58 | "resolution=Unresolved", | ||
59 | 'affectedversion="Enea Linux 6"' | ||
60 | ) | ||
61 | |||
62 | bugs = [] | ||
63 | |||
64 | time_str = time.strftime("%Y-%m-%d, %H:%M:%S (%Z)") | ||
65 | |||
66 | for issue in jira_query(" and ".join(conditions)): | ||
67 | bugs.append((issue["key"], issue["fields"]["summary"])) | ||
68 | |||
69 | print '<?xml version="1.0" encoding="ISO-8859-1"?>' | ||
70 | print '<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"' | ||
71 | print '"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">' | ||
72 | print '<section id="relinfo-extracted-from-jira">' | ||
73 | print ' <title>Extracted from Jira</title>' | ||
74 | |||
75 | print ' <para>' | ||
76 | print ' This section lists open bugs in Jira. Extracted at %s.' % time_str | ||
77 | print ' </para>' | ||
78 | |||
79 | print ' <remark>Jira query: (%s)</remark>' % "\n and ".join(conditions) | ||
80 | |||
81 | print ' <informaltable>' | ||
82 | print ' <tgroup cols="2">' | ||
83 | print ' <colspec colwidth="6*" colname="c1"/>' | ||
84 | |||
85 | print ' <colspec align="center" colwidth="1*" colname="c2"/>' | ||
86 | |||
87 | print ' <thead>' | ||
88 | print ' <row>' | ||
89 | print ' <entry align="center">Summary</entry>' | ||
90 | |||
91 | print ' <entry>Enea Ref</entry>' | ||
92 | print ' </row>' | ||
93 | print ' </thead>' | ||
94 | |||
95 | print ' <tbody>', | ||
96 | |||
97 | if bugs: | ||
98 | for bug in sorted(bugs): | ||
99 | |||
100 | print ' <row>' | ||
101 | print ' <entry>%s</entry>' % bug[1] | ||
102 | |||
103 | print ' <entry>%s</entry>' % bug[0] | ||
104 | print ' </row>' | ||
105 | |||
106 | else: | ||
107 | print ' <row>' | ||
108 | print ' <entry namest="c1" nameend="c2" align="center">' | ||
109 | print ' No issues found' | ||
110 | print ' </entry>' | ||
111 | print ' </row>' | ||
112 | |||
113 | print ' </tbody>' | ||
114 | print ' </tgroup>' | ||
115 | print ' </informaltable>' | ||
116 | |||
117 | if bugs: | ||
118 | print ' <para>Number of open bugs: %d</para>' % len(bugs) | ||
119 | |||
120 | print '</section>' \ No newline at end of file | ||
diff --git a/gen_pkgdiff.py b/gen_pkgdiff.py new file mode 100644 index 0000000..46e0482 --- /dev/null +++ b/gen_pkgdiff.py | |||
@@ -0,0 +1,222 @@ | |||
1 | #!/bin/python | ||
2 | ############################################################################### | ||
3 | # | ||
4 | # Diff two licenses.xml files. There are two cases: | ||
5 | # * Two arguments | ||
6 | # In this case, the two arguments are the two files to compare | ||
7 | # | ||
8 | # * No arguments | ||
9 | # In this case, the license files are specified by the following | ||
10 | # parameters in pardoc-distro.xml: | ||
11 | # - prev_baseline | ||
12 | # - prev_lic_file | ||
13 | # - new_lic_file | ||
14 | # | ||
15 | # The result is presented as three sets: | ||
16 | # 1) Removed | ||
17 | # Packages present in the previous file, but not in the new. | ||
18 | # | ||
19 | # 2) Added | ||
20 | # Packages present in the new file, but not in the previous. | ||
21 | # | ||
22 | # 3) Changed | ||
23 | # Packages present in both files, but with different versions. If more than | ||
24 | # one version of a package is included, then all differences in the version | ||
25 | # set causes the package to be listed as changed. | ||
26 | # E.g. | ||
27 | # (v1) -> (v2) | ||
28 | # (v1, v2) -> (v2, v3) | ||
29 | # | ||
30 | # Note that packages with the unchanged version are not listed. | ||
31 | # | ||
32 | # The output is presented as XML code printed to stdout. A summary is printed | ||
33 | # to STDERR at the end. | ||
34 | # | ||
35 | ############################################################################### | ||
36 | |||
37 | import os | ||
38 | import sys | ||
39 | import subprocess as sp | ||
40 | import xml.etree.ElementTree as ET | ||
41 | import re | ||
42 | |||
43 | repo_root = sp.check_output(["git", "rev-parse", "--show-toplevel"]).rstrip() | ||
44 | script_root = os.path.dirname(os.path.realpath(__file__)) | ||
45 | param_file = os.path.join(script_root, "docsrc_common/pardoc-distro.xml") | ||
46 | |||
47 | def get_param(param_name): | ||
48 | pat = re.compile("%s.*>([^<>]+)</" % param_name) | ||
49 | |||
50 | with open(param_file) as f: | ||
51 | for line in f: | ||
52 | m = pat.search(line) | ||
53 | if m: | ||
54 | return m.group(1) | ||
55 | |||
56 | return None | ||
57 | |||
58 | def get_pkgs(file_spec): | ||
59 | if file_spec.find(":") >= 0: | ||
60 | s = sp.check_output(("git", "show", file_spec)) | ||
61 | else: | ||
62 | f = open(file_spec) | ||
63 | s = f.read() | ||
64 | f.close() | ||
65 | del f | ||
66 | |||
67 | # ET can't handle some special quotes | ||
68 | for old, new in (("”", """), ("”", """)): | ||
69 | s = s.replace(old, new) | ||
70 | |||
71 | root = ET.fromstring(s) | ||
72 | |||
73 | for node in root.iter("section"): | ||
74 | if "id" in node.attrib: | ||
75 | if node.attrib["id"] == "licenses_packages": | ||
76 | break | ||
77 | |||
78 | else: | ||
79 | return None | ||
80 | |||
81 | for node in node: | ||
82 | if node.tag == "informaltable": | ||
83 | break | ||
84 | else: | ||
85 | return None | ||
86 | |||
87 | tab = node[0][-1] | ||
88 | |||
89 | plist = dict() | ||
90 | for row in tab: | ||
91 | pname = row[0].text | ||
92 | pver = row[1].text | ||
93 | if not pname in plist: | ||
94 | plist[pname] = set() | ||
95 | |||
96 | plist[pname].add(pver) | ||
97 | |||
98 | return set(plist), plist | ||
99 | |||
100 | #---------------------------------------- | ||
101 | |||
102 | |||
103 | if len(sys.argv) == 3: | ||
104 | new_file, prev_file = sys.argv[1:3] | ||
105 | |||
106 | elif len(sys.argv) == 1: | ||
107 | prev_baseline = get_param("prev_baseline") | ||
108 | prev_lic_file = get_param("prev_lic_file") | ||
109 | new_lic_file = get_param("new_lic_file") | ||
110 | |||
111 | new_file = os.path.relpath(os.path.join(repo_root, new_lic_file)) | ||
112 | prev_file = "%s:%s" % (prev_baseline, prev_lic_file) | ||
113 | |||
114 | else: | ||
115 | sys.stderr.write("Usage:\n") | ||
116 | sys.stderr.write(" 1) %s\n" % sys.argv[0]) | ||
117 | sys.stderr.write(" 2) %s " % sys.argv[0]) | ||
118 | sys.stderr.write("<new license file> <old license file>\n") | ||
119 | sys.stderr.write("\n") | ||
120 | sys.stderr.write("In case 1, the files are specified using the following\n") | ||
121 | sys.stderr.write("parameters in pardoc-distro.xml:\n") | ||
122 | sys.stderr.write(" - prev_baseline\n") | ||
123 | sys.stderr.write(" - prev_lic_file\n") | ||
124 | sys.stderr.write(" - new_lic_file\n") | ||
125 | exit() | ||
126 | |||
127 | sys.stderr.write("New license file : %s\n" % new_file) | ||
128 | sys.stderr.write("Prev license file : %s\n" % prev_file) | ||
129 | |||
130 | old_pset, old_pdict = get_pkgs(prev_file) | ||
131 | new_pset, new_pdict = get_pkgs(new_file) | ||
132 | |||
133 | added = new_pset - old_pset # Set subtraction | ||
134 | removed = old_pset - new_pset # Set subtraction | ||
135 | common = old_pset & new_pset | ||
136 | changed = [ p for p in common if old_pdict[p] != new_pdict[p] ] | ||
137 | |||
138 | print '<?xml version="1.0" encoding="ISO-8859-1"?>' | ||
139 | print '<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"' | ||
140 | print '"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">' | ||
141 | print '<section id="relinfo-package-set-changes">' | ||
142 | print ' <title>Changes in the Set of Provided Packages</title>' | ||
143 | print ' <para>' | ||
144 | print ' This section describes changes in the provided packages.' | ||
145 | print ' </para>' | ||
146 | print ' <section id="relinfo-added-packages">' | ||
147 | print ' <title>Added Packages</title>' | ||
148 | print ' <informaltable>' | ||
149 | print ' <tgroup cols="2">' | ||
150 | print ' <thead>' | ||
151 | print ' <row>' | ||
152 | print ' <entry>Package</entry>' | ||
153 | print ' <entry>Version(s)</entry>' | ||
154 | print ' </row>' | ||
155 | print ' </thead>' | ||
156 | print ' <tbody>' | ||
157 | |||
158 | for p in sorted(list(added)): | ||
159 | print ' <row>' | ||
160 | print ' <entry>%s</entry>' % p | ||
161 | print ' <entry>%s</entry>' % ", ".join(sorted(new_pdict[p])) | ||
162 | print ' </row>' | ||
163 | |||
164 | print ' </tbody>' | ||
165 | print ' </tgroup>' | ||
166 | print ' </informaltable>' | ||
167 | print ' </section>' | ||
168 | |||
169 | print ' <section id="relinfo-removed-packages">' | ||
170 | print ' <title>Removed Packages</title>' | ||
171 | print ' <informaltable>' | ||
172 | print ' <tgroup cols="2">' | ||
173 | print ' <thead>' | ||
174 | print ' <row>' | ||
175 | print ' <entry>Package</entry>' | ||
176 | print ' <entry>Version(s)</entry>' | ||
177 | print ' </row>' | ||
178 | print ' </thead>' | ||
179 | print ' <tbody>' | ||
180 | for p in sorted(list(removed)): | ||
181 | print ' <row>' | ||
182 | print ' <entry>%s</entry>' % p | ||
183 | print ' <entry>%s</entry>' % ", ".join(sorted(old_pdict[p])) | ||
184 | print ' </row>' | ||
185 | print ' </tbody>' | ||
186 | print ' </tgroup>' | ||
187 | print ' </informaltable>' | ||
188 | print ' </section>' | ||
189 | |||
190 | print ' <section id="relinfo-changed-packages">' | ||
191 | print ' <title>Changed Package Versions</title>' | ||
192 | print ' <informaltable>' | ||
193 | print ' <tgroup cols="3">' | ||
194 | print ' <thead>' | ||
195 | print ' <row>' | ||
196 | print ' <entry>Package</entry>' | ||
197 | print ' <entry>Previous Version(s)</entry>' | ||
198 | print ' <entry>New Version(s)</entry>' | ||
199 | print ' </row>' | ||
200 | print ' </thead>' | ||
201 | print ' <tbody>' | ||
202 | for p in sorted(list(changed)): | ||
203 | print ' <row>' | ||
204 | print ' <entry>%s</entry>' % p | ||
205 | print ' <entry>%s</entry>' % ", ".join(sorted(old_pdict[p])) | ||
206 | print ' <entry>%s</entry>' % ", ".join(sorted(new_pdict[p])) | ||
207 | print ' </row>' | ||
208 | |||
209 | print ' </tbody>' | ||
210 | print ' </tgroup>' | ||
211 | print ' </informaltable>' | ||
212 | print ' </section>' | ||
213 | print '</section>' | ||
214 | |||
215 | sys.stderr.write("Package Summary:\n") | ||
216 | sys.stderr.write(" Prev file : %3d\n" % len(old_pset)) | ||
217 | sys.stderr.write(" New file : %3d\n" % len(new_pset)) | ||
218 | sys.stderr.write(" Added : %3d\n" % len(added)) | ||
219 | sys.stderr.write(" Removed : %3d\n" % len(removed)) | ||
220 | sys.stderr.write(" Changed : %3d\n" % len(changed)) | ||
221 | sys.stderr.write(" Unchanged : %3d\n" % (len(common) - len(changed))) | ||
222 | sys.stderr.write("Done\n") | ||
@@ -0,0 +1,63 @@ | |||
1 | # ver R1.00/2017-03-16 Creation of this file | ||
2 | # ver R2.00/2017-04-05 Updated the docbuild.git clone command. | ||
3 | |||
4 | ifeq ($(VERBOSE),yes) | ||
5 | VERB := | ||
6 | else | ||
7 | VERB := @ | ||
8 | endif | ||
9 | |||
10 | #Git repositories to be cloned | ||
11 | REPO_DOCBUILD := build/docbuild.git | ||
12 | NAME_DOCBUILD := docbuild | ||
13 | |||
14 | GLOBALTMPCLONEROOT = ../../tmpcommon | ||
15 | ifeq ($(BOOK_GLOBALCLONEROOT),) | ||
16 | TMPCLONEROOT := tmpcommon | ||
17 | else | ||
18 | ifeq ($(BOOK_GLOBALCLONEROOT),yes) | ||
19 | TMPCLONEROOT := $(GLOBALTMPCLONEROOT) | ||
20 | else | ||
21 | TMPCLONEROOT := $(BOOK_GLOBALCLONEROOT)/tmpcommon | ||
22 | endif | ||
23 | endif | ||
24 | DIR_TMPCLONEROOT := $(dir $(TMPCLONEROOT)) | ||
25 | ifeq ($(wildcard $(DIR_TMPCLONEROOT)),) | ||
26 | $(error Parent of selected clone root does not exist ($(DIR_TMPCLONEROOT))) | ||
27 | endif | ||
28 | |||
29 | .PHONY: initbuild usageinit cleaninit | ||
30 | # Keep usageinit as default target here to avoid init by mistake | ||
31 | |||
32 | usageinit: docusage | ||
33 | @echo 'make initbuild Create s_docbuild and if it does not exist, clone docbuild.git' | ||
34 | @echo ' Default clone in tmpcommon' | ||
35 | @echo ' BOOK_GLOBALCLONEROOT=yes Clone in $(GLOBALTMPCLONEROOT)' | ||
36 | @echo ' BOOK_GLOBALCLONEROOT=parentdir Clone in parentdir/tmpcommon' | ||
37 | |||
38 | @echo 'make pullbuild git pull in s_docbuild' | ||
39 | @echo 'make cleaninit Delete all s_* symlinks and local tmpcommon/' | ||
40 | |||
41 | |||
42 | initbuild: s_docbuild | ||
43 | pullbuild: | ||
44 | $(VERB)if [ ! -d s_docbuild ]; then echo "ERROR: No s_docbuild exists?" ; exit 10 ; fi | ||
45 | $(VERB)cd s_docbuild ; git pull | ||
46 | s_docbuild: $(TMPCLONEROOT)/$(NAME_DOCBUILD) | ||
47 | $(VERB)rm s_docbuild 2>/dev/null; ln -s $(TMPCLONEROOT)/$(NAME_DOCBUILD) s_docbuild | ||
48 | |||
49 | $(TMPCLONEROOT)/$(NAME_DOCBUILD): | ||
50 | $(VERB)if [ ! -d "$(TMPCLONEROOT)" ] ; then mkdir -p "$(TMPCLONEROOT)" ; fi | ||
51 | $(VERB)if [ -d "$(TMPCLONEROOT)/$(NAME_DOCBUILD)" ] ; then \ | ||
52 | echo "Already exists $(TMPCLONEROOT)/$(NAME_DOCBUILD)" ; \ | ||
53 | echo "Doing git pull instead"; cd $(TMPCLONEROOT)/$(NAME_DOCBUILD) ; git pull ; \ | ||
54 | else \ | ||
55 | echo "Cloning $(REPO_DOCBUILD) in $(TMPCLONEROOT)" ; \ | ||
56 | cd "$(TMPCLONEROOT)" ; \ | ||
57 | git clone -b master git@git.enea.se:$(REPO_DOCBUILD) $(NAME_DOCBUILD) ; \ | ||
58 | fi | ||
59 | |||
60 | cleaninit: | ||
61 | @echo "Clean only local tmpcommon/ and all local temporary symlinks s_docbuild etc." | ||
62 | $(VERB)rm -rf tmpcommon 2>/dev/null ; true | ||
63 | $(VERB)rm s_* 2>/dev/null ; true | ||