Statistics
| Branch: | Tag: | Revision:

root / docs / scale / i-cyclades.rst @ a86a4433

History | View | Annotate | Download (5.6 kB)

1 6928da52 Dimitris Aragiorgis
.. _i-cyclades:
2 6928da52 Dimitris Aragiorgis
3 6928da52 Dimitris Aragiorgis
Synnefo
4 6928da52 Dimitris Aragiorgis
-------
5 6928da52 Dimitris Aragiorgis
6 6928da52 Dimitris Aragiorgis
7 6928da52 Dimitris Aragiorgis
:ref:`synnefo <i-synnefo>` ||
8 6928da52 Dimitris Aragiorgis
:ref:`ns <i-ns>` ||
9 6928da52 Dimitris Aragiorgis
:ref:`apt <i-apt>` ||
10 6928da52 Dimitris Aragiorgis
:ref:`mq <i-mq>` ||
11 6928da52 Dimitris Aragiorgis
:ref:`db <i-db>` ||
12 6928da52 Dimitris Aragiorgis
:ref:`gunicorn <i-gunicorn>` ||
13 6928da52 Dimitris Aragiorgis
:ref:`apache <i-apache>` ||
14 6928da52 Dimitris Aragiorgis
:ref:`webproject <i-webproject>` ||
15 6928da52 Dimitris Aragiorgis
:ref:`astakos <i-astakos>` ||
16 6928da52 Dimitris Aragiorgis
:ref:`cms <i-cms>` ||
17 6928da52 Dimitris Aragiorgis
:ref:`pithos <i-pithos>` ||
18 6928da52 Dimitris Aragiorgis
cyclades ||
19 6928da52 Dimitris Aragiorgis
:ref:`kamaki <i-kamaki>` ||
20 6928da52 Dimitris Aragiorgis
:ref:`backends <i-backends>`
21 6928da52 Dimitris Aragiorgis
22 6928da52 Dimitris Aragiorgis
Cyclades Setup
23 6928da52 Dimitris Aragiorgis
++++++++++++++
24 6928da52 Dimitris Aragiorgis
25 6928da52 Dimitris Aragiorgis
The following apply to ``cyclades`` node. In the rest of the sections
26 6928da52 Dimitris Aragiorgis
we will refer to its IP with FQDN ``cyclades.example.com``.Please make sure you have
27 6928da52 Dimitris Aragiorgis
db, mq, gunicorn, apache, webproject, pithos and astakos already setup.
28 6928da52 Dimitris Aragiorgis
29 76db6d5e Dimitris Aragiorgis
Install the corresponding package. Please note that memcache is needed for
30 76db6d5e Dimitris Aragiorgis
versions >= 0.13 :
31 6928da52 Dimitris Aragiorgis
32 6928da52 Dimitris Aragiorgis
.. code-block:: console
33 6928da52 Dimitris Aragiorgis
34 76db6d5e Dimitris Aragiorgis
    # apt-get install memcached
35 76db6d5e Dimitris Aragiorgis
    # apt-get install python-memcache
36 84809111 Dimitris Aragiorgis
    # apt-get install kamaki
37 84809111 Dimitris Aragiorgis
    # apt-get install snf-pithos-backend
38 6928da52 Dimitris Aragiorgis
    # apt-get install snf-cyclades-app
39 6928da52 Dimitris Aragiorgis
40 6928da52 Dimitris Aragiorgis
In `/etc/synnefo/cyclades.conf` add:
41 6928da52 Dimitris Aragiorgis
42 6928da52 Dimitris Aragiorgis
.. code-block:: console
43 6928da52 Dimitris Aragiorgis
44 6928da52 Dimitris Aragiorgis
    MAX_CIDR_BLOCK = 21
45 6928da52 Dimitris Aragiorgis
    PUBLIC_USE_POOL = True
46 6928da52 Dimitris Aragiorgis
47 84809111 Dimitris Aragiorgis
    CPU_BAR_GRAPH_URL = 'https://cyclades.example.com/stats/%s/cpu-bar.png'
48 84809111 Dimitris Aragiorgis
    CPU_TIMESERIES_GRAPH_URL = 'https://cyclades.example.com/stats/%s/cpu-ts.png'
49 84809111 Dimitris Aragiorgis
    NET_BAR_GRAPH_URL = 'https://cyclades.example.com/stats/%s/net-bar.png'
50 84809111 Dimitris Aragiorgis
    NET_TIMESERIES_GRAPH_URL = 'https://cyclades.example.com/stats/%s/net-ts.png'
51 84809111 Dimitris Aragiorgis
52 e3ff6830 Georgios D. Tsoukalas
    ASTAKOS_BASE_URL = 'https://accounts.example.synnefo.org/'
53 6928da52 Dimitris Aragiorgis
54 6928da52 Dimitris Aragiorgis
    SECRET_ENCRYPTION_KEY= "oEs0pt7Di1mkxA0P6FiK"
55 6928da52 Dimitris Aragiorgis
56 6928da52 Dimitris Aragiorgis
    GANETI_CREATEINSTANCE_KWARGS = {
57 6928da52 Dimitris Aragiorgis
        'os': 'snf-image+default',
58 25d7843d Dimitris Aragiorgis
        'hvparams': {'serial_console': False},
59 6928da52 Dimitris Aragiorgis
        'wait_for_sync': False}
60 6928da52 Dimitris Aragiorgis
61 6928da52 Dimitris Aragiorgis
    GANETI_USE_HOTPLUG = True
62 6928da52 Dimitris Aragiorgis
    CLOUDBAR_LOCATION = 'https://accounts.example.com/static/im/cloudbar/'
63 fb814235 Kostas Papadimitriou
    CLOUDBAR_SERVICES_URL = 'https://accounts.example.com/ui/get_services'
64 fb814235 Kostas Papadimitriou
    CLOUDBAR_MENU_URL = 'https://accounts.example.com/ui/get_menu'
65 6928da52 Dimitris Aragiorgis
    BACKEND_DB_CONNECTION = 'postgresql://synnefo:example_passw0rd@db.example.com:5432/snf_pithos'
66 6928da52 Dimitris Aragiorgis
    BACKEND_BLOCK_PATH = '/srv/pithos/data/'
67 6928da52 Dimitris Aragiorgis
68 6928da52 Dimitris Aragiorgis
    AMQP_HOSTS = ["amqp://synnefo:example_rabbitmq_passw0rd@mq.example.com:5672"]
69 6928da52 Dimitris Aragiorgis
70 84809111 Dimitris Aragiorgis
    TIMEOUT = 60 * 1000
71 84809111 Dimitris Aragiorgis
    UI_UPDATE_INTERVAL = 2000
72 84809111 Dimitris Aragiorgis
    FEEDBACK_CONTACTS = (
73 84809111 Dimitris Aragiorgis
        ('feedback@example.com', 'feedback@example.com'),
74 84809111 Dimitris Aragiorgis
    )
75 84809111 Dimitris Aragiorgis
    UI_LOGIN_URL = "https://accounts.example.com/im/login"
76 84809111 Dimitris Aragiorgis
    UI_LOGOUT_URL = "https://accounts.example.com/im/logout"
77 84809111 Dimitris Aragiorgis
    UI_FLAVORS_DISK_TEMPLATES_INFO = {
78 84809111 Dimitris Aragiorgis
        'rbd': {'name': 'Rbd',
79 84809111 Dimitris Aragiorgis
               'description': 'Volumes residing inside a RADOS cluster'},
80 84809111 Dimitris Aragiorgis
81 84809111 Dimitris Aragiorgis
        'plain': {'name': 'Local',
82 84809111 Dimitris Aragiorgis
                 'description': 'Fast, not high available local storage (LVM)'},
83 84809111 Dimitris Aragiorgis
84 84809111 Dimitris Aragiorgis
        'drbd': {'name': 'Standard',
85 84809111 Dimitris Aragiorgis
                 'description': 'High available persistent storage (DRBD)'},
86 84809111 Dimitris Aragiorgis
87 84809111 Dimitris Aragiorgis
        'ext_vlmc': {'name': 'Tmp',
88 84809111 Dimitris Aragiorgis
                    'description': 'Volatile storage'},
89 84809111 Dimitris Aragiorgis
    }
90 84809111 Dimitris Aragiorgis
    UI_SUPPORT_SSH_OS_LIST = ['debian', 'fedora', 'okeanos', 'ubuntu', 'kubuntu',
91 84809111 Dimitris Aragiorgis
                              'centos', 'archlinux', 'gentoo']
92 84809111 Dimitris Aragiorgis
    UI_SYSTEM_IMAGES_OWNERS = {
93 84809111 Dimitris Aragiorgis
        'images@okeanos.io': 'system',
94 84809111 Dimitris Aragiorgis
    }
95 84809111 Dimitris Aragiorgis
96 76db6d5e Dimitris Aragiorgis
    CACHE_BACKEND = 'memcached://127.0.0.1:11211/'
97 76db6d5e Dimitris Aragiorgis
98 18c4414d Giorgos Korfiatis
    CYCLADES_SERVICE_TOKEN = "XXXXXXXXXX"
99 84809111 Dimitris Aragiorgis
100 84809111 Dimitris Aragiorgis
    UI_SYSTEM_IMAGES_OWNERS = {
101 84809111 Dimitris Aragiorgis
        'admin@synnefo.gr': 'system',
102 84809111 Dimitris Aragiorgis
        'images@synnefo.gr': 'system'
103 84809111 Dimitris Aragiorgis
    }
104 84809111 Dimitris Aragiorgis
105 84809111 Dimitris Aragiorgis
XXXXXXXX is the token for cyclades registered service and can be found
106 84809111 Dimitris Aragiorgis
in astakos node running:
107 84809111 Dimitris Aragiorgis
108 84809111 Dimitris Aragiorgis
.. code-block:: console
109 84809111 Dimitris Aragiorgis
110 84809111 Dimitris Aragiorgis
   snf-manage service-list
111 84809111 Dimitris Aragiorgis
112 6928da52 Dimitris Aragiorgis
113 6928da52 Dimitris Aragiorgis
Restart services and initialize database:
114 6928da52 Dimitris Aragiorgis
115 6928da52 Dimitris Aragiorgis
.. code-block:: console
116 6928da52 Dimitris Aragiorgis
117 6928da52 Dimitris Aragiorgis
   # /etc/init.d/gunicorn restart
118 6928da52 Dimitris Aragiorgis
   # /etc/init.d/apache2 restart
119 6928da52 Dimitris Aragiorgis
   # snf-manage syncdb
120 84809111 Dimitris Aragiorgis
   # snf-manage migrate --delete-ghost-migrations
121 6928da52 Dimitris Aragiorgis
   # snf-manage loaddata flavors
122 6928da52 Dimitris Aragiorgis
123 6928da52 Dimitris Aragiorgis
Enable dispatcher:
124 6928da52 Dimitris Aragiorgis
125 6928da52 Dimitris Aragiorgis
.. code-block:: console
126 6928da52 Dimitris Aragiorgis
127 6928da52 Dimitris Aragiorgis
   # sed -i 's/false/true/' /etc/default/snf-dispatcher
128 6928da52 Dimitris Aragiorgis
   # /etc/init.d/snf-dispatcher start
129 6928da52 Dimitris Aragiorgis
130 6928da52 Dimitris Aragiorgis
In order end-user to have access to the VM's console:
131 6928da52 Dimitris Aragiorgis
132 6928da52 Dimitris Aragiorgis
.. code-block:: console
133 6928da52 Dimitris Aragiorgis
134 6928da52 Dimitris Aragiorgis
   # apt-get install snf-vncauthproxy
135 6928da52 Dimitris Aragiorgis
136 6928da52 Dimitris Aragiorgis
Edit `/etc/default/vncauthproxy`:
137 6928da52 Dimitris Aragiorgis
138 6928da52 Dimitris Aragiorgis
.. code-block:: console
139 6928da52 Dimitris Aragiorgis
140 6928da52 Dimitris Aragiorgis
   CHUID="www-data:nogroup"
141 6928da52 Dimitris Aragiorgis
142 6928da52 Dimitris Aragiorgis
143 6928da52 Dimitris Aragiorgis
At this point you should setup a :ref:`backend <i-backends>`. Please refer to the
144 6928da52 Dimitris Aragiorgis
coresponding section.  Here we assume that at least one backend is up and running,
145 6928da52 Dimitris Aragiorgis
so we can add it in Cyclades with:
146 6928da52 Dimitris Aragiorgis
147 6928da52 Dimitris Aragiorgis
.. code-block:: console
148 6928da52 Dimitris Aragiorgis
149 6928da52 Dimitris Aragiorgis
   # snf-manage backend-add --clustername=ganeti.example.com --user=synnefo --pass=example_rapi_passw0rd
