summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiruna Paun <Miruna.Paun@enea.com>2017-04-07 12:27:55 +0200
committerMiruna Paun <Miruna.Paun@enea.com>2017-04-07 12:27:55 +0200
commit74c97c90a9fa10ebad46ec00061da9e2578b33a7 (patch)
tree9a6169d87c2b9ff598e83ae218c54c8400cefb78
downloaddoc-enea-nfv-74c97c90a9fa10ebad46ec00061da9e2578b33a7.tar.gz
Updated ENFV (COSNOS) Installation Guide
COSNOSCR-318 seeking to complete first time push
-rw-r--r--Makefile189
-rw-r--r--book-enea-nfv-installation-guide/doc/0log-enfv_installation-guide.txt5
-rw-r--r--book-enea-nfv-installation-guide/doc/about_release.xml32
-rw-r--r--book-enea-nfv-installation-guide/doc/book.xml20
-rw-r--r--book-enea-nfv-installation-guide/doc/hardware_requirements.xml77
-rw-r--r--book-enea-nfv-installation-guide/doc/help_hw_req.xml37
-rw-r--r--book-enea-nfv-installation-guide/doc/installation_deployment.xml869
-rw-r--r--book-enea-nfv-installation-guide/doc/installation_health_check.xml27
-rw-r--r--book-enea-nfv-installation-guide/doc/preface.xml130
-rw-r--r--book-enea-nfv-installation-guide/doc/reference_index.xml-NOTES121
-rw-r--r--book-enea-nfv-installation-guide/doc/tor_config_req.xml28
-rw-r--r--book-enea-nfv-installation-guide/doc/use_cases_per_target_node.xml12
-rw-r--r--book-enea-nfv-installation-guide/swcomp.mk10
-rw-r--r--docsrc_common/pardoc-distro.xml18
-rw-r--r--gen_known_issues.py120
-rw-r--r--gen_pkgdiff.py222
-rw-r--r--init.mk63
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
2SUBSYSROOT := $(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
6include init.mk
7
8# -----------------------------------------------------
9#Path to DocBook make files and templates
10DOCBOOKMAKE = $(SUBSYSROOT)/s_docbuild/docmake
11DOCBOOKTEMPLATE = $(SUBSYSROOT)/s_docbuild/template
12
13#Path to the OLINK database including leading part of file name (will add -$(FORMAT).db)
14DOCBOOKOLINKDB_BASE = $(SUBSYSROOT)/s_docbuild/olinkdb/olink-targetdb-master
15
16DOCBOOK_OLINKS ?= yes
17DOCBOOK_FO_USEFOP ?= yes
18DOCBOOK_TO_BOOKDIR ?= yes
19DOCBOOK_CLEANTMP ?= yes
20
21COMPONENTS := $(shell ls -d book-enea* )
22# --------------------------------------------------------------
23ifeq ($(VERBOSE),yes)
24VERB :=
25else
26VERB := @
27endif
28MAKEFLAGS += --no-print-directory
29MAKEFLAGS += --directory $(SUBSYSROOT)
30MAKEFLAGS += --no-builtin-rules --no-builting-variables
31
32# Skip xml validation to make it possible to include xml files with unresolved links
33VALIDATE = 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
40export
41
42.PHONY: doc books docusage init initbuild initpardoc dist
43
44
45docusage:
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'
98ifeq ($(DOCBOOK_TOOLS_VERSIONS),yes)
99 $(VERB)$(MAKE) -f $(DOCBOOKMAKE)/tools_book_standalone.mk book_tools_versions
100endif
101
102# We rely on make doing these in order left to right
103init: initbuild initpardoc
104pullall: pullbuild
105
106# If no COMP, iterate over books-* in COMPONENTS with make doc
107ifeq ($(COMP),)
108doc:
109ifneq ($(filter book-%, $(COMPONENTS)),)
110 $(VERB)for comp in $(filter book-%, $(COMPONENTS)); do \
111 $(MAKE) doc COMP=$$comp; \
112 done
113endif
114
115else
116include $(SUBSYSROOT)/$(COMP)/swcomp.mk
117
118doc: books
119 @#
120endif
121
122dist: 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
134ifeq ($(FORMAT),)
135FORMAT=pdf
136endif
137
138
139books: 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
148ifeq ($(DOCBOOK_TO_BOOKDIR),yes)
149 $(VERB)rm -rf doc tmp
150else
151ifeq ($(DOCBOOK_CLEANTMP),yes)
152# keep only doc/pdf/book-*.pdf
153 $(VERB)rm -rf tmp 2>/dev/null ; rm -rf doc/pdf/book-*/
154endif
155endif
156
157# cleaninit cleans ALL tmpcommon and all s_*
158clean: cleaninit
159 @echo "Cleaning build results and temporary files"
160 $(VERB)rm -rf doc tmp 2>/dev/null
161ifneq ($(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
166endif
167
168# ****************************************************************************
169# ******************** SUPPORT FOR dynamic pardoc with added parameters ******
170
171PATH_DOCSRC_COMMON = $(SUBSYSROOT)/s_docsrc_common
172NAME_DOCSRC_COMMON = docsrc_common
173TMPCLONEROOT_DOCSRC_COMMON := $(TMPCLONEROOT)/$(NAME_DOCSRC_COMMON)
174TMPPARDOC := $(TMPCLONEROOT_DOCSRC_COMMON)/pardoc-distro.xml
175
176initpardoc: s_docsrc_common
177
178cleanpardoc:
179 @echo "Cleaning dynamic parameters"
180 $(VERB)rm -rf $(TMPCLONEROOT_DOCSRC_COMMON) ; rm s_docsrc_common
181
182s_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 @@
10log-enfv_installation-guide.txt
2YYYY-MM-DD/name CR + short descriptive text for changes made
32017-03-16/mrpa COSNOSCR-318 Created the 0log
42017-03-23/mrpa COSNOSCR-361 updating build system locally on sestofb10 then once everything works, storing documentation files on Pharos once again
52017-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 &ndash; 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 &ndash; depends on the amount of RAM assigned per virtual
23 machine and the controller node.</para>
24 </listitem>
25
26 <listitem>
27 <para>Storage &ndash; 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 &ndash; 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 &rdquor;Fuel Install (Static IP)&rdquo; (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 &rdquor;Fuel User&rdquo; 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 &rdquor;admin&rdquo; in the Fuel password input</para>
54 </listitem>
55
56 <listitem>
57 <para>Enter &rdquor;admin&rdquo; in the Confirm password
58 input</para>
59 </listitem>
60
61 <listitem>
62 <para>Select &rdquor;Check&rdquo; and press [Enter]</para>
63 </listitem>
64 </itemizedlist>
65 </listitem>
66
67 <listitem>
68 <para>In the &rdquor;Network Setup&rdquo; 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 &rdquor;PXE Setup&rdquo; 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 &rdquor;DNS &amp; Hostname&rdquo; 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 &lt;Check&gt; 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 &rdquor;Bootstrap Image&rdquo; 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 &rdquor;HTTP proxy&rdquo; and enter your http
145 proxy address</para>
146 </listitem>
147
148 <listitem>
149 <para>Select &lt;Check&gt; 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 &rdquor;Time Sync&rdquo; section (see figure below),
158 change the following fields to appropriate values:</para>
159
160 <itemizedlist>
161 <listitem>
162 <para>NTP Server 1 &lt;Customer NTP server 1&gt;</para>
163 </listitem>
164
165 <listitem>
166 <para>NTP Server 2 &lt;Customer NTP server 2&gt;</para>
167 </listitem>
168
169 <listitem>
170 <para>NTP Server 3 &lt;Customer NTP server 3&gt;</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/&lt;plugin-name&gt;-&lt;version&gt;.&lt;arch&gt;.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 &rdquor;Mitaka on Ubuntu 14.04&rdquo; and press
289 [Next]</para>
290 </listitem>
291
292 <listitem>
293 <para>Select &rdquor;compute virtualization method&rdquo;, then select
294 &rdquor;QEMU-KVM as hypervisor&rdquo; and press [Next]</para>
295 </listitem>
296
297 <listitem>
298 <para>Select &rdquor;network mode&rdquo;</para>
299
300 <itemizedlist>
301 <listitem>
302 <para>Select &rdquor;Neutron with ML2 plugin&rdquo;</para>
303 </listitem>
304
305 <listitem>
306 <para>Select &rdquor;Neutron with tunneling segmentation&rdquo;,
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 &rdquor;Storage Back-ends&rdquo;, then &rdquor;Ceph for
318 block storage&rdquo; and press [Next]</para>
319 </listitem>
320
321 <listitem>
322 <para>Select the &rdquor;additional services&rdquo; you wish to
323 install</para>
324
325 <itemizedlist>
326 <listitem>
327 <para>Check option &rdquor;Install Ceilometer and Aodh&rdquo; 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 &rdquor;default&rdquo; 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 &lt;CIDR for Public IP Addresses&gt;</para>
365 </listitem>
366
367 <listitem>
368 <para>IP Range Start to &lt;Public IP Address start&gt;</para>
369 </listitem>
370
371 <listitem>
372 <para>IP Range End to &lt;Public IP Address end&gt;</para>
373 </listitem>
374
375 <listitem>
376 <para>Gateway to &lt;Gateway for Public IP Addresses&gt;</para>
377 </listitem>
378
379 <listitem>
380 <para>Check &lt;VLAN tagging&gt;</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 &lt;VLAN tagging&gt;</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 &lt;VLAN tagging&gt;</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 &rdquor;Neutron L3&rdquo; 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 &rdquor;Other&rdquo; 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 &rdquor;Assign public network to all nodes&rdquo; (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 &rdquor;Settings&rdquo; Tab</para>
559 </listitem>
560
561 <listitem>
562 <para>Select &rdquor;Compute&rdquo; 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 &rdquor;Settings&rdquo; 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 &rdquor;Nodes&rdquo; 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&gt;] button</para>
607 </listitem>
608
609 <listitem>
610 <para>Check &lt;Controller&gt;, &lt;Telemetry - MongoDB&gt; and
611 optionally an SDN Controller role (OpenDaylight controller/ONOS)
612 in the &rdquor;Assign Roles&rdquo; 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 &lt;Controller&gt; and &lt;Storage - Ceph OSD&gt;
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 &lt;Compute&gt; and &lt;Storage - Ceph OSD&gt;
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 &lt;All&gt;] 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 &rdquor;Name&rdquo; values
701 outlined below:</para>
702
703 <itemizedlist>
704 <listitem>
705 <para>&rdquor;ubuntu&rdquo; URI=&rdquo;deb
706 http://&lt;ip-of-fuel-server&gt;:8080/mirrors/ubuntu/trusty main
707 universe multiverse&rdquo;</para>
708 </listitem>
709
710 <listitem>
711 <para>&rdquor;ubuntu-security&rdquo; URI=&rdquo;deb
712 http://&lt;ip-of-fuelserver&gt;:8080/mirrors/ubuntu/trusty-security
713 main universe multiverse&rdquo;</para>
714 </listitem>
715
716 <listitem>
717 <para>&rdquor;ubuntu-updates&rdquo; URI=&rdquo;deb
718 http://&lt;ip-of-fuelserver&gt;:8080/mirrors/ubuntu/trusty-updates
719 main universe multiverse&rdquo;</para>
720 </listitem>
721
722 <listitem>
723 <para>&rdquor;mos&rdquo; URI=&rdquo;deb
724 http://&lt;ip-of-fuel-server&gt;::8080/mitaka-9.0/ubuntu/x86_64
725 mos9.0 main restricted&rdquo;</para>
726 </listitem>
727
728 <listitem>
729 <para>&rdquor;Auxiliary&rdquo; URI=&rdquo;deb
730 http://&lt;ip-of-fuel-server&gt;:8080/mitaka-9.0/ubuntu/auxiliary
731 auxiliary main restricted&rdquo;</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 &rdquor;Offloading Modes&rdquo;.</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 &rdquor;Offloading Modes&rdquo;
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 &rdquor;Offloading Modes&rdquo; defaults, in the &rdquor;Configure
758 interfaces&rdquo; page (described above), expand the affected
759 interface&rsquo;s &rdquor;Offloading Modes&rdquo; 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 &rdquor;Verify Networks&rdquo; with
766 non-default &rdquor;Offloading Modes&rdquo;.</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 &rdquor;Offloading Modes&rdquo; not
776 being applied during the &rdquor;Verify Networks&rdquo; step.</para>
777
778 <para>Setting custom &rdquor;Offloading Modes&rdquo; in Fuel GUI will
779 only apply during provisioning and not during &rdquor;Verify
780 Networks&rdquo;. If your targets need this change, you have to apply
781 &rdquor;Offloading Modes&rdquo; settings manually to bootstrapped
782 nodes. E.g.: Our driver has the &rdquor;rx-vlan-filter&rdquo; default
783 &rdquor;on&rdquo; (expected &rdquor;off&rdquo;) on the Openstack
784 interface &rdquor;eth1&rdquo;, preventing VLAN traffic from passing
785 during &rdquor;Verify Networks&rdquo;.</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 &rdquor;rx-vlan-filter&rdquo; 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 &rdquor;Connectivity check&rdquo; 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 &rdquor;Verification Succeeded&rdquo; and &rdquor;Your network is
838 configured correctly&rdquo; 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 &rdquor;Dashboard&rdquo;
851 Tab</para>
852 </listitem>
853
854 <listitem>
855 <para>Click on [Deploy Changes] in the &rdquor;Ready to Deploy?&rdquo;
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 &rdquor;Dashboard&rdquo; 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 &rdquor;Health Check&rdquo; 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
4BOOK_VER ?= $(REL_VER)-dev
5
6DOCBOOK_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
8BOOKPACKAGES := book-enea-nfv-installation-guide
9BOOKDESC_$(BOOKPACKAGES) := "Enea NFV $(PROD_VER) Installation Guide"
10BOOKDEFAULTCONDITION := $(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
16from subprocess import check_output
17import json, re, datetime
18import time
19
20try:
21 with open("book-enea-linux-release-info/doc/jiraissues_override.xml") as f:
22 print f.read(),
23
24 exit(0)
25
26except SystemExit:
27 # Printing the override file was successful. Exception raised by
28 # the exit() call in the try block.
29 exit(0)
30
31except IOError:
32 # Accessing the override file failed. Assume that it does not exist
33 # and proceed with normal operation.
34 pass
35
36jd = json.JSONDecoder()
37
38def 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
56conditions = ("project=LXCR",
57 "issueType=bug",
58 "resolution=Unresolved",
59 'affectedversion="Enea Linux 6"'
60 )
61
62bugs = []
63
64time_str = time.strftime("%Y-%m-%d, %H:%M:%S (%Z)")
65
66for issue in jira_query(" and ".join(conditions)):
67 bugs.append((issue["key"], issue["fields"]["summary"]))
68
69print '<?xml version="1.0" encoding="ISO-8859-1"?>'
70print '<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"'
71print '"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">'
72print '<section id="relinfo-extracted-from-jira">'
73print ' <title>Extracted from Jira</title>'
74print
75print ' <para>'
76print ' This section lists open bugs in Jira. Extracted at %s.' % time_str
77print ' </para>'
78print
79print ' <remark>Jira query: (%s)</remark>' % "\n and ".join(conditions)
80print
81print ' <informaltable>'
82print ' <tgroup cols="2">'
83print ' <colspec colwidth="6*" colname="c1"/>'
84print
85print ' <colspec align="center" colwidth="1*" colname="c2"/>'
86print
87print ' <thead>'
88print ' <row>'
89print ' <entry align="center">Summary</entry>'
90print
91print ' <entry>Enea Ref</entry>'
92print ' </row>'
93print ' </thead>'
94print
95print ' <tbody>',
96
97if bugs:
98 for bug in sorted(bugs):
99 print
100 print ' <row>'
101 print ' <entry>%s</entry>' % bug[1]
102 print
103 print ' <entry>%s</entry>' % bug[0]
104 print ' </row>'
105
106else:
107 print ' <row>'
108 print ' <entry namest="c1" nameend="c2" align="center">'
109 print ' No issues found'
110 print ' </entry>'
111 print ' </row>'
112
113print ' </tbody>'
114print ' </tgroup>'
115print ' </informaltable>'
116
117if bugs:
118 print ' <para>Number of open bugs: %d</para>' % len(bugs)
119
120print '</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
37import os
38import sys
39import subprocess as sp
40import xml.etree.ElementTree as ET
41import re
42
43repo_root = sp.check_output(["git", "rev-parse", "--show-toplevel"]).rstrip()
44script_root = os.path.dirname(os.path.realpath(__file__))
45param_file = os.path.join(script_root, "docsrc_common/pardoc-distro.xml")
46
47def 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
58def 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 (("&rdquor;", "&quot;"), ("&rdquo;", "&quot;")):
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
103if len(sys.argv) == 3:
104 new_file, prev_file = sys.argv[1:3]
105
106elif 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
114else:
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
127sys.stderr.write("New license file : %s\n" % new_file)
128sys.stderr.write("Prev license file : %s\n" % prev_file)
129
130old_pset, old_pdict = get_pkgs(prev_file)
131new_pset, new_pdict = get_pkgs(new_file)
132
133added = new_pset - old_pset # Set subtraction
134removed = old_pset - new_pset # Set subtraction
135common = old_pset & new_pset
136changed = [ p for p in common if old_pdict[p] != new_pdict[p] ]
137
138print '<?xml version="1.0" encoding="ISO-8859-1"?>'
139print '<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"'
140print '"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">'
141print '<section id="relinfo-package-set-changes">'
142print ' <title>Changes in the Set of Provided Packages</title>'
143print ' <para>'
144print ' This section describes changes in the provided packages.'
145print ' </para>'
146print ' <section id="relinfo-added-packages">'
147print ' <title>Added Packages</title>'
148print ' <informaltable>'
149print ' <tgroup cols="2">'
150print ' <thead>'
151print ' <row>'
152print ' <entry>Package</entry>'
153print ' <entry>Version(s)</entry>'
154print ' </row>'
155print ' </thead>'
156print ' <tbody>'
157
158for 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
164print ' </tbody>'
165print ' </tgroup>'
166print ' </informaltable>'
167print ' </section>'
168
169print ' <section id="relinfo-removed-packages">'
170print ' <title>Removed Packages</title>'
171print ' <informaltable>'
172print ' <tgroup cols="2">'
173print ' <thead>'
174print ' <row>'
175print ' <entry>Package</entry>'
176print ' <entry>Version(s)</entry>'
177print ' </row>'
178print ' </thead>'
179print ' <tbody>'
180for 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>'
185print ' </tbody>'
186print ' </tgroup>'
187print ' </informaltable>'
188print ' </section>'
189
190print ' <section id="relinfo-changed-packages">'
191print ' <title>Changed Package Versions</title>'
192print ' <informaltable>'
193print ' <tgroup cols="3">'
194print ' <thead>'
195print ' <row>'
196print ' <entry>Package</entry>'
197print ' <entry>Previous Version(s)</entry>'
198print ' <entry>New Version(s)</entry>'
199print ' </row>'
200print ' </thead>'
201print ' <tbody>'
202for 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
209print ' </tbody>'
210print ' </tgroup>'
211print ' </informaltable>'
212print ' </section>'
213print '</section>'
214
215sys.stderr.write("Package Summary:\n")
216sys.stderr.write(" Prev file : %3d\n" % len(old_pset))
217sys.stderr.write(" New file : %3d\n" % len(new_pset))
218sys.stderr.write(" Added : %3d\n" % len(added))
219sys.stderr.write(" Removed : %3d\n" % len(removed))
220sys.stderr.write(" Changed : %3d\n" % len(changed))
221sys.stderr.write(" Unchanged : %3d\n" % (len(common) - len(changed)))
222sys.stderr.write("Done\n")
diff --git a/init.mk b/init.mk
new file mode 100644
index 0000000..1c3035c
--- /dev/null
+++ b/init.mk
@@ -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
4ifeq ($(VERBOSE),yes)
5VERB :=
6else
7VERB := @
8endif
9
10#Git repositories to be cloned
11REPO_DOCBUILD := build/docbuild.git
12NAME_DOCBUILD := docbuild
13
14GLOBALTMPCLONEROOT = ../../tmpcommon
15ifeq ($(BOOK_GLOBALCLONEROOT),)
16 TMPCLONEROOT := tmpcommon
17else
18 ifeq ($(BOOK_GLOBALCLONEROOT),yes)
19 TMPCLONEROOT := $(GLOBALTMPCLONEROOT)
20 else
21 TMPCLONEROOT := $(BOOK_GLOBALCLONEROOT)/tmpcommon
22 endif
23endif
24DIR_TMPCLONEROOT := $(dir $(TMPCLONEROOT))
25ifeq ($(wildcard $(DIR_TMPCLONEROOT)),)
26$(error Parent of selected clone root does not exist ($(DIR_TMPCLONEROOT)))
27endif
28
29.PHONY: initbuild usageinit cleaninit
30# Keep usageinit as default target here to avoid init by mistake
31
32usageinit: 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
42initbuild: s_docbuild
43pullbuild:
44 $(VERB)if [ ! -d s_docbuild ]; then echo "ERROR: No s_docbuild exists?" ; exit 10 ; fi
45 $(VERB)cd s_docbuild ; git pull
46s_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
60cleaninit:
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