Revision 21d3d487 docs/snf-deploy.rst
b/docs/snf-deploy.rst | ||
---|---|---|
3 | 3 |
snf-deploy tool |
4 | 4 |
^^^^^^^^^^^^^^^ |
5 | 5 |
|
6 |
The `snf-deploy` tool allows you to automatically deploy Synnefo. |
|
7 |
You can use `snf-deploy` to deploy Synnefo, in two ways: |
|
6 | 8 |
|
7 |
This tool allows you to deploy all Synnefo components from scratch
|
|
8 |
or to an existing cluster.
|
|
9 |
1. Create a virtual cluster on your local machine and then deploy on that cluster.
|
|
10 |
2. Deploy on a pre-existent cluster of physical nodes.
|
|
9 | 11 |
|
10 |
This is useful mostly for testing/demo installation and is not suggested for |
|
11 |
production environments. At the end you will have an up-and-running Synnefo but |
|
12 |
the end-to-end functionallity will depend from your underlying infrastracture |
|
13 |
(e.g. is nested virtualization enabled in your PC, is the router properly |
|
14 |
configured, do node have fully qualified domain names, etc.). Nevertheless you |
|
15 |
will be able to experience the API/UI and base funtionality the Synnefo IaaS |
|
16 |
provides and you 'll get a proper configuration that will guide you through |
|
17 |
setting a production environment that will scale up and use all available |
|
18 |
features (e.g. rados, archipelagos, etc). |
|
12 |
Currently, `snf-deploy` is mostly useful for testing/demo installations and is not |
|
13 |
recommended for production environment Synnefo deployments. If you want to deploy |
|
14 |
Synnefo in production, please read first the :ref:`Admin's quick installation |
|
15 |
guide <quick-install-admin-guide>` and then the :ref:`Admin's guide |
|
16 |
<admin-guide>`. |
|
19 | 17 |
|
20 |
snf-deploy is a debian package that should be installed locally and allow you |
|
21 |
install Synnefo on remote nodes (either already existing or not). To this |
|
22 |
end this guide will break the whole procedure into three; the configuration, |
|
23 |
the virtual cluster creation (optional) and finally the Synnefo installation. |
|
18 |
If you use `snf-deploy` you will setup an up-and-running Synnefo installation, but |
|
19 |
the end-to-end functionality will depend on your underlying infrastracture (e.g. |
|
20 |
is nested virtualization enabled in your PC, is the router properly configured, do |
|
21 |
nodes have fully qualified domain names, etc.). In any way, it will enable you to |
|
22 |
get a grasp of the Web UI/API and base funtionality of Synnefo and also provide a |
|
23 |
proper configuration that you can afterwards consult while reading the Admin |
|
24 |
guides to set up a production environment that will scale up and use all available |
|
25 |
features (e.g. RADOS, Archipelago, etc). |
|
24 | 26 |
|
25 |
Before getting any further we should mention the roles that snf-deploy refers |
|
26 |
to. Note that more than one roles can co-exist in the same node (except for few) |
|
27 |
but it is highy recommended to dedicate one node (VM or physical) to each role: |
|
27 |
`snf-deploy` is a debian package that should be installed locally and allows you |
|
28 |
to install Synnefo on remote nodes (if you go for (2)), or spawn a cluster of VMs |
|
29 |
on your local machine using KVM and then install Synnefo on this cluster (if you |
|
30 |
go for (1)). To this end, here we will break down our description into three |
|
31 |
sections: |
|
28 | 32 |
|
29 |
- existing nodes: All available nodes in the cluster |
|
33 |
a. `snf-deploy` configuration |
|
34 |
b. Creating a virtual cluster (needed for (1)) |
|
35 |
c. Synnefo deployment (either on virtual nodes created on section b, or on |
|
36 |
remote physical nodes) |
|
30 | 37 |
|
31 |
- accounts: Identity Management |
|
32 |
- pithos: Storage Service |
|
33 |
- cms: Content Management System |
|
34 |
- cyclades: Compute Service to manage Instances, Networks, etc. |
|
35 |
- mq: Asynchronous Message Queue System for inter-service communication |
|
36 |
- qh: Quota Holder to keep track of resources utilization |
|
38 |
If you go for (1) you will need to walk through all the sections. If you go for |
|
39 |
(2), you should skip section (b), since you only need sections (a) and (c). |
|
37 | 40 |
|
38 |
- ns: Nameserver to resolve Synnefo FQDN
|
|
39 |
- router: The node to do any routing and NAT needed
|
|
40 |
- client: The node to setup a command line tool to manage a user account
|
|
41 |
Before getting any further we should mention the roles that `snf-deploy` refers
|
|
42 |
to. The roles are described :ref:`here <physical-node-roles`. Note that multiple
|
|
43 |
roles can co-exist in the same node (virtual or physical).
|
|
41 | 44 |
|
42 |
All these define the synnefo components. In order to have instances up-and-running, |
|
43 |
at least a backend must be associated with Cyclades. Backends are |
|
44 |
Ganeti clusters each with multiple nodes. Please note that these nodes may be the |
|
45 |
same as the ones used before. To this end we refer to: |
|
45 |
Currently, `snf-deploy` recognizes the following combined roles: |
|
46 | 46 |
|
47 |
- ganeti nodes: All available nodes for a specific backend |
|
48 |
- master: The master node in each ganeti backend |
|
47 |
* **astakos** = **WEBSERVER** + **ASTAKOS** |
|
48 |
* **pithos** = **WEBSERVER** + **PITHOS** |
|
49 |
* **cyclades** = **WEBSERVER** + **CYCLADES** |
|
50 |
* **db** = **ASTAKOS_DB** + **PITHOS_DB** + **CYCLADES_DB** |
|
49 | 51 |
|
50 |
Configuration |
|
51 |
============= |
|
52 |
the following independent roles: |
|
52 | 53 |
|
53 |
The configuration files to edit are under /etc/snf-deploy: |
|
54 |
* **cms** = **CMS** |
|
55 |
* **mq** = **MQ** |
|
56 |
* **ns** = **NS** |
|
57 |
* **client** = **CLIENT** |
|
58 |
* **router**: The node to do any routing and NAT needed |
|
59 |
|
|
60 |
The above define the roles relative to the Synnefo components. However, in |
|
61 |
order to have instances up-and-running, at least one backend must be associated |
|
62 |
with Cyclades. Backends are Ganeti clusters each with multiple |
|
63 |
**GANETI_NODE**s. Please note that these nodes may be the same as the ones used |
|
64 |
for the previous roles. To this end, `snf-deploy` also recognizes: |
|
65 |
|
|
66 |
* **ganeti_backend** = **G_BACKEND** = All available nodes of a specific backend |
|
67 |
* **ganeti_master** = **GANETI_MASTER** |
|
68 |
|
|
69 |
Finally, it recognizes the group role: |
|
70 |
|
|
71 |
* **existing_nodes** = **SYNNEFO** + (N x **G_BACKEND**) |
|
72 |
|
|
73 |
In the future, `snf-deploy` will recognize all the independent roles of a scale |
|
74 |
out deployment as stated in the :ref:`scale up section <scale-up>`. When that's |
|
75 |
done it won't need to introduce its own roles (stated here with lowercase) but |
|
76 |
rather use the scale out ones (stated with uppercase on the admin guide). |
|
77 |
|
|
78 |
|
|
79 |
Configuration (a) |
|
80 |
================= |
|
81 |
|
|
82 |
All configuration of `snf-deploy` happens by editting the following files under |
|
83 |
``/etc/snf-deploy``: |
|
54 | 84 |
|
55 | 85 |
nodes.conf |
56 | 86 |
---------- |
... | ... | |
96 | 126 |
necessary local directories (packages, templates, images, etc..) |
97 | 127 |
|
98 | 128 |
|
99 |
Virtual Cluster Creation |
|
100 |
======================== |
|
129 |
Virtual Cluster Creation (b)
|
|
130 |
============================
|
|
101 | 131 |
|
102 | 132 |
Supposing you want to install Synnefo from scratch the best way is to launch |
103 | 133 |
a couple of VM's locally. To this end you need a debian base image. An 8GB one |
... | ... | |
142 | 172 |
primary interface should get the given address. |
143 | 173 |
|
144 | 174 |
|
175 |
Synnefo Installation (c) |
|
176 |
======================== |
|
177 |
|
|
145 | 178 |
Setting up the Synnefo DNS |
146 |
==========================
|
|
179 |
--------------------------
|
|
147 | 180 |
|
148 | 181 |
At this point you should have an up-and-running cluster (either virtual or not) |
149 | 182 |
with valid hostnames and IPs. Synnefo expects fqdn and therefore a nameserver |
... | ... | |
161 | 194 |
|
162 | 195 |
snf-deploy dns |
163 | 196 |
|
164 |
|
|
165 |
|
|
166 |
Synnefo Installation |
|
167 |
==================== |
|
168 |
|
|
169 | 197 |
At this point you should have a cluster with fqdns and reverse DNS lookups ready |
170 | 198 |
for synnefo deployment. To sum up we mention all the node requirements for a |
171 | 199 |
successful synnefo installation: |
172 | 200 |
|
173 |
|
|
174 | 201 |
Node Requirements |
175 | 202 |
----------------- |
176 | 203 |
|
... | ... | |
216 | 243 |
or whatever you gave in setup.conf and get a small taste of your private cloud setup. |
217 | 244 |
|
218 | 245 |
Adding a Ganeti Backend |
219 |
=======================
|
|
246 |
-----------------------
|
|
220 | 247 |
|
221 | 248 |
Assuming that all have worked out fine as expected, you must have astakos, |
222 | 249 |
pithos, cms, db and mq up and running. Cyclades work too but partially. No |
... | ... | |
251 | 278 |
and try to create a VM. |
252 | 279 |
|
253 | 280 |
|
254 |
snf-deploy as DevTool |
|
255 |
===================== |
|
281 |
snf-deploy as a DevTool
|
|
282 |
=======================
|
|
256 | 283 |
|
257 | 284 |
For developers who want to contribute a single node setup is highly recommended. |
258 | 285 |
snf-deploy tools also supports updating packages that are localy generated. This |
Also available in: Unified diff