Statistics
| Branch: | Tag: | Revision:

root / docs / scale / i-cyclades.rst @ 18c4414d

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