Statistics
| Branch: | Tag: | Revision:

root / docs / scale / i-cyclades.rst @ 30096a2e

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