Add instructions for deploying LMA without Fuel

This change extends the developer documentation to explain how the LMA
collector can be deployed without using the Fuel plugin.

Change-Id: Ibed39ae68eb227fc248a59db3e16dada94063976
Implements: blueprint lma-without-fuel
This commit is contained in:
Simon Pasquier 2016-03-02 18:02:03 +01:00
parent 8d4c33d0ab
commit 1184e0c8d2
2 changed files with 110 additions and 0 deletions

View File

@ -11,6 +11,7 @@ Welcome to the Mirantis OpenStack LMA Collector Developer Documentation!
notifications
metrics
outputs
install_without_fuel
tests
Indices and Tables

View File

@ -0,0 +1,109 @@
Installation without Fuel
=========================
This section provides instructions and hints on how the LMA Collector service
can be deployed without using the Fuel plugin package. For instance, the Fuel
version that you are running isn't compatible with the current release of the
LMA Collector or you want to have more control on the configuration of the LMA
Collector.
In such situations, it is possible to leverage directly the Puppet modules and
write your own Puppet manifests to configure and run the LMA Collector service
on the OpenStack nodes.
Pre-requisites
^^^^^^^^^^^^^^
* The nodes are already deployed with the OpenStack services.
* The nodes can download and install packages from a repository server that you
manage.
* Configuration management is done with Puppet >= 3.x. Both `master and
masterless methods
<https://docs.puppetlabs.com/puppet/latest/reference/dirs_manifest.html>`_
are supported.
* You have already written the main Puppet manifests. You can have a look at the
`reference documentation
<https://github.com/openstack/fuel-plugin-lma-collector/tree/master/deployment_scripts/puppet/modules/lma_collector/README.md>`_
and at the `examples
<https://github.com/openstack/fuel-plugin-lma-collector/tree/master/deployment_scripts/puppet/modules/lma_collector/examples>`_
of the `lma_collector` Puppet module.
* The satellite clusters (Elasticsearch/Kibana, InfluxDB/Grafana and Nagios)
are already deployed and the nodes where LMA Collectors run have access
to them.
Download the packages
^^^^^^^^^^^^^^^^^^^^^
Before running the Puppet manifests, you have to make sure that the nodes will
be able to download and install the necessary packages.
This small script will get you started:
.. code-block:: bash
WORK_DIR=/tmp/lma_collector
PACKAGES_DIR=${WORK_DIR}/packages
mkdir -p ${PACKAGES_DIR}
rm -rf ${PACKAGES_DIR:?}/*
pushd $WORK_DIR
git clone https://github.com/openstack/fuel-plugin-lma-collector.git
cd fuel-plugin-lma-collector
./pre_build_hook
cp ./repositories/ubuntu/*.deb ${PACKAGES_DIR}
(cd ${PACKAGES_DIR} && dpkg-scanpackages . > Packages)
echo "The packages directory is available at ${PACKAGES_DIR}"
popd
Then you should copy the `packages` directory to your local repository server
and update the APT configuration on the deployed nodes accordingly to enable
the new source repository.
Building the Puppet modules
^^^^^^^^^^^^^^^^^^^^^^^^^^^
You have to build locally the `lma_collector` and `heka` Puppet modules because
they aren't yet available from PuppetForge.
.. code-block:: bash
WORK_DIR=/tmp/lma_collector
mkdir -p ${WORK_DIR}
rm -rf ${WORK_DIR:?}/*
pushd $WORK_DIR
git clone https://github.com/openstack/fuel-plugin-lma-collector.git
cd fuel-plugin-lma-collector/deployment_scripts/puppet/modules/
for module in heka lma_collector
do
pushd $module
puppet module build
cp pkg/*.tar.gz ${WORK_DIR}
popd
done
echo "The Puppet modules are available at ${WORK_DIR}"
popd
Installing the Puppet modules
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
After building the `lma_collector` and `heka` Puppet modules, you need to
install them on your Puppet master or on all the nodes (in case of masterless
installation).
.. code-block:: bash
puppet module install mirantis-heka-1.0.0.tar.gz
puppet module install mirantis-lma_collector-1.0.0.tar.gz
Running the main Puppet manifest(s)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Finally you can run your main Puppet manifest(s). For the masterless case, it
would mean executing the `puppet apply` command similar to this snippet:
.. code-block:: bash
puppet apply /etc/puppet/manifests/