root / docs / upgrade / upgrade-0.15.rst @ 300e9d88
History | View | Annotate | Download (8.5 kB)
1 | 774f683b | Giorgos Korfiatis | Upgrade to Synnefo v0.15 |
---|---|---|---|
2 | 774f683b | Giorgos Korfiatis | ^^^^^^^^^^^^^^^^^^^^^^^^ |
3 | 774f683b | Giorgos Korfiatis | |
4 | 300e9d88 | Christos Stavrakakis | Prerequisites |
5 | 300e9d88 | Christos Stavrakakis | ============== |
6 | 300e9d88 | Christos Stavrakakis | |
7 | 300e9d88 | Christos Stavrakakis | Before upgrading to v0.15 there are two steps that must be performed, relative |
8 | 300e9d88 | Christos Stavrakakis | with Cyclades networking service. |
9 | 300e9d88 | Christos Stavrakakis | |
10 | 300e9d88 | Christos Stavrakakis | Add unique name to the NICs of all Ganeti instances |
11 | 300e9d88 | Christos Stavrakakis | --------------------------------------------------- |
12 | 300e9d88 | Christos Stavrakakis | |
13 | 300e9d88 | Christos Stavrakakis | Since Ganeti 2.8, it is supported to give a name to NICs of Ganeti instances |
14 | 300e9d88 | Christos Stavrakakis | and refer to them with their name, and not only by their index. Synnefo v0.15 |
15 | 300e9d88 | Christos Stavrakakis | assigns a unique name to each NIC and refers to them by their unique name. |
16 | 300e9d88 | Christos Stavrakakis | Before upgrading to v0.15, Synnefo must assign names to all existing NICs. |
17 | 300e9d88 | Christos Stavrakakis | This can easily be performed with a helper script that is shipped with Synnefo |
18 | 300e9d88 | Christos Stavrakakis | v0.14.10: |
19 | 300e9d88 | Christos Stavrakakis | |
20 | 300e9d88 | Christos Stavrakakis | .. code-block:: console |
21 | 300e9d88 | Christos Stavrakakis | |
22 | 300e9d88 | Christos Stavrakakis | cyclades.host$ /usr/lib/synnefo/tools/add_unique_name_to_nics |
23 | 300e9d88 | Christos Stavrakakis | |
24 | 300e9d88 | Christos Stavrakakis | .. note:: If you are not upgrading from v0.14.10, you can find the migration |
25 | 300e9d88 | Christos Stavrakakis | script here XXX. |
26 | 300e9d88 | Christos Stavrakakis | |
27 | 300e9d88 | Christos Stavrakakis | |
28 | 300e9d88 | Christos Stavrakakis | Extend public networks to all Ganeti backends |
29 | 300e9d88 | Christos Stavrakakis | --------------------------------------------- |
30 | 300e9d88 | Christos Stavrakakis | |
31 | 300e9d88 | Christos Stavrakakis | Before v0.15, each public network of Cyclades existed in one of the Ganeti |
32 | 300e9d88 | Christos Stavrakakis | backends. In order to support dynamic addition and removal of public IPv4 |
33 | 300e9d88 | Christos Stavrakakis | address across VMs, each public network must exist in all Ganeti backends. |
34 | 300e9d88 | Christos Stavrakakis | |
35 | 300e9d88 | Christos Stavrakakis | If you are using more than one Ganeti backends, before upgrading to v0.15 you |
36 | 300e9d88 | Christos Stavrakakis | must ensure that the network configuration to all Ganeti backends is identical |
37 | 300e9d88 | Christos Stavrakakis | and appropriate to support all public networks of Cyclades. |
38 | 300e9d88 | Christos Stavrakakis | |
39 | 300e9d88 | Christos Stavrakakis | |
40 | 300e9d88 | Christos Stavrakakis | Upgrade Steps |
41 | 300e9d88 | Christos Stavrakakis | ============= |
42 | 300e9d88 | Christos Stavrakakis | |
43 | 774f683b | Giorgos Korfiatis | The upgrade to v0.15 consists in the following steps: |
44 | 774f683b | Giorgos Korfiatis | |
45 | 774f683b | Giorgos Korfiatis | 1. Bring down services and backup databases. |
46 | 774f683b | Giorgos Korfiatis | |
47 | 774f683b | Giorgos Korfiatis | 2. Upgrade packages, migrate the databases and configure settings. |
48 | 774f683b | Giorgos Korfiatis | |
49 | 762d2797 | Giorgos Korfiatis | 3. Register services and resources. |
50 | eb765213 | Giorgos Korfiatis | |
51 | eb765213 | Giorgos Korfiatis | 4. Bring up all services. |
52 | 774f683b | Giorgos Korfiatis | |
53 | 774f683b | Giorgos Korfiatis | .. warning:: |
54 | 774f683b | Giorgos Korfiatis | |
55 | 774f683b | Giorgos Korfiatis | It is strongly suggested that you keep separate database backups |
56 | 774f683b | Giorgos Korfiatis | for each service after the completion of each step. |
57 | 774f683b | Giorgos Korfiatis | |
58 | 774f683b | Giorgos Korfiatis | 1. Bring web services down, backup databases |
59 | 774f683b | Giorgos Korfiatis | ============================================ |
60 | 774f683b | Giorgos Korfiatis | |
61 | 774f683b | Giorgos Korfiatis | 1. All web services must be brought down so that the database maintains a |
62 | 774f683b | Giorgos Korfiatis | predictable and consistent state during the migration process:: |
63 | 774f683b | Giorgos Korfiatis | |
64 | 774f683b | Giorgos Korfiatis | $ service gunicorn stop |
65 | 774f683b | Giorgos Korfiatis | $ service snf-dispatcher stop |
66 | 774f683b | Giorgos Korfiatis | $ service snf-ganeti-eventd stop |
67 | 774f683b | Giorgos Korfiatis | |
68 | 774f683b | Giorgos Korfiatis | 2. Backup databases for recovery to a pre-migration state. |
69 | 774f683b | Giorgos Korfiatis | |
70 | 774f683b | Giorgos Korfiatis | 3. Keep the database servers running during the migration process. |
71 | 774f683b | Giorgos Korfiatis | |
72 | 774f683b | Giorgos Korfiatis | |
73 | 774f683b | Giorgos Korfiatis | 2. Upgrade Synnefo and configure settings |
74 | 774f683b | Giorgos Korfiatis | ========================================= |
75 | 774f683b | Giorgos Korfiatis | |
76 | 774f683b | Giorgos Korfiatis | 2.1 Install the new versions of packages |
77 | 774f683b | Giorgos Korfiatis | ---------------------------------------- |
78 | 774f683b | Giorgos Korfiatis | |
79 | 774f683b | Giorgos Korfiatis | :: |
80 | 774f683b | Giorgos Korfiatis | |
81 | 774f683b | Giorgos Korfiatis | astakos.host$ apt-get install \ |
82 | 774f683b | Giorgos Korfiatis | python-objpool \ |
83 | 774f683b | Giorgos Korfiatis | snf-common \ |
84 | 774f683b | Giorgos Korfiatis | python-astakosclient \ |
85 | 774f683b | Giorgos Korfiatis | snf-django-lib \ |
86 | 774f683b | Giorgos Korfiatis | snf-webproject \ |
87 | 774f683b | Giorgos Korfiatis | snf-branding \ |
88 | 774f683b | Giorgos Korfiatis | snf-astakos-app |
89 | 774f683b | Giorgos Korfiatis | |
90 | 774f683b | Giorgos Korfiatis | cyclades.host$ apt-get install \ |
91 | 774f683b | Giorgos Korfiatis | python-objpool \ |
92 | 774f683b | Giorgos Korfiatis | snf-common \ |
93 | 774f683b | Giorgos Korfiatis | python-astakosclient \ |
94 | 774f683b | Giorgos Korfiatis | snf-django-lib \ |
95 | 774f683b | Giorgos Korfiatis | snf-webproject \ |
96 | 774f683b | Giorgos Korfiatis | snf-branding \ |
97 | 774f683b | Giorgos Korfiatis | snf-pithos-backend \ |
98 | 774f683b | Giorgos Korfiatis | snf-cyclades-app |
99 | 774f683b | Giorgos Korfiatis | |
100 | 774f683b | Giorgos Korfiatis | pithos.host$ apt-get install \ |
101 | 774f683b | Giorgos Korfiatis | python-objpool \ |
102 | 774f683b | Giorgos Korfiatis | snf-common \ |
103 | 774f683b | Giorgos Korfiatis | python-astakosclient \ |
104 | 774f683b | Giorgos Korfiatis | snf-django-lib \ |
105 | 774f683b | Giorgos Korfiatis | snf-webproject \ |
106 | 774f683b | Giorgos Korfiatis | snf-branding \ |
107 | 774f683b | Giorgos Korfiatis | snf-pithos-backend \ |
108 | 774f683b | Giorgos Korfiatis | snf-pithos-app \ |
109 | 774f683b | Giorgos Korfiatis | snf-pithos-webclient |
110 | 774f683b | Giorgos Korfiatis | |
111 | 774f683b | Giorgos Korfiatis | ganeti.node$ apt-get install \ |
112 | 774f683b | Giorgos Korfiatis | python-objpool \ |
113 | 774f683b | Giorgos Korfiatis | snf-common \ |
114 | 774f683b | Giorgos Korfiatis | snf-cyclades-gtools \ |
115 | 774f683b | Giorgos Korfiatis | snf-pithos-backend |
116 | 774f683b | Giorgos Korfiatis | |
117 | 774f683b | Giorgos Korfiatis | .. note:: |
118 | 774f683b | Giorgos Korfiatis | |
119 | 774f683b | Giorgos Korfiatis | Make sure `snf-webproject' has the same version with snf-common |
120 | 774f683b | Giorgos Korfiatis | |
121 | 774f683b | Giorgos Korfiatis | .. note:: |
122 | 774f683b | Giorgos Korfiatis | |
123 | 774f683b | Giorgos Korfiatis | Installing the packages will cause services to start. Make sure you bring |
124 | 774f683b | Giorgos Korfiatis | them down again (at least ``gunicorn``, ``snf-dispatcher``) |
125 | 774f683b | Giorgos Korfiatis | |
126 | 774f683b | Giorgos Korfiatis | 2.2 Sync and migrate the database |
127 | 774f683b | Giorgos Korfiatis | --------------------------------- |
128 | 774f683b | Giorgos Korfiatis | |
129 | 774f683b | Giorgos Korfiatis | .. note:: |
130 | 774f683b | Giorgos Korfiatis | |
131 | 774f683b | Giorgos Korfiatis | If you are asked about stale content types during the migration process, |
132 | 774f683b | Giorgos Korfiatis | answer 'no' and let the migration finish. |
133 | 774f683b | Giorgos Korfiatis | |
134 | 774f683b | Giorgos Korfiatis | :: |
135 | 774f683b | Giorgos Korfiatis | |
136 | 774f683b | Giorgos Korfiatis | astakos-host$ snf-manage syncdb |
137 | 774f683b | Giorgos Korfiatis | astakos-host$ snf-manage migrate |
138 | 774f683b | Giorgos Korfiatis | |
139 | 774f683b | Giorgos Korfiatis | cyclades-host$ snf-manage syncdb |
140 | 774f683b | Giorgos Korfiatis | cyclades-host$ snf-manage migrate |
141 | 774f683b | Giorgos Korfiatis | |
142 | 774f683b | Giorgos Korfiatis | pithos-host$ pithos-migrate upgrade head |
143 | 774f683b | Giorgos Korfiatis | |
144 | 06f38d70 | Ilias Tsitsimpis | 2.3 Update configuration files |
145 | 06f38d70 | Ilias Tsitsimpis | ------------------------------ |
146 | 06f38d70 | Ilias Tsitsimpis | |
147 | 06f38d70 | Ilias Tsitsimpis | The ``ASTAKOS_BASE_URL`` setting has been replaced (both in Cyclades and |
148 | 06f38d70 | Ilias Tsitsimpis | Pithos services) with the ``ASTAKOS_AUTH_URL`` setting. |
149 | 06f38d70 | Ilias Tsitsimpis | |
150 | 06f38d70 | Ilias Tsitsimpis | For Cyclades service we have to change the ``20-snf-cyclades-app-api.conf`` |
151 | 06f38d70 | Ilias Tsitsimpis | file, remove the ``ASTAKOS_BASE_URL`` setting and replace it with |
152 | 6ce03057 | Giorgos Korfiatis | ``ASTAKOS_AUTH_URL``. Typically it is sufficient to add ``/identity/v2.0`` |
153 | 06f38d70 | Ilias Tsitsimpis | at the end of base url to get the auth url. For example if base url had the |
154 | 06f38d70 | Ilias Tsitsimpis | value of 'https://accounts.example.synnefo.org/' then the ``ASTAKOS_AUTH_URL`` |
155 | 06f38d70 | Ilias Tsitsimpis | setting will have the value of |
156 | 6ce03057 | Giorgos Korfiatis | 'https://accounts.example.synnefo.org/identity/v2.0'. |
157 | 06f38d70 | Ilias Tsitsimpis | |
158 | 06f38d70 | Ilias Tsitsimpis | For Pithos service we have to change the ``20-snf-pithos-app-settings.conf`` |
159 | 06f38d70 | Ilias Tsitsimpis | file in the same way as above. |
160 | 06f38d70 | Ilias Tsitsimpis | |
161 | 762d2797 | Giorgos Korfiatis | 3. Register services and resources |
162 | 762d2797 | Giorgos Korfiatis | ================================== |
163 | eb765213 | Giorgos Korfiatis | |
164 | 762d2797 | Giorgos Korfiatis | 3.1 Re-register service and resource definitions |
165 | 762d2797 | Giorgos Korfiatis | ------------------------------------------------ |
166 | 762d2797 | Giorgos Korfiatis | |
167 | 762d2797 | Giorgos Korfiatis | You will need to register again all Synnefo components, updating the |
168 | 762d2797 | Giorgos Korfiatis | service and resource definitions. On the astakos node, run:: |
169 | eb765213 | Giorgos Korfiatis | |
170 | eb765213 | Giorgos Korfiatis | astakos-host$ snf-component-register |
171 | eb765213 | Giorgos Korfiatis | |
172 | eb765213 | Giorgos Korfiatis | This will detect that the Synnefo components are already registered and ask |
173 | eb765213 | Giorgos Korfiatis | to re-register. Answer positively. You need to enter the base URL and the UI |
174 | eb765213 | Giorgos Korfiatis | URL for each component, just like during the initial registration. |
175 | eb765213 | Giorgos Korfiatis | |
176 | 762d2797 | Giorgos Korfiatis | .. note:: |
177 | 762d2797 | Giorgos Korfiatis | |
178 | 762d2797 | Giorgos Korfiatis | You can run ``snf-manage component-list -o name,ui_url`` to inspect the |
179 | 762d2797 | Giorgos Korfiatis | current registered UI URL. In the default installation, the base URL can |
180 | 762d2797 | Giorgos Korfiatis | be found by stripping ``/ui`` from the UI URL. |
181 | 762d2797 | Giorgos Korfiatis | |
182 | 762d2797 | Giorgos Korfiatis | The meaning of resources ``cyclades.cpu`` and ``cyclades.ram`` has changed: |
183 | 762d2797 | Giorgos Korfiatis | they now denote the number of CPUs and, respectively, RAM of *active* VMs |
184 | 762d2797 | Giorgos Korfiatis | rather than all VMs. To represent total CPUs and total RAM, as previously, |
185 | 762d2797 | Giorgos Korfiatis | new resources ``cyclades.total_cpu`` and ``cyclades.total_ram`` are |
186 | 762d2797 | Giorgos Korfiatis | introduced. We now also control the usage of floating IPs through resource |
187 | 762d2797 | Giorgos Korfiatis | ``cyclades.floating_ip``. |
188 | 762d2797 | Giorgos Korfiatis | |
189 | 762d2797 | Giorgos Korfiatis | 3.2 Tweek resource settings |
190 | 762d2797 | Giorgos Korfiatis | --------------------------- |
191 | 762d2797 | Giorgos Korfiatis | |
192 | 762d2797 | Giorgos Korfiatis | New resources (``cyclades.total_cpu``, ``cyclades.total_ram``, and |
193 | 762d2797 | Giorgos Korfiatis | ``cyclades.floating_ip``) are registered with infinite default base quota. |
194 | 762d2797 | Giorgos Korfiatis | You will probably need to restrict them, especially |
195 | 762d2797 | Giorgos Korfiatis | ``cyclades.floating_ip``. In order to change the default for all *future* |
196 | 762d2797 | Giorgos Korfiatis | users, for instance restricting floating IPs to 2, run:: |
197 | 762d2797 | Giorgos Korfiatis | |
198 | 762d2797 | Giorgos Korfiatis | astakos-host$ snf-manage resource-modify cyclades.floating_ip --default-quota 2 |
199 | 762d2797 | Giorgos Korfiatis | |
200 | 762d2797 | Giorgos Korfiatis | Note that this command does not affect *existing* users any more. They can |
201 | 762d2797 | Giorgos Korfiatis | still have infinite floating IPs. You can update base quota of existing |
202 | 762d2797 | Giorgos Korfiatis | users in bulk, possibly excluding some users, with:: |
203 | 762d2797 | Giorgos Korfiatis | |
204 | 762d2797 | Giorgos Korfiatis | astakos-host$ snf-manage user-modify --all --base-quota cyclades.floating_ip 2 --exclude uuid1,uuid2 |
205 | 762d2797 | Giorgos Korfiatis | |
206 | 762d2797 | Giorgos Korfiatis | .. note:: |
207 | 762d2797 | Giorgos Korfiatis | |
208 | 762d2797 | Giorgos Korfiatis | You can inspect base quota with ``snf-manage quota-list`` before applying |
209 | 762d2797 | Giorgos Korfiatis | any changes, for example:: |
210 | 762d2797 | Giorgos Korfiatis | |
211 | 762d2797 | Giorgos Korfiatis | # Get users with cyclades.vm base quota that differ from the default value |
212 | 762d2797 | Giorgos Korfiatis | astakos-host$ snf-manage quota-list --with-custom=True --filter-by "resource=cyclades.vm" |
213 | 762d2797 | Giorgos Korfiatis | |
214 | 762d2797 | Giorgos Korfiatis | # Get users with cyclades.vm base quota greater than 3 |
215 | 762d2797 | Giorgos Korfiatis | astakos-host$ snf-manage quota-list --filter-by "resource=cyclades.vm,base_quota>3" |
216 | 762d2797 | Giorgos Korfiatis | |
217 | 762d2797 | Giorgos Korfiatis | It is now possible to control whether a resource is visible for the users |
218 | 762d2797 | Giorgos Korfiatis | through the API or the UI. Note that the system always checks resource |
219 | 762d2797 | Giorgos Korfiatis | quota, regardless of their visibility. By default, ``cyclades.total_cpu``, |
220 | 762d2797 | Giorgos Korfiatis | ``cyclades.total_ram`` and ``astakos.pending_app`` are not visible. You can |
221 | 762d2797 | Giorgos Korfiatis | change this behavior with:: |
222 | 762d2797 | Giorgos Korfiatis | |
223 | 762d2797 | Giorgos Korfiatis | astakos-host$ snf-manage resource-modify <resource> --api-visible=True (or --ui-visible=True) |
224 | 762d2797 | Giorgos Korfiatis | |
225 | 762d2797 | Giorgos Korfiatis | 3.3 Update the Quotaholder |
226 | 762d2797 | Giorgos Korfiatis | -------------------------- |
227 | 762d2797 | Giorgos Korfiatis | |
228 | 762d2797 | Giorgos Korfiatis | To update quota for all new or modified Cyclades resources, bring up Astakos:: |
229 | 762d2797 | Giorgos Korfiatis | |
230 | 762d2797 | Giorgos Korfiatis | astakos-host$ service gunicorn start |
231 | 762d2797 | Giorgos Korfiatis | |
232 | 762d2797 | Giorgos Korfiatis | and run on the Cyclades node:: |
233 | 762d2797 | Giorgos Korfiatis | |
234 | 762d2797 | Giorgos Korfiatis | cyclades-host$ snf-manage reconcile-resources-cyclades --fix --force |
235 | 762d2797 | Giorgos Korfiatis | |
236 | eb765213 | Giorgos Korfiatis | 4. Bring all services up |
237 | 774f683b | Giorgos Korfiatis | ======================== |
238 | 774f683b | Giorgos Korfiatis | |
239 | 774f683b | Giorgos Korfiatis | After the upgrade is finished, we bring up all services: |
240 | 774f683b | Giorgos Korfiatis | |
241 | 774f683b | Giorgos Korfiatis | .. code-block:: console |
242 | 774f683b | Giorgos Korfiatis | |
243 | 774f683b | Giorgos Korfiatis | astakos.host # service gunicorn start |
244 | 774f683b | Giorgos Korfiatis | cyclades.host # service gunicorn start |
245 | 774f683b | Giorgos Korfiatis | pithos.host # service gunicorn start |
246 | 774f683b | Giorgos Korfiatis | |
247 | 774f683b | Giorgos Korfiatis | cyclades.host # service snf-dispatcher start |