Commit 6b5d9b59 authored by Constantinos Venetsanopoulos's avatar Constantinos Venetsanopoulos
Browse files

Update the intro section of the snf-deploy doc

parent 6d18928c
...@@ -960,6 +960,8 @@ By default, the Django webapp and snf-manage logs to syslog, while ...@@ -960,6 +960,8 @@ By default, the Django webapp and snf-manage logs to syslog, while
`snf-dispatcher` logs to `/var/log/synnefo/dispatcher.log`. `snf-dispatcher` logs to `/var/log/synnefo/dispatcher.log`.
.. _scale-up:
Scaling up to multiple nodes Scaling up to multiple nodes
============================ ============================
...@@ -984,6 +986,8 @@ The above graph is actually the same with the one at the beginning of this ...@@ -984,6 +986,8 @@ The above graph is actually the same with the one at the beginning of this
Synnefo roles of each physical node. These roles are described in the Synnefo roles of each physical node. These roles are described in the
following section. following section.
.. _physical-node-roles:
Physical Node roles Physical Node roles
------------------- -------------------
...@@ -1004,7 +1008,7 @@ multiple physical nodes that have the following roles: ...@@ -1004,7 +1008,7 @@ multiple physical nodes that have the following roles:
You will probably also have: You will probably also have:
* **CMS**: The CMS used as a frotend portal for the Synnefo services * **CMS**: The CMS used as a frotend portal for the Synnefo services
* **NS**: A nameserver serving all other nodes * **NS**: A nameserver serving all other Synnefo nodes and resolving Synnefo FQDNs
* **CLIENT**: A machine that runs the Synnefo clients (e.g.: kamaki, Web UI), * **CLIENT**: A machine that runs the Synnefo clients (e.g.: kamaki, Web UI),
most of the times, the end user's local machine most of the times, the end user's local machine
......
...@@ -3,54 +3,84 @@ ...@@ -3,54 +3,84 @@
snf-deploy tool snf-deploy tool
^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^
The `snf-deploy` tool allows you to automatically deploy Synnefo.
You can use `snf-deploy` to deploy Synnefo, in two ways:
This tool allows you to deploy all Synnefo components from scratch 1. Create a virtual cluster on your local machine and then deploy on that cluster.
or to an existing cluster. 2. Deploy on a pre-existent cluster of physical nodes.
This is useful mostly for testing/demo installation and is not suggested for Currently, `snf-deploy` is mostly useful for testing/demo installations and is not
production environments. At the end you will have an up-and-running Synnefo but recommended for production environment Synnefo deployments. If you want to deploy
the end-to-end functionallity will depend from your underlying infrastracture Synnefo in production, please read first the :ref:`Admin's quick installation
(e.g. is nested virtualization enabled in your PC, is the router properly guide <quick-install-admin-guide>` and then the :ref:`Admin's guide
configured, do node have fully qualified domain names, etc.). Nevertheless you <admin-guide>`.
will be able to experience the API/UI and base funtionality the Synnefo IaaS
provides and you 'll get a proper configuration that will guide you through
setting a production environment that will scale up and use all available
features (e.g. rados, archipelagos, etc).
snf-deploy is a debian package that should be installed locally and allow you If you use `snf-deploy` you will setup an up-and-running Synnefo installation, but
install Synnefo on remote nodes (either already existing or not). To this the end-to-end functionality will depend on your underlying infrastracture (e.g.
end this guide will break the whole procedure into three; the configuration, is nested virtualization enabled in your PC, is the router properly configured, do
the virtual cluster creation (optional) and finally the Synnefo installation. nodes have fully qualified domain names, etc.). In any way, it will enable you to
get a grasp of the Web UI/API and base funtionality of Synnefo and also provide a
proper configuration that you can afterwards consult while reading the Admin
guides to set up a production environment that will scale up and use all available
features (e.g. RADOS, Archipelago, etc).
Before getting any further we should mention the roles that snf-deploy refers `snf-deploy` is a debian package that should be installed locally and allows you
to. Note that more than one roles can co-exist in the same node (except for few) to install Synnefo on remote nodes (if you go for (2)), or spawn a cluster of VMs
but it is highy recommended to dedicate one node (VM or physical) to each role: on your local machine using KVM and then install Synnefo on this cluster (if you
go for (1)). To this end, here we will break down our description into three
sections:
- existing nodes: All available nodes in the cluster a. `snf-deploy` configuration
b. Creating a virtual cluster (needed for (1))
c. Synnefo deployment (either on virtual nodes created on section b, or on
remote physical nodes)
- accounts: Identity Management If you go for (1) you will need to walk through all the sections. If you go for
- pithos: Storage Service (2), you should skip section (b), since you only need sections (a) and (c).
- cms: Content Management System
- cyclades: Compute Service to manage Instances, Networks, etc.
- mq: Asynchronous Message Queue System for inter-service communication
- qh: Quota Holder to keep track of resources utilization
- ns: Nameserver to resolve Synnefo FQDN Before getting any further we should mention the roles that `snf-deploy` refers
- router: The node to do any routing and NAT needed to. The roles are described :ref:`here <physical-node-roles`. Note that multiple
- client: The node to setup a command line tool to manage a user account roles can co-exist in the same node (virtual or physical).
All these define the synnefo components. In order to have instances up-and-running, Currently, `snf-deploy` recognizes the following combined roles:
at least a backend must be associated with Cyclades. Backends are
Ganeti clusters each with multiple nodes. Please note that these nodes may be the
same as the ones used before. To this end we refer to:
- ganeti nodes: All available nodes for a specific backend * **astakos** = **WEBSERVER** + **ASTAKOS**
- master: The master node in each ganeti backend * **pithos** = **WEBSERVER** + **PITHOS**
* **cyclades** = **WEBSERVER** + **CYCLADES**
* **db** = **ASTAKOS_DB** + **PITHOS_DB** + **CYCLADES_DB**
Configuration the following independent roles:
=============
The configuration files to edit are under /etc/snf-deploy: * **cms** = **CMS**
* **mq** = **MQ**
* **ns** = **NS**
* **client** = **CLIENT**
* **router**: The node to do any routing and NAT needed
The above define the roles relative to the Synnefo components. However, in
order to have instances up-and-running, at least one backend must be associated
with Cyclades. Backends are Ganeti clusters each with multiple
**GANETI_NODE**s. Please note that these nodes may be the same as the ones used
for the previous roles. To this end, `snf-deploy` also recognizes:
* **ganeti_backend** = **G_BACKEND** = All available nodes of a specific backend
* **ganeti_master** = **GANETI_MASTER**
Finally, it recognizes the group role:
* **existing_nodes** = **SYNNEFO** + (N x **G_BACKEND**)
In the future, `snf-deploy` will recognize all the independent roles of a scale
out deployment as stated in the :ref:`scale up section <scale-up>`. When that's
done it won't need to introduce its own roles (stated here with lowercase) but
rather use the scale out ones (stated with uppercase on the admin guide).
Configuration (a)
=================
All configuration of `snf-deploy` happens by editting the following files under
``/etc/snf-deploy``:
nodes.conf nodes.conf
---------- ----------
...@@ -96,8 +126,8 @@ to use (if you create a virtual cluster from scratch), and where are the ...@@ -96,8 +126,8 @@ to use (if you create a virtual cluster from scratch), and where are the
necessary local directories (packages, templates, images, etc..) necessary local directories (packages, templates, images, etc..)
Virtual Cluster Creation Virtual Cluster Creation (b)
======================== ============================
Supposing you want to install Synnefo from scratch the best way is to launch Supposing you want to install Synnefo from scratch the best way is to launch
a couple of VM's locally. To this end you need a debian base image. An 8GB one a couple of VM's locally. To this end you need a debian base image. An 8GB one
...@@ -142,8 +172,11 @@ before. Their taps will be connected with the already created bridge and their ...@@ -142,8 +172,11 @@ before. Their taps will be connected with the already created bridge and their
primary interface should get the given address. primary interface should get the given address.
Synnefo Installation (c)
========================
Setting up the Synnefo DNS Setting up the Synnefo DNS
========================== --------------------------
At this point you should have an up-and-running cluster (either virtual or not) At this point you should have an up-and-running cluster (either virtual or not)
with valid hostnames and IPs. Synnefo expects fqdn and therefore a nameserver with valid hostnames and IPs. Synnefo expects fqdn and therefore a nameserver
...@@ -161,16 +194,10 @@ To setup the nameserver in the node specified in setup.conf please run: ...@@ -161,16 +194,10 @@ To setup the nameserver in the node specified in setup.conf please run:
snf-deploy dns snf-deploy dns
Synnefo Installation
====================
At this point you should have a cluster with fqdns and reverse DNS lookups ready At this point you should have a cluster with fqdns and reverse DNS lookups ready
for synnefo deployment. To sum up we mention all the node requirements for a for synnefo deployment. To sum up we mention all the node requirements for a
successful synnefo installation: successful synnefo installation:
Node Requirements Node Requirements
----------------- -----------------
...@@ -216,7 +243,7 @@ and login with: ...@@ -216,7 +243,7 @@ and login with:
or whatever you gave in setup.conf and get a small taste of your private cloud setup. or whatever you gave in setup.conf and get a small taste of your private cloud setup.
Adding a Ganeti Backend Adding a Ganeti Backend
======================= -----------------------
Assuming that all have worked out fine as expected, you must have astakos, Assuming that all have worked out fine as expected, you must have astakos,
pithos, cms, db and mq up and running. Cyclades work too but partially. No pithos, cms, db and mq up and running. Cyclades work too but partially. No
...@@ -251,8 +278,8 @@ To test deployment state please visit: ...@@ -251,8 +278,8 @@ To test deployment state please visit:
and try to create a VM. and try to create a VM.
snf-deploy as DevTool snf-deploy as a DevTool
===================== =======================
For developers who want to contribute a single node setup is highly recommended. For developers who want to contribute a single node setup is highly recommended.
snf-deploy tools also supports updating packages that are localy generated. This snf-deploy tools also supports updating packages that are localy generated. This
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment