Statistics
| Branch: | Tag: | Revision:

root / docs / scale / i-astakos.rst @ 58350a50

History | View | Annotate | Download (5.9 kB)

1 6928da52 Dimitris Aragiorgis
.. _i-astakos:
2 6928da52 Dimitris Aragiorgis
3 6928da52 Dimitris Aragiorgis
Synnefo
4 6928da52 Dimitris Aragiorgis
-------
5 6928da52 Dimitris Aragiorgis
6 6928da52 Dimitris Aragiorgis
:ref:`synnefo <i-synnefo>` ||
7 6928da52 Dimitris Aragiorgis
:ref:`ns <i-ns>` ||
8 6928da52 Dimitris Aragiorgis
:ref:`apt <i-apt>` ||
9 6928da52 Dimitris Aragiorgis
:ref:`mq <i-mq>` ||
10 6928da52 Dimitris Aragiorgis
:ref:`db <i-db>` ||
11 6928da52 Dimitris Aragiorgis
:ref:`gunicorn <i-gunicorn>` ||
12 6928da52 Dimitris Aragiorgis
:ref:`apache <i-apache>` ||
13 6928da52 Dimitris Aragiorgis
:ref:`webproject <i-webproject>` ||
14 6928da52 Dimitris Aragiorgis
astakos ||
15 6928da52 Dimitris Aragiorgis
:ref:`cms <i-cms>` ||
16 6928da52 Dimitris Aragiorgis
:ref:`pithos <i-pithos>` ||
17 6928da52 Dimitris Aragiorgis
:ref:`cyclades <i-cyclades>` ||
18 6928da52 Dimitris Aragiorgis
:ref:`kamaki <i-kamaki>` ||
19 6928da52 Dimitris Aragiorgis
:ref:`backends <i-backends>`
20 6928da52 Dimitris Aragiorgis
21 6928da52 Dimitris Aragiorgis
Astakos Setup
22 6928da52 Dimitris Aragiorgis
+++++++++++++
23 6928da52 Dimitris Aragiorgis
24 6928da52 Dimitris Aragiorgis
The following apply to ``astakos`` node. In the following sections
25 6928da52 Dimitris Aragiorgis
we will refer to its IP as ``accounts.example.com`` . Make sure
26 6928da52 Dimitris Aragiorgis
you have db, mq, apache and gunicorn setup already.
27 6928da52 Dimitris Aragiorgis
28 76db6d5e Dimitris Aragiorgis
IMPORTANT: Currently if astakos coexists with cyclades/pithos roles, your setup is prone to csrf attacks.
29 76db6d5e Dimitris Aragiorgis
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
30 6928da52 Dimitris Aragiorgis
31 6928da52 Dimitris Aragiorgis
First install the corresponding package:
32 6928da52 Dimitris Aragiorgis
33 6928da52 Dimitris Aragiorgis
.. code-block:: console
34 6928da52 Dimitris Aragiorgis
35 6928da52 Dimitris Aragiorgis
   # apt-get install snf-astakos-app
36 6928da52 Dimitris Aragiorgis
37 6928da52 Dimitris Aragiorgis
In `/etc/synnefo/astakos.conf` add:
38 6928da52 Dimitris Aragiorgis
39 6928da52 Dimitris Aragiorgis
.. code-block:: console
40 6928da52 Dimitris Aragiorgis
41 6928da52 Dimitris Aragiorgis
    CLOUDBAR_LOCATION = 'https://accounts.example.com/static/im/cloudbar/'
42 58350a50 Sofia Papagiannaki
    CLOUDBAR_SERVICES_URL = 'https://accounts.example.com/im/get_services'
43 0be81d73 Sofia Papagiannaki
    CLOUDBAR_MENU_URL = 'https://accounts.example.com/im/get_menu'
44 6928da52 Dimitris Aragiorgis
45 6928da52 Dimitris Aragiorgis
    ASTAKOS_IM_MODULES = ['local']
