export LATEST_MIRROR_ID_URL := http://$(shell ./select_closest_fuel_mirror.py)
-export MIRROR_MOS_UBUNTU := $(shell echo "$(LATEST_MIRROR_ID_URL)" | cut -d'/' -f3)
+export MIRROR_MOS_UBUNTU ?= $(shell echo "$(LATEST_MIRROR_ID_URL)" | cut -d'/' -f3)
export LATEST_TARGET_UBUNTU := $(shell curl -sSf "$(MIRROR_MOS_UBUNTU)/mos-repos/ubuntu/$(MOSVERSION).target.txt" | head -1)
export MIRROR_MOS_UBUNTU_ROOT := /mos-repos/ubuntu/$(LATEST_TARGET_UBUNTU)
# Add Fuel plugin build targets here
# Plugins disabled for the Fuel Mitaka uplift. Please re-enable your plugin as you have
# verified it!
-PLUGINS = f_odlpluginbuild f_onosfwpluginbuild f_vsperfpluginbuild f_ovs-nsh-dpdk-pluginbuild f_yardstick-pluginbuild f_kvm-pluginbuild f_bgpvpn-pluginbuild f_collectd-ceilometer-pluginbuild
+PLUGINS ?= f_odlpluginbuild f_onosfwpluginbuild f_vsperfpluginbuild f_ovs-nsh-dpdk-pluginbuild f_yardstick-pluginbuild f_kvm-pluginbuild f_bgpvpn-pluginbuild f_collectd-ceilometer-pluginbuild
#PLUGINS = f_odlpluginbuild f_onosfwpluginbuild f_ovsnfv-dpdk-pluginbuild f_vsperfpluginbuild f_ovs-nsh-dpdk-pluginbuild f_bgpvpn-pluginbuild
export PLUGINS
#NON_8-0_REBASED_PLUGINS = f_bgpvpn-pluginbuild
##############################################################################
FUEL_PLUGIN_ODL_BRANCH ?= master
-FUEL_PLUGIN_ODL_CHANGE ?= 8cc22c4717d2da338135d854e1d13aac3ef75314
+FUEL_PLUGIN_ODL_CHANGE ?= 0ff4ebdbfe5f681f0b44eea14c9c2b3dbb10b1d5
FUEL_PLUGIN_ODL_REPO ?= https://github.com/openstack/fuel-plugin-opendaylight.git
export ODL_TARBALL_LOCATION?=https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/integration/distribution-karaf/0.4.3-Beryllium-SR3/distribution-karaf-0.4.3-Beryllium-SR3.tar.gz
BUILD_BASE=$(readlink -e ${SCRIPT_DIR}/../build/)
RESULT_DIR="${BUILD_BASE}/release"
BUILD_SPEC="${BUILD_BASE}/config.mk"
-LOCAL_CACHE_ARCH_NAME="fuel-cache"
+LOCAL_CACHE_ARCH_NAME="${LOCAL_CACHE_ARCH_NAME:-fuel-cache}"
#
# END of variables to customize
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
`basename $0`: Deploys the Fuel@OPNFV stack
-usage: `basename $0` -b base-uri [-B PXE Bridge] [-f] [-F] [-H] -l lab-name -p pod-name -s deploy-scenario [-S image-dir] -i iso
+usage: `basename $0` -b base-uri [-B PXE Bridge] [-f] [-F] [-H] -l lab-name -p pod-name -s deploy-scenario [-S image-dir] [-T timeout] -i iso
-s deployment-scenario [-S optional Deploy-scenario path URI]
[-R optional local relen repo (containing deployment Scenarios]
-p Pod-name
-s Deploy-scenario short-name/base-file-name
-S Storage dir for VM images
+ -T Timeout, in minutes, for the deploy.
-i iso url
Description:
or a deployment short-name as defined by scenario.yaml in the deployment
scenario path.
-S Storage dir for VM images, default is fuel/deploy/images
+-T Timeout, in minutes, for the deploy. It defaults to using the DEPLOY_TIMEOUT
+ environment variable when defined, or to the default in deploy.py otherwise
-i .iso image to be deployed (needs to be provided in a URI
style, it can be a local resource: file:// or a remote resource http(s)://)
NO_DEPLOY_ENVIRONMENT=''
STORAGE_DIR=''
DRY_RUN=0
+if ! [ -z $DEPLOY_TIMEOUT ]; then
+ DEPLOY_TIMEOUT="-dt $DEPLOY_TIMEOUT"
+else
+ DEPLOY_TIMEOUT=""
+fi
#
# END of variables to customize
############################################################################
############################################################################
# BEGIN of main
#
-while getopts "b:B:dfFHl:L:p:s:S:i:he" OPTION
+while getopts "b:B:dfFHl:L:p:s:S:T:i:he" OPTION
do
case $OPTION in
b)
STORAGE_DIR="-s ${OPTARG}"
fi
;;
+ T)
+ DEPLOY_TIMEOUT="-dt ${OPTARG}"
+ ;;
i)
ISO=${OPTARG}
if [[ ! $ISO == file://* ]] && \
ISO=${SCRIPT_PATH}/ISO/image.iso
fi
# Start deployment
- echo "python deploy.py $DEPLOY_LOG $STORAGE_DIR $PXE_BRIDGE $USE_EXISTING_FUEL $FUEL_CREATION_ONLY $NO_HEALTH_CHECK $NO_DEPLOY_ENVIRONMENT -dea ${SCRIPT_PATH}/config/dea.yaml -dha ${SCRIPT_PATH}/config/dha.yaml -iso $ISO"
- python deploy.py $DEPLOY_LOG $STORAGE_DIR $PXE_BRIDGE $USE_EXISTING_FUEL $FUEL_CREATION_ONLY $NO_HEALTH_CHECK $NO_DEPLOY_ENVIRONMENT -dea ${SCRIPT_PATH}/config/dea.yaml -dha ${SCRIPT_PATH}/config/dha.yaml -iso $ISO
+ echo "python deploy.py $DEPLOY_LOG $STORAGE_DIR $PXE_BRIDGE $USE_EXISTING_FUEL $FUEL_CREATION_ONLY $NO_HEALTH_CHECK $NO_DEPLOY_ENVIRONMENT -dea ${SCRIPT_PATH}/config/dea.yaml -dha ${SCRIPT_PATH}/config/dha.yaml -iso $ISO $DEPLOY_TIMEOUT"
+ python deploy.py $DEPLOY_LOG $STORAGE_DIR $PXE_BRIDGE $USE_EXISTING_FUEL $FUEL_CREATION_ONLY $NO_HEALTH_CHECK $NO_DEPLOY_ENVIRONMENT -dea ${SCRIPT_PATH}/config/dea.yaml -dha ${SCRIPT_PATH}/config/dha.yaml -iso $ISO $DEPLOY_TIMEOUT
fi
popd > /dev/null
self.iso_file = new_iso
self.install_iso()
+ def delete_old_fuel_env(self):
+ log('Delete old Fuel Master environments if present')
+ try:
+ old_dep = CloudDeploy(self.dea, self.dha, self.fuel_conf['ip'],
+ self.fuel_username, self.fuel_password,
+ self.dea_file, self.fuel_plugins_conf_dir,
+ WORK_DIR, self.no_health_check,
+ self.deploy_timeout,
+ self.no_deploy_environment, self.deploy_log)
+ with old_dep.ssh:
+ old_dep.check_previous_installation()
+ except Exception as e:
+ log('Could not delete old env: %s' % str(e))
+
def install_iso(self):
fuel = InstallFuelMaster(self.dea_file, self.dha_file,
self.fuel_conf['ip'], self.fuel_username,
def deploy(self):
self.collect_fuel_info()
if not self.no_fuel:
+ self.delete_old_fuel_env()
self.setup_execution_environment()
self.create_tmp_dir()
self.install_fuel_master()
References
==========
-1) `OPNFV Installation instruction for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/installation-instruction.html>`_
+1) `OPNFV Installation instruction for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/installationprocedure/index.html>`_: http://artifacts.opnfv.org/fuel/colorado/docs/installationprocedure/index.html
-2) `OPNFV Build instruction for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/build-instruction.html>`_
+2) `OPNFV Build instruction for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/buildprocedure/index.html>`_: http://artifacts.opnfv.org/fuel/colorado/docs/buildprocedure/index.html
-3) `OPNFV Release Note for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/release-notes.html>`_
+3) `OPNFV Release Note for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/releasenotes/index.html>`_: http://artifacts.opnfv.org/fuel/colorado/docs/releasenotes/index.html
.. You should have received a copy of the license along with this work.
.. If not, see <http://creativecommons.org/licenses/by/4.0/>.
-*****************************
-Fuel@OPNFV build instructions
-*****************************
+******************************
+Fuel\@OPNFV build instructions
+******************************
.. toctree::
:numbered:
.. You should have received a copy of the license along with this work.
.. If not, see <http://creativecommons.org/licenses/by/4.0/>.
-***********************************
-Fuel@OPNFV Installation Instruction
-***********************************
+************************************
+Fuel\@OPNFV Installation Instruction
+************************************
.. toctree::
:numbered:
========
This document describes how to install the Colorado release of
-OPNFV when using Fuel as a deployment tool, covering it's usage,
+OPNFV when using Fuel as a deployment tool, covering it's usage,
limitations, dependencies and required system resources.
Introduction
Preface
=======
+
Before starting the installation of the Colorado release of
OPNFV, using Fuel as a deployment tool, some planning must be
done.
----------------------
Alternatively, you may build the Fuel .iso from source by cloning the
-opnfv/fuel git repository. To retrieve the repository for the Colorado release use the following command:
+opnfv/fuel git repository. To retrieve the repository for the Colorado
+release use the following command:
.. code-block:: bash
#. How many nodes and what roles you want to deploy (Controllers, Storage, Computes)
-#. Monitoring options you want to deploy (Ceilometer, Syslog, erc.).
+#. Monitoring options you want to deploy (Ceilometer, Syslog, etc.).
#. Other options not covered in the document are available in the links above
.. figure:: img/grub-1.png
-#. Wait until screen Fuel setup is shown (Note: This can take up to 30 minutes).
+#. Wait until the Fuel setup screen is shown (Note: This can take up to 30 minutes).
#. In the "Fuel User" section - Confirm/change the default password (See figure below)
- Select Quit Setup and press Save and Quit.
- - Installation starts, wait until the login screen is shown.
+ - The installation will now start, wait until the login screen is shown.
Boot the Node Servers
After the Fuel Master node has rebooted from the above steps and is at
the login prompt, you should boot the Node Servers (Your
-Compute/Control/Storage blades (nested or real) with a PXE booting
+Compute/Control/Storage blades, nested or real) with a PXE booting
scheme so that the FUEL Master can pick them up for control.
#. Enable PXE booting
- - For every controller and compute server: enable PXE Booting as the first boot device in the BIOS boot order menu and hard disk as the second boot device in the same menu.
+ - For every controller and compute server: enable PXE Booting as the first boot device in the BIOS boot order menu, and hard disk as the second boot device in the same menu.
#. Reboot all the control and compute blades.
Create an OpenStack Environment
-------------------------------
-#. Connect to Fuel WEB UI with a browser (default: https://10.20.0.2:8443) (login admin/admin)
+#. Connect to Fuel WEB UI with a browser (default: https://10.20.0.2:8443) (login: admin/admin)
#. Create and name a new OpenStack environment, to be installed.
#. Select "additional services" you wish to install.
- - Check option "Install Ceilometer (OpenStack Telemetry)" and press <Next>
+ - Check option "Install Ceilometer and Aodh" and press <Next>
#. Create the new environment.
#. Open the environment you previously created.
-#. Open the networks tab and select the "default Node Networks group to" on the left pane (see figure below).
+#. Open the networks tab and select the "default" Node Networks group to on the left pane (see figure below).
.. figure:: img/network.png
- Set appropriate VLAN tag (default 103)
-#. Select the "Neutron L3 Node Networks group" on the left pane.
+#. Select the "Neutron L3" Node Networks group on the left pane.
.. figure:: img/neutronl3.png
#. Save Settings.
-#. Select the "Other Node Networks group" on the left pane(see figure below).
+#. Select the "Other" Node Networks group on the left pane (see figure below).
.. figure:: img/other.png
#. In the FUEL UI of your Environment, click the "Settings" Tab
-#. Select Compute on the left side pane (see figure below)
+#. Select "Compute" on the left side pane (see figure below)
- Check the KVM box and press "Save settings"
- Click on the <+Add Nodes> button
- - Check <Controller>, <Telemetry - MongoDB> and optionally an SDN Controller role (OpenDaylight controller/ONOS) in the Assign Roles Section.
+ - Check <Controller>, <Telemetry - MongoDB> and optionally an SDN Controller role (OpenDaylight controller/ONOS) in the "Assign Roles" Section.
- Check one node which you want to act as a Controller from the bottom half of the screen
- Click <Configure Interfaces>
- - Assign interfaces (bonded) for mgmt-, admin-, private-, public-
- and storage networks
+ - Assign interfaces (bonded) for mgmt-, admin-, private-, public- and storage networks
- Click <Apply>
OPTIONAL - Set Local Mirror Repos
---------------------------------
-The following steps can be executed if you are in an environment with
+The following steps must be executed if you are in an environment with
no connection to the Internet. The Fuel server delivers a local repo
that can be used for installation / deployment of openstack.
- "ubuntu-updates" URI="deb http://<ip-of-fuel-server>:8080/mirrors/ubuntu/ trusty-updates main"
- - "mos" URI="deb http://<ip-of-fuel-server>::8080/mitaka-9.0/ubuntu/x86_64 mos8.0 main restricted"
+ - "mos" URI="deb http://<ip-of-fuel-server>::8080/mitaka-9.0/ubuntu/x86_64 mos9.0 main restricted"
- "Auxiliary" URI="deb http://<ip-of-fuel-server>:8080/mitaka-9.0/ubuntu/auxiliary auxiliary main restricted"
Deploy Your Environment
-----------------------
-38. Deploy the environment.
+#. Deploy the environment.
- In the Fuel GUI, click on the "Dashboard" Tab.
OPNFV
-----
-1) `OPNFV Home Page <http://www.opnfv.org>`_
+1) `OPNFV Home Page <http://www.opnfv.org>`_: http://www.opnfv.org
-2) `OPNFV documentation- and software downloads <https://www.opnfv.org/software/download>`_
+2) `OPNFV documentation- and software downloads <https://www.opnfv.org/software/download>`_: https://www.opnfv.org/software/download
OpenStack
---------
-3) `OpenStack Mitaka Release artifacts <http://www.openstack.org/software/mitaka>`_
+3) `OpenStack Mitaka Release artifacts <http://www.openstack.org/software/mitaka>`_: http://www.openstack.org/software/mitaka
-4) `OpenStack documentation <http://docs.openstack.org>`_
+4) `OpenStack documentation <http://docs.openstack.org>`_: http://docs.openstack.org
OpenDaylight
------------
-5) `OpenDaylight artifacts <http://www.opendaylight.org/software/downloads>`_
+5) `OpenDaylight artifacts <http://www.opendaylight.org/software/downloads>`_: http://www.opendaylight.org/software/downloads
Fuel
----
-6) `The Fuel OpenStack project <https://wiki.openstack.org/wiki/Fuel>`_
+6) `The Fuel OpenStack project <https://wiki.openstack.org/wiki/Fuel>`_: https://wiki.openstack.org/wiki/Fuel
-7) `Fuel documentation overview <http://docs.openstack.org/developer/fuel-docs>`_
+7) `Fuel documentation overview <http://docs.openstack.org/developer/fuel-docs>`_: http://docs.openstack.org/developer/fuel-docs
-8) `Fuel Installation Guide <http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-install-guide.html>`_
+8) `Fuel Installation Guide <http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-install-guide.html>`_: http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-install-guide.html
-9) `Fuel User Guide <http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide.html>`_
+9) `Fuel User Guide <http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide.html>`_: http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide.html
-10) `Fuel Developer Guide <http://docs.openstack.org/developer/fuel-docs/devdocs/develop.html>`_
+10) `Fuel Developer Guide <http://docs.openstack.org/developer/fuel-docs/devdocs/develop.html>`_: http://docs.openstack.org/developer/fuel-docs/devdocs/develop.html
-11) `Fuel Plugin Developers Guide <http://docs.openstack.org/developer/fuel-docs/plugindocs/fuel-plugin-sdk-guide.html>`_
+11) `Fuel Plugin Developers Guide <http://docs.openstack.org/developer/fuel-docs/plugindocs/fuel-plugin-sdk-guide.html>`_: http://docs.openstack.org/developer/fuel-docs/plugindocs/fuel-plugin-sdk-guide.html
-12) `Fuel OpenStack Hardware Compatibility List <https://www.mirantis.com/products/openstack-drivers-and-plugins/hardware-compatibility-list>`_
+12) `Fuel OpenStack Hardware Compatibility List <https://www.mirantis.com/products/openstack-drivers-and-plugins/hardware-compatibility-list>`_: https://www.mirantis.com/products/openstack-drivers-and-plugins/hardware-compatibility-list
Fuel in OPNFV
-------------
-13) `OPNFV Installation instruction for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/installation-instruction.html>`_
+13) `OPNFV Installation instruction for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/installationprocedure/index.html>`_: http://artifacts.opnfv.org/fuel/colorado/docs/installationprocedure/index.html
-14) `OPNFV Build instruction for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/build-instruction.html>`_
+14) `OPNFV Build instruction for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/buildprocedure/index.html>`_: http://artifacts.opnfv.org/fuel/colorado/docs/buildprocedure/index.html
-15) `OPNFV Release Note for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/release-notes.html>`_
+15) `OPNFV Release Note for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/releasenotes/index.html>`_: http://artifacts.opnfv.org/fuel/colorado/docs/releasenotes/index.html
.. You should have received a copy of the license along with this work.
.. If not, see <http://creativecommons.org/licenses/by/4.0/>.
-************************
-Fuel@OPNFV release notes
-************************
+*************************
+Fuel\@OPNFV release notes
+*************************
.. toctree::
:numbered:
# Function setting up the build/deploy environment
function envSetup () {
+ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BCE5CC461FA22B08
apt-get update
apt-get install -y git python-pip python-all debhelper
chkPPkg stdeb
dpkg-deb --control "$DEBFILE" "${TMPDIR}/DEBIAN"
cd "$TMPDIR"
patch -p 1 <<EOFDC
-diff -ruN a/DEBIAN/control b/DEBIAN/control
---- a/DEBIAN/control 2016-08-09 05:13:13.000000000 -0400
-+++ b/DEBIAN/control 2016-08-09 05:32:56.761035046 -0400
+diff -ruN DEBIAN/control DEBIAN/control
+--- a/DEBIAN/control 2016-08-19 11:53:10.000000000 +0000
++++ b/DEBIAN/control 2016-08-19 12:01:49.629096317 +0000
@@ -4,7 +4,7 @@
Architecture: all
Maintainer: OpenStack <openstack-dev@lists.openstack.org>
- Installed-Size: 1565
+ Installed-Size: 1566
-Depends: python (>= 2.7), python (<< 2.8), python:any (>= 2.7.1-0ubuntu2), python-pbr, python-paste, python-pastedeploy, python-routes, python-anyjson, python-babel, python-eventlet, python-greenlet, python-httplib2, python-requests, python-iso8601, python-jsonrpclib, python-jinja2, python-kombu, python-netaddr, python-sqlalchemy (>= 1.0~), python-sqlalchemy (<< 1.1), python-webob, python-heatclient, python-keystoneclient, alembic, python-six, python-stevedore, python-oslo.config, python-oslo.messaging-, python-oslo.rootwrap, python-novaclient
+Depends: python (>= 2.7), python (<< 2.8), python:any (>= 2.7.1-0ubuntu2), python-pbr, python-paste, python-pastedeploy, python-routes, python-anyjson, python-babel, python-eventlet, python-greenlet, python-httplib2, python-requests, python-iso8601, python-jsonrpclib, python-jinja2, python-kombu, python-netaddr, python-sqlalchemy (>= 1.0~), python-sqlalchemy (<< 1.1), python-webob, python-heatclient, python-keystoneclient, alembic, python-six, python-stevedore, python-oslo.config, python-oslo.messaging, python-oslo.rootwrap, python-novaclient
Section: python
}
# Function orchestrate the Tacker service
-function orchestarte () {
+function orchestrate () {
rm -rf /etc/puppet/modules/tacker
pushd /etc/puppet/modules
git clone https://github.com/trozet/puppet-tacker.git tacker
auth_uri=$(crudini --get '/etc/heat/heat.conf' 'keystone_authtoken' 'auth_uri')
identity_uri=$(crudini --get '/etc/heat/heat.conf' 'keystone_authtoken' 'identity_uri')
int_addr=$(ifconfig br-mesh | sed -n '/inet addr/s/.*addr.\([^ ]*\) .*/\1/p')
+ odl_addr=$(hiera management_vip)
mgmt_addr=$(ifconfig br-mgmt | sed -n '/inet addr/s/.*addr.\([^ ]*\) .*/\1/p')
pub_addr=$(ifconfig br-ex-lnx | sed -n '/inet addr/s/.*addr.\([^ ]*\) .*/\1/p')
rabbit_host=$(crudini --get '/etc/heat/heat.conf' 'oslo_messaging_rabbit' 'rabbit_hosts'| cut -d ':' -f 1)
rabbit_host => '${rabbit_host}',
rabbit_password => '${rabbit_password}',
heat_uri => '${heat_uri}',
- opendaylight_host => '${mgmt_addr}',
+ opendaylight_host => '${odl_addr}',
opendaylight_port => '${odl_port}',
}
done
}
+
envSetup
deployTackerClient
deployJsonrpclib
blessPackage
deployTackerServer
populate_client
-orchestarte
+orchestrate
populate_rc
+git clone https://github.com/trozet/sfc-random.git
+
remove_repo "$MYREPO"
remove_repo "$DEPREPO"
remove_repo "$CLIREPO"