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