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. |