150 6928da52 Dimitris Aragiorgis
151 c5e6a4b6 Dimitris Aragiorgis
After 0.13 every backend added stays in drained mode (no VMs can be added).
152 c5e6a4b6 Dimitris Aragiorgis
Therefore get your backend ID (propably 1) and run:
153 c5e6a4b6 Dimitris Aragiorgis
154 c5e6a4b6 Dimitris Aragiorgis
.. code-block:: console
155 c5e6a4b6 Dimitris Aragiorgis
156 c5e6a4b6 Dimitris Aragiorgis
   # snf-manage backend-list
157 c5e6a4b6 Dimitris Aragiorgis
   # snf-manage backend-modify --drained=False 1
158 c5e6a4b6 Dimitris Aragiorgis
159 6928da52 Dimitris Aragiorgis
Further assumptions:
160 6928da52 Dimitris Aragiorgis
161 6928da52 Dimitris Aragiorgis
- Preprovisioned Bridges: ``br0``, ``prv0``, ``prv1..prv20``
162 6928da52 Dimitris Aragiorgis
- Available "public" Subnet: ``10.0.1.0/24``
163 6928da52 Dimitris Aragiorgis
- Available "public" Gateway: ``10.0.1.1``
164 6928da52 Dimitris Aragiorgis
- Connectivity link for public network: ``br0``
165 6928da52 Dimitris Aragiorgis
166 6928da52 Dimitris Aragiorgis
167 6928da52 Dimitris Aragiorgis
Here admin has to define two different resource pools in Synnefo:
168 6928da52 Dimitris Aragiorgis
169 6928da52 Dimitris Aragiorgis
 - MAC prefix Pool
170 6928da52 Dimitris Aragiorgis
 - Bridge Pool
171 6928da52 Dimitris Aragiorgis
172 6928da52 Dimitris Aragiorgis
.. code-block:: console
173 6928da52 Dimitris Aragiorgis
174 6928da52 Dimitris Aragiorgis
   # snf-manage pool-create --type=mac-prefix --base=aa:00:0 --size=65536
175 6928da52 Dimitris Aragiorgis
   # snf-manage pool-create --type=bridge --base=prv --size=20
176 6928da52 Dimitris Aragiorgis
177 6928da52 Dimitris Aragiorgis
Add the synnefo setting in :file:`/etc/synnefo/cyclades.conf`:
178 6928da52 Dimitris Aragiorgis
179 6928da52 Dimitris Aragiorgis
.. code-block:: console
180 6928da52 Dimitris Aragiorgis
181 84809111 Dimitris Aragiorgis
   DEFAULT_MAC_FILTERED_BRIDGE = 'prv0'
182 6928da52 Dimitris Aragiorgis
183 6928da52 Dimitris Aragiorgis
Add public network where the VM's will eventually connect to in order to
184 6928da52 Dimitris Aragiorgis
access Internet:
185 6928da52 Dimitris Aragiorgis
186 6928da52 Dimitris Aragiorgis
.. code-block:: console
187 6928da52 Dimitris Aragiorgis
188 6928da52 Dimitris Aragiorgis
   # snf-manage network-create --subnet=10.0.1.0/24 --gateway=10.0.1.1 --public --dhcp --flavor=CUSTOM --mode=bridged --link=br0 --name=Internet --backend-id=1
189 81b92b0f Dimitris Aragiorgis
190 81b92b0f Dimitris Aragiorgis
191 81b92b0f Dimitris Aragiorgis
Test your Setup:
192 81b92b0f Dimitris Aragiorgis
++++++++++++++++
193 84809111 Dimitris Aragiorgis
194 84809111 Dimitris Aragiorgis
In cyclades node run:
195 84809111 Dimitris Aragiorgis
196 84809111 Dimitris Aragiorgis
.. code-block:: console
197 84809111 Dimitris Aragiorgis
198 84809111 Dimitris Aragiorgis
    snf-manage backend-list
199 84809111 Dimitris Aragiorgis
    snf-manage network-list
200 84809111 Dimitris Aragiorgis
    snf-manage server-list
201 84809111 Dimitris Aragiorgis
202 84809111 Dimitris Aragiorgis
Visit https://cyclades.example.com/ui/ and create a VM or network.