46 6928da52 Dimitris Aragiorgis
47 6928da52 Dimitris Aragiorgis
    ASTAKOS_BASEURL = 'https://accounts.example.com'
48 6928da52 Dimitris Aragiorgis
49 6928da52 Dimitris Aragiorgis
    ASTAKOS_SITENAME = '~okeanos @ example.com'
50 6928da52 Dimitris Aragiorgis
    ASTAKOS_RECAPTCHA_PUBLIC_KEY = '6LeFidMSAAAAAM7Px7a96YQzsBcKYeXCI_sFz0Gk'
51 6928da52 Dimitris Aragiorgis
    ASTAKOS_RECAPTCHA_PRIVATE_KEY = '6LeFidMSAAAAAFv5U5NSayJJJhr0roludAidPd2M'
52 6928da52 Dimitris Aragiorgis
53 6928da52 Dimitris Aragiorgis
    ASTAKOS_RECAPTCHA_USE_SSL = True
54 6928da52 Dimitris Aragiorgis
    ASTAKOS_RECAPTCHA_ENABLED = True
55 6928da52 Dimitris Aragiorgis
56 6928da52 Dimitris Aragiorgis
    ASTAKOS_COOKIE_DOMAIN = 'example.com'
57 6928da52 Dimitris Aragiorgis
58 84809111 Dimitris Aragiorgis
    ASTAKOS_LOGIN_MESSAGES = []
59 84809111 Dimitris Aragiorgis
    ASTAKOS_SIGNUP_MESSAGES = []
60 84809111 Dimitris Aragiorgis
    ASTAKOS_PROFILE_MESSAGES = []
61 84809111 Dimitris Aragiorgis
    ASTAKOS_GLOBAL_MESSAGES = []
62 84809111 Dimitris Aragiorgis
63 84809111 Dimitris Aragiorgis
    ASTAKOS_PROFILE_EXTRA_LINKS = []
64 84809111 Dimitris Aragiorgis
    ASTAKOS_INVITATION_EMAIL_SUBJECT = 'Invitation to %s' % ASTAKOS_SITENAME
65 84809111 Dimitris Aragiorgis
    ASTAKOS_GREETING_EMAIL_SUBJECT = 'Welcome to %s' % ASTAKOS_SITENAME
66 84809111 Dimitris Aragiorgis
    ASTAKOS_FEEDBACK_EMAIL_SUBJECT = 'Feedback from %s' % ASTAKOS_SITENAME
67 84809111 Dimitris Aragiorgis
    ASTAKOS_VERIFICATION_EMAIL_SUBJECT = '%s account activation is needed' % ASTAKOS_SITENAME
68 84809111 Dimitris Aragiorgis
    ASTAKOS_ADMIN_NOTIFICATION_EMAIL_SUBJECT = '%s account created (%%(user)s)' % ASTAKOS_SITENAME
69 84809111 Dimitris Aragiorgis
    ASTAKOS_HELPDESK_NOTIFICATION_EMAIL_SUBJECT = '%s account activated (%%(user)s)' % ASTAKOS_SITENAME
70 84809111 Dimitris Aragiorgis
    ASTAKOS_EMAIL_CHANGE_EMAIL_SUBJECT = 'Email change on %s' % ASTAKOS_SITENAME
71 84809111 Dimitris Aragiorgis
    ASTAKOS_PASSWORD_RESET_EMAIL_SUBJECT = 'Password reset on %s' % ASTAKOS_SITENAME
72 84809111 Dimitris Aragiorgis
73 84809111 Dimitris Aragiorgis
    ASTAKOS_QUOTAHOLDER_TOKEN = '1234'
74 84809111 Dimitris Aragiorgis
    ASTAKOS_QUOTAHOLDER_URL = 'https://qh.example.com/quotaholder/v'
75 84809111 Dimitris Aragiorgis
76 84809111 Dimitris Aragiorgis
    EMAIL_BACKEND = 'django.core.mail.backends.dummy.EmailBackend'
