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
|