Statistics
| Branch: | Tag: | Revision:

root / README.admin @ c130b56e

History | View | Annotate | Download (3.3 kB)

1 03353341 Vangelis Koukis
README.admin - Administration notes
2 03353341 Vangelis Koukis
3 03353341 Vangelis Koukis
This file contains notes related to administration of a working Synnefo
4 03353341 Vangelis Koukis
deployment. This document should be read *after* README.deploy, which contains
5 03353341 Vangelis Koukis
step-by-step Synnefo deployment instructions.
6 03353341 Vangelis Koukis
7 03353341 Vangelis Koukis
8 96b635d9 Vangelis Koukis
Database
9 96b635d9 Vangelis Koukis
========
10 96b635d9 Vangelis Koukis
11 96b635d9 Vangelis Koukis
MySQL: manage.py dbshell seems to ignore the setting of 'init_command'
12 96b635d9 Vangelis Koukis
       in settings.DATABASES
13 96b635d9 Vangelis Koukis
14 3b40590c Vangelis Koukis
15 03353341 Vangelis Koukis
Reconciliation mechanism
16 03353341 Vangelis Koukis
========================
17 03353341 Vangelis Koukis
18 03353341 Vangelis Koukis
On certain occasions, such as a Ganeti or RabbitMQ failure, the VM state in the
19 03353341 Vangelis Koukis
system's database may differ from that in the Ganeti installation. The
20 03353341 Vangelis Koukis
reconciliation process is designed to bring the system's database in sync with
21 3b40590c Vangelis Koukis
what Ganeti knows about each VM, and is able to detect the following three
22 3b40590c Vangelis Koukis
conditions:
23 03353341 Vangelis Koukis
24 3b40590c Vangelis Koukis
 * Stale DB servers without corresponding Ganeti instances
25 3b40590c Vangelis Koukis
 * Orphan Ganeti instances, without corresponding DB entries
26 3b40590c Vangelis Koukis
 * Out-of-sync operstate for DB entries wrt to Ganeti instances
27 03353341 Vangelis Koukis
28 3b40590c Vangelis Koukis
The reconciliation mechanism runs as a management command, e.g., as follows:
29 3b40590c Vangelis Koukis
[PYTHONPATH needs to contain the parent of the synnefo Django project
30 3b40590c Vangelis Koukis
directory]:
31 03353341 Vangelis Koukis
32 3b40590c Vangelis Koukis
/srv/synnefo$ export PYTHONPATH=/srv:$PYTHONPATH
33 3b40590c Vangelis Koukis
vkoukis@dev67:~/synnefo [reconc]$ ./manage.py reconcile --detect-all -v 2
34 03353341 Vangelis Koukis
35 3b40590c Vangelis Koukis
Please see ./manage.py reconcile --help for all the details.
36 03353341 Vangelis Koukis
37 3b40590c Vangelis Koukis
The administrator can also trigger reconciliation of operating state manually,
38 3b40590c Vangelis Koukis
by issuing a Ganeti OP_INSTANCE_QUERY_DATA command on a Synnefo VM, using
39 3b40590c Vangelis Koukis
gnt-instance info.
40 03353341 Vangelis Koukis
41 03353341 Vangelis Koukis
42 3a4e3bac Georgios Gousios
Logging
43 3a4e3bac Georgios Gousios
=======
44 3a4e3bac Georgios Gousios
45 3a4e3bac Georgios Gousios
Logging in Synnefo is using Python's logging module. The module is configured
46 9e98ba3c Giorgos Verigakis
using dictionary configuration, whose format is described here:
47 9e98ba3c Giorgos Verigakis
48 9e98ba3c Giorgos Verigakis
http://docs.python.org/release/2.7.1/library/logging.html#logging-config-dictschema
49 9e98ba3c Giorgos Verigakis
50 9e98ba3c Giorgos Verigakis
Note that this is a feature of Python 2.7 that we have backported for use in
51 9e98ba3c Giorgos Verigakis
Python 2.6.
52 9e98ba3c Giorgos Verigakis
53 9e98ba3c Giorgos Verigakis
The logging configuration dictionary is defined in settings.d/00-logging.conf
54 9e98ba3c Giorgos Verigakis
and is broken in 4 separate dictionaries:
55 9e98ba3c Giorgos Verigakis
56 9e98ba3c Giorgos Verigakis
  * LOGGING is the logging configuration used by the web app. By default all
57 9e98ba3c Giorgos Verigakis
    loggers fall back to the main 'synnefo' logger. The subloggers can be
58 9e98ba3c Giorgos Verigakis
    changed accordingly for finer logging control. e.g. To disable debug
59 9e98ba3c Giorgos Verigakis
    messages from the API set the level of 'synnefo.api' to 'INFO'.
60 9e98ba3c Giorgos Verigakis
  
61 9e98ba3c Giorgos Verigakis
  * DISPATCHER_LOGGING is the logging configuration of the logic/dispatcher.py
62 9e98ba3c Giorgos Verigakis
    command line tool.
63 9e98ba3c Giorgos Verigakis
  
64 9e98ba3c Giorgos Verigakis
  * SNFADMIN_LOGGING is the logging configuration of the snf-admin tool.
65 9e98ba3c Giorgos Verigakis
    Consider using matching configuration for snf-admin and the synnefo.admin
66 9e98ba3c Giorgos Verigakis
    logger of the web app.
67 9999b451 Giorgos Verigakis
68 a65ee5fc Vangelis Koukis
Please note the following:
69 a65ee5fc Vangelis Koukis
  * As of Synnefo v0.7, by default the Django webapp logs to syslog, the
70 a65ee5fc Vangelis Koukis
    dispatcher logs to /var/log/synnefo/dispatcher.log and the console,
71 a65ee5fc Vangelis Koukis
    snf-admin logs to the console.
72 a65ee5fc Vangelis Koukis
  * Different handlers can be set to different logging levels:
73 a65ee5fc Vangelis Koukis
    for example, everything may appear to the console, but only INFO and higher
74 a65ee5fc Vangelis Koukis
    may actually be stored in a longer-term logfile.
75 a65ee5fc Vangelis Koukis
76 9999b451 Giorgos Verigakis
77 9999b451 Giorgos Verigakis
Admin Tools
78 9999b451 Giorgos Verigakis
===========
79 9999b451 Giorgos Verigakis
80 9999b451 Giorgos Verigakis
snf-admin is a tool used to perform various administrative tasks. It needs to
81 9999b451 Giorgos Verigakis
be able to access the django database, so the following should be able to import
82 9999b451 Giorgos Verigakis
the Django settings.
83 9999b451 Giorgos Verigakis
84 9999b451 Giorgos Verigakis
Additionally, administrative tasks can be performed via the admin web interface
85 9999b451 Giorgos Verigakis
located in /admin. Only users of type ADMIN can access the admin pages. To change
86 9999b451 Giorgos Verigakis
the type of a user to ADMIN, snf-admin can be used:
87 9999b451 Giorgos Verigakis
88 9999b451 Giorgos Verigakis
   snf-admin user modify 42 --type ADMIN