77 84809111 Dimitris Aragiorgis
    ASTAKOS_SERVICES = {
78 84809111 Dimitris Aragiorgis
        'cyclades': {
79 84809111 Dimitris Aragiorgis
            'url': 'https://cyclades.example.com/ui/',
80 84809111 Dimitris Aragiorgis
            'resources': [{
81 84809111 Dimitris Aragiorgis
                'name':'disk',
82 84809111 Dimitris Aragiorgis
                'group':'compute',
83 84809111 Dimitris Aragiorgis
                'uplimit':30*1024*1024*1024,
84 84809111 Dimitris Aragiorgis
                'unit':'bytes',
85 84809111 Dimitris Aragiorgis
                'desc': 'Virtual machine disk size'
86 84809111 Dimitris Aragiorgis
                },{
87 84809111 Dimitris Aragiorgis
                'name':'cpu',
88 84809111 Dimitris Aragiorgis
                'group':'compute',
89 84809111 Dimitris Aragiorgis
                'uplimit':6,
90 84809111 Dimitris Aragiorgis
                'desc': 'Number of virtual machine processors'
91 84809111 Dimitris Aragiorgis
                },{
92 84809111 Dimitris Aragiorgis
                'name':'ram',
93 84809111 Dimitris Aragiorgis
                'group':'compute',
94 84809111 Dimitris Aragiorgis
                'uplimit':6*1024*1024*1024,
95 84809111 Dimitris Aragiorgis
                'unit':'bytes',
96 84809111 Dimitris Aragiorgis
                'desc': 'Virtual machines'
97 84809111 Dimitris Aragiorgis
                },{
98 84809111 Dimitris Aragiorgis
                'name':'vm',
99 84809111 Dimitris Aragiorgis
                'group':'compute',
100 84809111 Dimitris Aragiorgis
                'uplimit':2,
101 84809111 Dimitris Aragiorgis
                'desc': 'Number of virtual machines'
102 84809111 Dimitris Aragiorgis
                },{
103 84809111 Dimitris Aragiorgis
                'name':'network.private',
104 84809111 Dimitris Aragiorgis
                'group':'network',
105 84809111 Dimitris Aragiorgis
                'uplimit':1,
106 84809111 Dimitris Aragiorgis
                'desc': 'Private networks'
107 84809111 Dimitris Aragiorgis
                }
108 84809111 Dimitris Aragiorgis
            ]
109 84809111 Dimitris Aragiorgis
        },
110 84809111 Dimitris Aragiorgis
        'pithos+': {
111 84809111 Dimitris Aragiorgis
            'url': 'https://pithos.example.com/ui/',
112 84809111 Dimitris Aragiorgis
            'resources':[{
113 84809111 Dimitris Aragiorgis
                'name':'diskspace',
114 84809111 Dimitris Aragiorgis
                'group':'storage',
115 84809111 Dimitris Aragiorgis
                'uplimit':5 * 1024 * 1024 * 1024,
116 84809111 Dimitris Aragiorgis
                'unit':'bytes',
117 84809111 Dimitris Aragiorgis
                'desc': 'Pithos account diskspace'
118 84809111 Dimitris Aragiorgis
                }]
119 84809111 Dimitris Aragiorgis
        }
120 84809111 Dimitris Aragiorgis
    }
121 84809111 Dimitris Aragiorgis
122 84809111 Dimitris Aragiorgis
123 76db6d5e Dimitris Aragiorgis
If ``astakos`` is on the same node with ``cyclades`` or ``pithos``, add the following
124 76db6d5e Dimitris Aragiorgis
line in `/etc/synnefo/astakos.conf` but please note that your setup will be prone to
125 76db6d5e Dimitris Aragiorgis
csrf attacks:
126 76db6d5e Dimitris Aragiorgis
127 76db6d5e Dimitris Aragiorgis
.. code-block:: console
128 76db6d5e Dimitris Aragiorgis
129 76db6d5e Dimitris Aragiorgis
   MIDDLEWARE_CLASSES.remove('django.middleware.csrf.CsrfViewMiddleware')
130 6928da52 Dimitris Aragiorgis
131 6928da52 Dimitris Aragiorgis
Then initialize the Database and register services with:
132 6928da52 Dimitris Aragiorgis
133 6928da52 Dimitris Aragiorgis
.. code-block:: console
134 6928da52 Dimitris Aragiorgis
135 6928da52 Dimitris Aragiorgis
   # /etc/init.d/gunicorn restart
136 6928da52 Dimitris Aragiorgis
   # snf-manage syncdb --noinput
137 84809111 Dimitris Aragiorgis
   # snf-manage migrate im --delete-ghost-migrations
138 6928da52 Dimitris Aragiorgis
   # snf-manage loaddata groups
139 84809111 Dimitris Aragiorgis
   # snf-manage service-add "home" https://cms.example.com/ home-icon.png
140 6928da52 Dimitris Aragiorgis
   # snf-manage service-add "cyclades" https://cyclades.example.com/ui/
141 6928da52 Dimitris Aragiorgis
   # snf-manage service-add "pithos+" https://pithos.example.com/ui/
142 84809111 Dimitris Aragiorgis
   # snf-manage astakos-init --load-service-resources
143 075b91de Giorgos Korfiatis
   # snf-manage quota --sync
144 6928da52 Dimitris Aragiorgis
   # /etc/init.d/gunicorn restart
145 6928da52 Dimitris Aragiorgis
   # /etc/init.d/apache2 restart
146 6928da52 Dimitris Aragiorgis
147 6928da52 Dimitris Aragiorgis
Please note that in case pithos and cyclades nodes are the same node, the pithos url
148 6928da52 Dimitris Aragiorgis
should be ``https://pithos.example.com/pithos/ui/`` .
149 6928da52 Dimitris Aragiorgis
150 6928da52 Dimitris Aragiorgis
Let's create our first user. Go at ``http://accounts.example.com/im/`` and
151 6928da52 Dimitris Aragiorgis
click the "CREATE ACCOUNT" button and fill all your data at the sign up form.
152 6928da52 Dimitris Aragiorgis
Then click "SUBMIT". You should now see a green box on the top, which informs
153 6928da52 Dimitris Aragiorgis
you that you made a successful request and the request has been sent to the
154 6928da52 Dimitris Aragiorgis
administrators. So far so good, let's assume that you created the user with
155 6928da52 Dimitris Aragiorgis
username ``user@example.com``.
156 6928da52 Dimitris Aragiorgis
157 6928da52 Dimitris Aragiorgis
Now we need to activate that user. Return to a command prompt aand run:
158 6928da52 Dimitris Aragiorgis
159 6928da52 Dimitris Aragiorgis
.. code-block:: console
160 6928da52 Dimitris Aragiorgis
161 6928da52 Dimitris Aragiorgis
   # snf-manage user-list
162 6928da52 Dimitris Aragiorgis
   # snf-manage user-modify --set-active 1
163 6928da52 Dimitris Aragiorgis
164 6928da52 Dimitris Aragiorgis
where 1 should be the id of the user you previously created.
165 6928da52 Dimitris Aragiorgis
166 6928da52 Dimitris Aragiorgis
All this can be done with one command:
167 6928da52 Dimitris Aragiorgis
168 6928da52 Dimitris Aragiorgis
.. code-block:: console
169 6928da52 Dimitris Aragiorgis
170 6928da52 Dimitris Aragiorgis
   # snf-manage user-add --password=12345 --active user@example.com Name LastName
171 81b92b0f Dimitris Aragiorgis
172 81b92b0f Dimitris Aragiorgis
173 81b92b0f Dimitris Aragiorgis
Test your Setup:
174 81b92b0f Dimitris Aragiorgis
++++++++++++++++
175 84809111 Dimitris Aragiorgis
176 84809111 Dimitris Aragiorgis
Visit ``http://accounts.example.com/im/`` and login with your credentials.