Ambiente » History » Version 53

Beraldo Leal, 17 Jul 2012 19:02

1 1 Beraldo Leal
h1. Ambiente de Desenvolvimento
2 1 Beraldo Leal
3 1 Beraldo Leal
h2. Lista de Servidores
4 1 Beraldo Leal
5 14 Beraldo Leal
* educloud00 - 200.145.46.166
6 14 Beraldo Leal
* educloud01 - 200.145.46.167
7 14 Beraldo Leal
* educloud02 - 200.145.46.168
8 14 Beraldo Leal
* educloud03 - 200.145.46.169
9 14 Beraldo Leal
* educloud04 - 200.145.46.170
10 14 Beraldo Leal
* educloud05 - 200.145.46.174
11 1 Beraldo Leal
* educloud06 - 200.145.46.175
12 1 Beraldo Leal
* educloud07 - 200.145.46.173
13 15 Beraldo Leal
14 16 Beraldo Leal
h3. Desabilitados
15 16 Beraldo Leal
16 15 Beraldo Leal
* educloud05 - 200.145.46.171
17 15 Beraldo Leal
* educloud06 - 200.145.46.172
18 3 Beraldo Leal
19 53 Beraldo Leal
h1. Introduction
20 53 Beraldo Leal
21 53 Beraldo Leal
This document refers to the installation manual of the main components of 
22 53 Beraldo Leal
OpenStack. The version of each component used can be found in the respective
23 53 Beraldo Leal
sections of the components.
24 53 Beraldo Leal
25 53 Beraldo Leal
This document was produced by the Center for Scientific Computing, UNESP, with
26 53 Beraldo Leal
funding from Intel and UNESP.
27 53 Beraldo Leal
28 53 Beraldo Leal
OpenStack OpenStack is a global collaboration of developers and cloud computing
29 53 Beraldo Leal
technologists producing the ubiquitous open source cloud computing platform for
30 53 Beraldo Leal
public and private clouds. The project aims to deliver solutions for all types
31 53 Beraldo Leal
of clouds by being simple to implement, massively scalable, and feature rich.
32 53 Beraldo Leal
The technology consists of a series of interrelated projects delivering various
33 53 Beraldo Leal
components for a cloud infrastructure solution.
34 53 Beraldo Leal
35 53 Beraldo Leal
The OpenStack project is divided into sub projects that have a specific role in 
36 53 Beraldo Leal
the big picture.
37 53 Beraldo Leal
38 53 Beraldo Leal
The main components are: Compute Cloud (New) Cloud Storage (Swift), Image 
39 53 Beraldo Leal
registration and delivery (Glance), Identity (Keystone) and Dashboard
40 53 Beraldo Leal
(Horizon).
41 53 Beraldo Leal
42 53 Beraldo Leal
Each component is independent of each other and can be installed on separate
43 53 Beraldo Leal
machines, or all in one. In the environment of UNESP, OpenStack was installed in 
44 53 Beraldo Leal
seven machines, described in section "Setting used."
45 53 Beraldo Leal
46 53 Beraldo Leal
This document is based on the installation guide [1] of each component with minor
47 53 Beraldo Leal
adjustments and changes to resolve problems encountered during installation and
48 53 Beraldo Leal
adjustment to the environment in which it was installed.
49 53 Beraldo Leal
50 53 Beraldo Leal
51 37 Beraldo Leal
h1. Installing OpenStack Identity Service - Keystone
52 30 Beraldo Leal
53 43 Beraldo Leal
O Keystone é um projeto que provê serviços de "Identidade", "Token", "Catalog" and "Policy" para os componentes do OpenStack. O pacote *_keystone_* foi instalado no servidor _educloud01_.
54 4 Beraldo Leal
55 4 Beraldo Leal
Este software é feito em python, e por sua vez instala a dependencia *_keystone-python_*, uma biblioteca em python para uso do próprio keystone.
56 4 Beraldo Leal
57 4 Beraldo Leal
Os arquivos de configuração do keystone ficam em /etc/keystone e hoje ele está utilizando como um backend para armazenar os usuários uma base sqlite3, mas ele também permite que seja utilizado uma base LDAP.
58 4 Beraldo Leal
59 1 Beraldo Leal
Além do daemon (servidor) foi instalado o cliente (também feito em python) *_python-keystoneclient_*.
60 5 Beraldo Leal
61 37 Beraldo Leal
h2. Instalando e configurando o keystone
62 5 Beraldo Leal
63 1 Beraldo Leal
<pre>
64 18 Beraldo Leal
# apt-get install keystone
65 18 Beraldo Leal
</pre>
66 18 Beraldo Leal
67 18 Beraldo Leal
Delete the keystone.db file created in the /var/lib/keystone directory.
68 18 Beraldo Leal
69 18 Beraldo Leal
<pre>
70 18 Beraldo Leal
# rm /var/lib/keystone/keystone.db
71 18 Beraldo Leal
</pre>
72 18 Beraldo Leal
73 18 Beraldo Leal
Install mysql:
74 18 Beraldo Leal
75 18 Beraldo Leal
<pre>
76 18 Beraldo Leal
# apt-get install python-mysqldb mysql-server
77 11 Beraldo Leal
</pre>
78 19 Beraldo Leal
79 19 Beraldo Leal
Use sed to edit /etc/mysql/my.cnf to change bind-address from localhost
80 19 Beraldo Leal
(127.0.0.1) to any (0.0.0.0) and restart the mysql service, as root:
81 19 Beraldo Leal
82 19 Beraldo Leal
<pre>
83 19 Beraldo Leal
# sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
84 19 Beraldo Leal
# service mysql restart
85 19 Beraldo Leal
</pre>
86 19 Beraldo Leal
87 19 Beraldo Leal
To configure the MySQL database, create the keystone database.
88 19 Beraldo Leal
89 19 Beraldo Leal
<pre>
90 19 Beraldo Leal
# mysql -u root -p
91 19 Beraldo Leal
mysql> CREATE DATABASE keystone;
92 19 Beraldo Leal
mysql> GRANT ALL ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystonepass';
93 19 Beraldo Leal
mysql> FLUSH PRIVILEGES;
94 19 Beraldo Leal
mysql> quit;
95 19 Beraldo Leal
</pre>
96 20 Beraldo Leal
97 20 Beraldo Leal
Edit _*keystone.conf*_ to use mysql:
98 20 Beraldo Leal
99 20 Beraldo Leal
<pre>
100 20 Beraldo Leal
[sql]
101 20 Beraldo Leal
connection = mysql://keystone:keystonepass@192.168.69.1/keystone
102 21 Beraldo Leal
</pre>
103 21 Beraldo Leal
104 21 Beraldo Leal
Change in _*keystone.conf*_ the ADMIN_TOKEN:
105 21 Beraldo Leal
106 20 Beraldo Leal
<pre>
107 21 Beraldo Leal
admin_token = 012345SECRET99TOKEN012345
108 21 Beraldo Leal
</pre>
109 22 Beraldo Leal
110 22 Beraldo Leal
Restarte o keystone e inicialize o banco:
111 22 Beraldo Leal
112 22 Beraldo Leal
<pre>
113 22 Beraldo Leal
# service keystone restart
114 1 Beraldo Leal
# keystone-manage db_sync
115 22 Beraldo Leal
</pre>
116 23 Beraldo Leal
117 37 Beraldo Leal
h2. Configuring Services to work with Keystone
118 23 Beraldo Leal
119 23 Beraldo Leal
Crie o arquivo _*/root/openstackrc*_, com o seguinte conteudo:
120 23 Beraldo Leal
121 23 Beraldo Leal
<pre>
122 23 Beraldo Leal
export SERVICE_ENDPOINT=http://192.168.69.1:35357/v2.0/
123 23 Beraldo Leal
export SERVICE_TOKEN=012345SECRET99TOKEN012345
124 23 Beraldo Leal
</pre>
125 23 Beraldo Leal
126 23 Beraldo Leal
Estas variaveis de ambiente sao uteis para evitar ficar passando as opcoes --token e --endpoint para os utilitarios de linha de comando. 
127 23 Beraldo Leal
128 23 Beraldo Leal
Carrege o arquivo:
129 23 Beraldo Leal
130 23 Beraldo Leal
<pre>
131 23 Beraldo Leal
# source /root/openstackrc
132 23 Beraldo Leal
</pre>
133 24 Beraldo Leal
134 26 Beraldo Leal
Crie os *tenants* _openstackDemo_ e _service_:
135 24 Beraldo Leal
136 24 Beraldo Leal
<pre>
137 24 Beraldo Leal
# keystone tenant-create --name openstackDemo --description "Default Tenant"  --enabled true
138 24 Beraldo Leal
# keystone tenant-create --name service --description "Service Tenant"  --enabled true
139 24 Beraldo Leal
</pre>
140 25 Beraldo Leal
141 27 Beraldo Leal
Crie o *user* _admin_, substitua o tenant_id pelo tentant_id do openstackDemo, criado no item anterior:
142 25 Beraldo Leal
143 1 Beraldo Leal
<pre>
144 1 Beraldo Leal
# keystone user-create --tenant_id 9c401c9d2b9d41bcabda6919d4aec63a --name admin --pass adminpass --enabled true
145 26 Beraldo Leal
</pre>
146 26 Beraldo Leal
147 26 Beraldo Leal
Crie os *roles* _admin_ e _user_:
148 26 Beraldo Leal
149 26 Beraldo Leal
<pre>
150 26 Beraldo Leal
# keystone role-create --name admin
151 1 Beraldo Leal
# keystone role-create --name user
152 27 Beraldo Leal
</pre>
153 27 Beraldo Leal
154 27 Beraldo Leal
Adicione o *user* _admin_ ao *role* _admin_, fazendo as devidas substituicoes:
155 27 Beraldo Leal
156 27 Beraldo Leal
<pre>
157 29 Beraldo Leal
# keystone user-role-add --user [admin_user_id] --tenant_id [openstackDemo_tenant_id] --role [admin_role]
158 29 Beraldo Leal
</pre>
159 29 Beraldo Leal
160 29 Beraldo Leal
Crie um usuario para cada servico, e substitua o tenant_id pelo id do tenant *service*:
161 29 Beraldo Leal
162 29 Beraldo Leal
<pre>
163 29 Beraldo Leal
# keystone user-create --tenant_id 92920816c7704a8a95c916d34dc7a05c --name glance --pass glancepass --enabled true
164 29 Beraldo Leal
# keystone user-create --tenant_id 92920816c7704a8a95c916d34dc7a05c --name nova --pass novapass --enabled true
165 29 Beraldo Leal
# keystone user-create --tenant_id 92920816c7704a8a95c916d34dc7a05c --name swift --pass swiftpass --enabled true
166 29 Beraldo Leal
</pre>
167 29 Beraldo Leal
168 29 Beraldo Leal
Adicione os users acima ao *role* _admin_, fazendo as devidas substituicoes:
169 29 Beraldo Leal
170 29 Beraldo Leal
<pre>
171 29 Beraldo Leal
# keystone user-role-add --user [glance_user_id] --tenant_id [service_tenant_id] --role [admin_role]
172 1 Beraldo Leal
# keystone user-role-add --user [nova_user_id] --tenant_id [service_tenant_id] --role [admin_role]
173 29 Beraldo Leal
# keystone user-role-add --user [swift_user_id] --tenant_id [service_tenant_id] --role [admin_role]
174 25 Beraldo Leal
</pre>
175 31 Beraldo Leal
176 37 Beraldo Leal
h2. Definindo os servicos:
177 31 Beraldo Leal
178 31 Beraldo Leal
Ate agora, apenas criamos: tenants, users e roles. O Keystone tambem gerencia os servicos e seus endpoins. Desta forma os componentes do openstack consulta o keystone onde determinado servico encontra-se.
179 31 Beraldo Leal
180 31 Beraldo Leal
Crie os servicos:
181 31 Beraldo Leal
182 31 Beraldo Leal
<pre>
183 31 Beraldo Leal
# keystone service-create --name keystone --type identity --description "Keystone Identity Service" 
184 31 Beraldo Leal
# keystone service-create --name nova --type compute --description "Nova Compute Service"
185 31 Beraldo Leal
# keystone service-create --name volume --type volume --description "Nova Volume Service"
186 31 Beraldo Leal
# keystone service-create --name glance --type image --description "Glance Image Service"
187 41 Beraldo Leal
# keystone service-create --name swift --type object-store --description "Object Storage Service"
188 31 Beraldo Leal
</pre>
189 32 Beraldo Leal
190 32 Beraldo Leal
Crie os endpoints para os respectivos servicos:
191 32 Beraldo Leal
192 32 Beraldo Leal
<pre>
193 33 Beraldo Leal
# keystone endpoint-create --region RegionOne --service_id [keystone_service_id] --publicurl http://192.168.69.1:5000/v2.0 --internalurl http://192.168.69.1:5000/v2.0 --adminurl http://192.168.69.1:35357/v2.0
194 33 Beraldo Leal
# keystone endpoint-create --region RegionOne --service_id [compute_service_id] --publicurl 'http://192.168.69.1:8774/v2/%(tenant_id)s' --internalurl 'http://192.168.69.1:8774/v2/%(tenant_id)s' --adminurl 'http://192.168.69.1:8774/v2/%(tenant_id)s'
195 1 Beraldo Leal
# keystone endpoint-create --region RegionOne --service_id [volume_service_id] --publicurl 'http://192.168.69.1:8776/v1/%(tenant_id)s' --internalurl 'http://192.168.69.1:8776/v1/%(tenant_id)s' --adminurl 'http://192.168.69.1:8776/v1/%(tenant_id)s'
196 33 Beraldo Leal
# keystone endpoint-create --region RegionOne --service_id [glance_service_id] --publicurl http://192.168.69.1:9292/v1 --internalurl http://192.168.69.1:9292/v1 --adminurl http://192.168.69.1:9292/v1
197 33 Beraldo Leal
# keystone endpoint-create --region RegionOne --service_id [swift_service_id] --publicurl 'http://192.168.69.1:8888/v1/AUTH_%(tenant_id)s' --adminurl 'http://192.168.69.1:8888/' --internalurl 'http://192.168.69.1:8888/v1/AUTH_%(tenant_id)s'
198 32 Beraldo Leal
</pre>
199 34 Beraldo Leal
200 37 Beraldo Leal
h2. Verificando a instalacao:
201 34 Beraldo Leal
202 34 Beraldo Leal
<pre>
203 34 Beraldo Leal
# sudo apt-get install curl openssl
204 34 Beraldo Leal
</pre>
205 34 Beraldo Leal
206 34 Beraldo Leal
Faca uma requisicao REST para a API do keystone usando o curl:
207 34 Beraldo Leal
208 34 Beraldo Leal
<pre>
209 34 Beraldo Leal
# curl -d '{"auth": {"tenantName": "openstackDemo", "passwordCredentials": {"username": "admin", "password": "adminpass"}}}' -H "Content-type: application/json" http://192.168.69.1:35357/v2.0/tokens  | python -mjson.tool
210 34 Beraldo Leal
</pre>
211 34 Beraldo Leal
212 35 Beraldo Leal
O retorno deve conter todos os servicos, endpoins e um token que expira em 24 horas:
213 34 Beraldo Leal
214 34 Beraldo Leal
<pre>
215 34 Beraldo Leal
{
216 34 Beraldo Leal
    "access": {
217 34 Beraldo Leal
        "serviceCatalog": [
218 34 Beraldo Leal
            {
219 34 Beraldo Leal
                "endpoints": [
220 34 Beraldo Leal
                    {
221 34 Beraldo Leal
                        "adminURL": "http://192.168.69.1:8776/v1/9c401c9d2b9d41bcabda6919d4aec63a", 
222 34 Beraldo Leal
                        "internalURL": "http://192.168.69.1:8776/v1/9c401c9d2b9d41bcabda6919d4aec63a", 
223 34 Beraldo Leal
                        "publicURL": "http://192.168.69.1:8776/v1/9c401c9d2b9d41bcabda6919d4aec63a", 
224 34 Beraldo Leal
                        "region": "RegionOne"
225 34 Beraldo Leal
                    }
226 34 Beraldo Leal
                ], 
227 34 Beraldo Leal
                "endpoints_links": [], 
228 34 Beraldo Leal
                "name": "volume", 
229 34 Beraldo Leal
                "type": "volume"
230 34 Beraldo Leal
            }, 
231 34 Beraldo Leal
            {
232 34 Beraldo Leal
                "endpoints": [
233 34 Beraldo Leal
                    {
234 34 Beraldo Leal
                        "adminURL": "http://192.168.69.1:9292/v1", 
235 34 Beraldo Leal
                        "internalURL": "http://192.168.69.1:9292/v1", 
236 34 Beraldo Leal
                        "publicURL": "http://192.168.69.1:9292/v1", 
237 34 Beraldo Leal
                        "region": "RegionOne"
238 34 Beraldo Leal
                    }
239 34 Beraldo Leal
                ], 
240 34 Beraldo Leal
                "endpoints_links": [], 
241 34 Beraldo Leal
                "name": "glance", 
242 34 Beraldo Leal
                "type": "image"
243 34 Beraldo Leal
            }, 
244 34 Beraldo Leal
            {
245 34 Beraldo Leal
                "endpoints": [
246 34 Beraldo Leal
                    {
247 34 Beraldo Leal
                        "adminURL": "http://192.168.69.1:8774/v2/9c401c9d2b9d41bcabda6919d4aec63a", 
248 34 Beraldo Leal
                        "internalURL": "http://192.168.69.1:8774/v2/9c401c9d2b9d41bcabda6919d4aec63a", 
249 34 Beraldo Leal
                        "publicURL": "http://192.168.69.1:8774/v2/9c401c9d2b9d41bcabda6919d4aec63a", 
250 34 Beraldo Leal
                        "region": "RegionOne"
251 34 Beraldo Leal
                    }
252 34 Beraldo Leal
                ], 
253 34 Beraldo Leal
                "endpoints_links": [], 
254 34 Beraldo Leal
                "name": "nova", 
255 34 Beraldo Leal
                "type": "compute"
256 34 Beraldo Leal
            }, 
257 34 Beraldo Leal
            {
258 34 Beraldo Leal
                "endpoints": [
259 34 Beraldo Leal
                    {
260 34 Beraldo Leal
                        "adminURL": "http://192.168.69.1:35357/v2.0", 
261 34 Beraldo Leal
                        "internalURL": "http://192.168.69.1:5000/v2.0", 
262 34 Beraldo Leal
                        "publicURL": "http://192.168.69.1:5000/v2.0", 
263 34 Beraldo Leal
                        "region": "RegionOne"
264 34 Beraldo Leal
                    }
265 34 Beraldo Leal
                ], 
266 34 Beraldo Leal
                "endpoints_links": [], 
267 34 Beraldo Leal
                "name": "keystone", 
268 34 Beraldo Leal
                "type": "identity"
269 34 Beraldo Leal
            }, 
270 34 Beraldo Leal
            {
271 34 Beraldo Leal
                "endpoints": [
272 34 Beraldo Leal
                    {
273 34 Beraldo Leal
                        "adminURL": "http://192.168.69.1:8888/", 
274 34 Beraldo Leal
                        "internalURL": "http://192.168.69.1:8888/v1/AUTH_9c401c9d2b9d41bcabda6919d4aec63a", 
275 34 Beraldo Leal
                        "publicURL": "http://192.168.69.1:8888/v1/AUTH_9c401c9d2b9d41bcabda6919d4aec63a", 
276 34 Beraldo Leal
                        "region": "RegionOne"
277 34 Beraldo Leal
                    }
278 34 Beraldo Leal
                ], 
279 34 Beraldo Leal
                "endpoints_links": [], 
280 34 Beraldo Leal
                "name": "swift", 
281 41 Beraldo Leal
                "type": "object-store"
282 34 Beraldo Leal
            }
283 34 Beraldo Leal
        ], 
284 34 Beraldo Leal
        "token": {
285 34 Beraldo Leal
            "expires": "2012-06-08T15:31:46Z", 
286 34 Beraldo Leal
            "id": "05b818ff23564d5599c97ea5e1df7bbe", 
287 34 Beraldo Leal
            "tenant": {
288 34 Beraldo Leal
                "description": "Default Tenant", 
289 34 Beraldo Leal
                "enabled": true, 
290 34 Beraldo Leal
                "id": "9c401c9d2b9d41bcabda6919d4aec63a", 
291 34 Beraldo Leal
                "name": "openstackDemo"
292 34 Beraldo Leal
            }
293 34 Beraldo Leal
        }, 
294 34 Beraldo Leal
        "user": {
295 34 Beraldo Leal
            "id": "1fcfbe778fc3428aa30db782056b34d7", 
296 34 Beraldo Leal
            "name": "admin", 
297 34 Beraldo Leal
            "roles": [
298 34 Beraldo Leal
                {
299 34 Beraldo Leal
                    "id": "a2d6da77c0a54105aab94484e0d2088b", 
300 34 Beraldo Leal
                    "name": "admin"
301 34 Beraldo Leal
                }
302 34 Beraldo Leal
            ], 
303 34 Beraldo Leal
            "roles_links": [], 
304 34 Beraldo Leal
            "username": "admin"
305 34 Beraldo Leal
        }
306 34 Beraldo Leal
    }
307 34 Beraldo Leal
}
308 34 Beraldo Leal
309 34 Beraldo Leal
</pre>
310 36 Beraldo Leal
311 36 Beraldo Leal
Voce pode tambem listar usuarios, roles, tenants e services:
312 36 Beraldo Leal
313 36 Beraldo Leal
<pre>
314 36 Beraldo Leal
# keystone user-list
315 39 Beraldo Leal
+----------------------------------+---------+-------+--------+
316 39 Beraldo Leal
|                id                | enabled | email |  name  |
317 39 Beraldo Leal
+----------------------------------+---------+-------+--------+
318 39 Beraldo Leal
| 029c5749548946f7b560b2706d31d488 | True    | None  | glance |
319 39 Beraldo Leal
| 1fcfbe778fc3428aa30db782056b34d7 | True    | None  | admin  |
320 39 Beraldo Leal
| 4b75079aeb1b408ebdb286bfb85e719f | True    | None  | swift  |
321 39 Beraldo Leal
| e25f81d50eb84bdb92907adbd0e41f25 | True    | None  | nova   |
322 39 Beraldo Leal
+----------------------------------+---------+-------+--------+
323 40 Beraldo Leal
</pre>
324 39 Beraldo Leal
325 40 Beraldo Leal
<pre>
326 36 Beraldo Leal
# keystone role-list
327 39 Beraldo Leal
+----------------------------------+-------+
328 39 Beraldo Leal
|                id                |  name |
329 39 Beraldo Leal
+----------------------------------+-------+
330 39 Beraldo Leal
| 845e83e4d9bf4d8d8188b1e261dfe103 | user  |
331 39 Beraldo Leal
| a2d6da77c0a54105aab94484e0d2088b | admin |
332 39 Beraldo Leal
+----------------------------------+-------+
333 40 Beraldo Leal
</pre>
334 1 Beraldo Leal
335 40 Beraldo Leal
<pre>
336 36 Beraldo Leal
# keystone tenant-list
337 39 Beraldo Leal
+----------------------------------+---------------+---------+
338 39 Beraldo Leal
|                id                |      name     | enabled |
339 39 Beraldo Leal
+----------------------------------+---------------+---------+
340 39 Beraldo Leal
| 92920816c7704a8a95c916d34dc7a05c | service       | True    |
341 39 Beraldo Leal
| 9c401c9d2b9d41bcabda6919d4aec63a | openstackDemo | True    |
342 1 Beraldo Leal
+----------------------------------+---------------+---------+
343 40 Beraldo Leal
</pre>
344 1 Beraldo Leal
345 40 Beraldo Leal
<pre>
346 36 Beraldo Leal
# keystone service-list
347 39 Beraldo Leal
+----------------------------------+----------+----------------+---------------------------+
348 39 Beraldo Leal
|                id                |   name   |      type      |        description        |
349 39 Beraldo Leal
+----------------------------------+----------+----------------+---------------------------+
350 39 Beraldo Leal
| 00486163c7c64c6a86f577627071aafc | nova     | compute        | Nova Compute Service      |
351 39 Beraldo Leal
| 69d3a6b21c9348acb1042d7d9386ff81 | volume   | volume         | Nova Volume Service       |
352 41 Beraldo Leal
| 7b09782f9faf448781f5a460acabe258 | swift    | object-store   | Object Storage Service    |
353 39 Beraldo Leal
| d6b32583a6694e9b828b2a50037623ba | keystone | identity       | Keystone Identity Service |
354 39 Beraldo Leal
| f7f964a71e2a45119dcaede68fafbd78 | glance   | image          | Glance Image Service      |
355 39 Beraldo Leal
+----------------------------------+----------+----------------+---------------------------+
356 36 Beraldo Leal
</pre>
357 38 Beraldo Leal
358 38 Beraldo Leal
h1. Installing OpenStack Object Storage - Swift
359 42 Beraldo Leal
360 1 Beraldo Leal
[Descrever o Swift aqui]
361 44 Beraldo Leal
362 44 Beraldo Leal
Como neste ambiente de desenvolvimento temos apenas um no para storage e este sera o mesmo no que estara instalado o swift-proxy, todos os passos abaixo, sao executados na mesma maquina: _educloud01_.
363 44 Beraldo Leal
364 44 Beraldo Leal
Em um ambiente de producao aconselha-se ter pelo menos 05 object storage nodes e 01 object proxy node.
365 44 Beraldo Leal
366 44 Beraldo Leal
h2. Instalando e configurando o swift
367 44 Beraldo Leal
368 44 Beraldo Leal
<pre>
369 44 Beraldo Leal
# apt-get install swift python-xattr python-memcache rsync memcached python-netifaces
370 44 Beraldo Leal
</pre>
371 44 Beraldo Leal
372 44 Beraldo Leal
Infelizmente no momento da escrita deste manual o pacote do swift nao automatiza algumas tarefas, como por exemplo, a criacao dos arquivos de configuracao. Teremos que fazer isso manualmente:
373 44 Beraldo Leal
374 44 Beraldo Leal
<pre>
375 44 Beraldo Leal
# mkdir /etc/swift
376 44 Beraldo Leal
</pre>
377 44 Beraldo Leal
378 44 Beraldo Leal
Crie o arquivo de configuracao _/etc/swift/swift.conf_:
379 44 Beraldo Leal
380 44 Beraldo Leal
<pre>
381 44 Beraldo Leal
[swift-hash]
382 44 Beraldo Leal
# random unique string that can never change (DO NOT LOSE)
383 44 Beraldo Leal
swift_hash_path_suffix = fLIbertYgibbitZ
384 44 Beraldo Leal
</pre>
385 44 Beraldo Leal
386 44 Beraldo Leal
h2. Instalando e configurando os "object nodes"
387 44 Beraldo Leal
388 44 Beraldo Leal
<pre>
389 44 Beraldo Leal
# apt-get install swift-account swift-container swift-object xfsprogs
390 44 Beraldo Leal
</pre>
391 44 Beraldo Leal
392 44 Beraldo Leal
Cada "Object node" pode ter muitos dispositivos ligados a eles. 'E necessario que seja utilizado o sistema de arquivos xfs. 
393 44 Beraldo Leal
394 44 Beraldo Leal
<pre>
395 44 Beraldo Leal
# fdisk /dev/sdb (set up a single partition)
396 44 Beraldo Leal
# mkfs.xfs -i size=1024 /dev/sdb1
397 44 Beraldo Leal
</pre>
398 44 Beraldo Leal
399 44 Beraldo Leal
400 44 Beraldo Leal
Este dispositivo deve estar montando em /srv/node/
401 44 Beraldo Leal
402 44 Beraldo Leal
<pre>
403 44 Beraldo Leal
echo "/dev/sdb1 /srv/node/sdb1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 0" >> /etc/fstab
404 44 Beraldo Leal
mkdir -p /srv/node/sdb1
405 44 Beraldo Leal
mount /srv/node/sdb1
406 44 Beraldo Leal
chown -R swift:swift /srv/node
407 44 Beraldo Leal
</pre>
408 44 Beraldo Leal
409 44 Beraldo Leal
h2. Configure o _rsyncd.conf_
410 44 Beraldo Leal
411 44 Beraldo Leal
<pre>
412 44 Beraldo Leal
uid = swift
413 44 Beraldo Leal
gid = swift
414 44 Beraldo Leal
log file = /var/log/rsyncd.log
415 44 Beraldo Leal
pid file = /var/run/rsyncd.pid
416 44 Beraldo Leal
address = 192.168.69.1
417 44 Beraldo Leal
418 44 Beraldo Leal
[account]
419 44 Beraldo Leal
max connections = 2
420 44 Beraldo Leal
path = /srv/node/
421 44 Beraldo Leal
read only = false
422 44 Beraldo Leal
lock file = /var/lock/account.lock
423 44 Beraldo Leal
424 44 Beraldo Leal
[container]
425 44 Beraldo Leal
max connections = 2
426 44 Beraldo Leal
path = /srv/node/
427 44 Beraldo Leal
read only = false
428 44 Beraldo Leal
lock file = /var/lock/container.lock
429 44 Beraldo Leal
430 44 Beraldo Leal
[object]
431 44 Beraldo Leal
max connections = 2
432 44 Beraldo Leal
path = /srv/node/
433 44 Beraldo Leal
read only = false
434 44 Beraldo Leal
lock file = /var/lock/object.lock
435 44 Beraldo Leal
</pre>
436 44 Beraldo Leal
437 44 Beraldo Leal
Edite o _/etc/default/rsync_:
438 44 Beraldo Leal
439 44 Beraldo Leal
<pre>
440 44 Beraldo Leal
RSYNC_ENABLE = true
441 44 Beraldo Leal
</pre>
442 44 Beraldo Leal
443 44 Beraldo Leal
Restarte o rsync:
444 44 Beraldo Leal
445 44 Beraldo Leal
<pre>
446 44 Beraldo Leal
service rsync restart
447 44 Beraldo Leal
</pre>
448 44 Beraldo Leal
449 44 Beraldo Leal
Crie o _/etc/swift/account-server.conf_:
450 44 Beraldo Leal
451 44 Beraldo Leal
<pre>
452 44 Beraldo Leal
[DEFAULT]
453 44 Beraldo Leal
bind_ip = 192.168.69.1
454 44 Beraldo Leal
workers = 2
455 44 Beraldo Leal
456 44 Beraldo Leal
[pipeline:main]
457 44 Beraldo Leal
pipeline = account-server
458 44 Beraldo Leal
459 44 Beraldo Leal
[app:account-server]
460 44 Beraldo Leal
use = egg:swift#account
461 44 Beraldo Leal
462 44 Beraldo Leal
[account-replicator]
463 44 Beraldo Leal
464 44 Beraldo Leal
[account-auditor]
465 44 Beraldo Leal
466 44 Beraldo Leal
[account-reaper]
467 44 Beraldo Leal
</pre>
468 44 Beraldo Leal
469 44 Beraldo Leal
Crie o _/etc/swift/container-server.conf_:
470 44 Beraldo Leal
471 44 Beraldo Leal
<pre>
472 44 Beraldo Leal
[DEFAULT]
473 44 Beraldo Leal
bind_ip = 192.168.69.1
474 44 Beraldo Leal
workers = 2
475 44 Beraldo Leal
476 44 Beraldo Leal
[pipeline:main]
477 44 Beraldo Leal
pipeline = container-server
478 44 Beraldo Leal
479 44 Beraldo Leal
[app:container-server]
480 44 Beraldo Leal
use = egg:swift#container
481 44 Beraldo Leal
482 44 Beraldo Leal
[container-replicator]
483 44 Beraldo Leal
484 44 Beraldo Leal
[container-updater]
485 44 Beraldo Leal
486 44 Beraldo Leal
[container-auditor]
487 44 Beraldo Leal
</pre>
488 44 Beraldo Leal
489 44 Beraldo Leal
Crie o _/etc/swift/object-server.conf_:
490 44 Beraldo Leal
491 44 Beraldo Leal
<pre>
492 44 Beraldo Leal
[DEFAULT]
493 44 Beraldo Leal
bind_ip = 192.168.69.1
494 44 Beraldo Leal
workers = 2
495 44 Beraldo Leal
496 44 Beraldo Leal
[pipeline:main]
497 44 Beraldo Leal
pipeline = object-server
498 44 Beraldo Leal
499 44 Beraldo Leal
[app:object-server]
500 44 Beraldo Leal
use = egg:swift#object
501 44 Beraldo Leal
502 44 Beraldo Leal
[object-replicator]
503 44 Beraldo Leal
504 44 Beraldo Leal
[object-updater]
505 44 Beraldo Leal
506 44 Beraldo Leal
[object-auditor]
507 44 Beraldo Leal
</pre>
508 44 Beraldo Leal
509 44 Beraldo Leal
510 44 Beraldo Leal
h2. Instale e configure o swift-proxy
511 44 Beraldo Leal
512 44 Beraldo Leal
<pre>
513 44 Beraldo Leal
# apt-get install swift-proxy memcached
514 44 Beraldo Leal
</pre>
515 44 Beraldo Leal
516 44 Beraldo Leal
Crie o certificado SSL auto assinado:
517 44 Beraldo Leal
518 44 Beraldo Leal
<pre>
519 44 Beraldo Leal
cd /etc/swift
520 44 Beraldo Leal
openssl req -new -x509 -nodes -out cert.crt -keyout cert.key
521 44 Beraldo Leal
</pre>
522 44 Beraldo Leal
523 44 Beraldo Leal
Modifique o memcached para ouvir na interface da sua rede interna. Edite a seguinte linha no /etc/memcached.conf, mudando
524 44 Beraldo Leal
525 44 Beraldo Leal
<pre>
526 44 Beraldo Leal
-l 127.0.0.1
527 44 Beraldo Leal
to
528 44 Beraldo Leal
-l 192.168.69.1
529 44 Beraldo Leal
</pre>
530 44 Beraldo Leal
531 44 Beraldo Leal
Restart o memcached:
532 44 Beraldo Leal
533 44 Beraldo Leal
<pre>
534 44 Beraldo Leal
service memcached restart
535 44 Beraldo Leal
</pre>
536 44 Beraldo Leal
537 44 Beraldo Leal
Crie o arquivo _/etc/swift/proxy-server.conf_:
538 44 Beraldo Leal
539 44 Beraldo Leal
<pre>
540 44 Beraldo Leal
[DEFAULT]
541 44 Beraldo Leal
bind_port = 8888
542 44 Beraldo Leal
user = swift
543 44 Beraldo Leal
544 44 Beraldo Leal
[pipeline:main]
545 44 Beraldo Leal
pipeline = catch_errors healthcheck cache authtoken keystone proxy-server
546 44 Beraldo Leal
547 44 Beraldo Leal
[app:proxy-server]
548 44 Beraldo Leal
use = egg:swift#proxy
549 44 Beraldo Leal
account_autocreate = true
550 44 Beraldo Leal
551 44 Beraldo Leal
[filter:keystone]
552 44 Beraldo Leal
paste.filter_factory = keystone.middleware.swift_auth:filter_factory
553 44 Beraldo Leal
operator_roles = admin, swiftoperator
554 44 Beraldo Leal
555 44 Beraldo Leal
[filter:authtoken]
556 44 Beraldo Leal
paste.filter_factory = keystone.middleware.auth_token:filter_factory
557 44 Beraldo Leal
# Delaying the auth decision is required to support token-less
558 44 Beraldo Leal
# usage for anonymous referrers ('.r:*').
559 44 Beraldo Leal
delay_auth_decision = 10
560 44 Beraldo Leal
service_port = 5000
561 44 Beraldo Leal
service_host = 192.168.69.1
562 44 Beraldo Leal
auth_port = 35357
563 44 Beraldo Leal
auth_host = 192.168.69.1
564 44 Beraldo Leal
auth_token = 012345SECRET99TOKEN012345
565 44 Beraldo Leal
admin_token = 012345SECRET99TOKEN012345
566 44 Beraldo Leal
auth_protocol = http
567 44 Beraldo Leal
568 44 Beraldo Leal
[filter:cache]
569 44 Beraldo Leal
use = egg:swift#memcache
570 44 Beraldo Leal
set log_name = cache
571 44 Beraldo Leal
572 44 Beraldo Leal
[filter:catch_errors]
573 44 Beraldo Leal
use = egg:swift#catch_errors
574 44 Beraldo Leal
575 44 Beraldo Leal
[filter:healthcheck]
576 44 Beraldo Leal
use = egg:swift#healthcheck
577 44 Beraldo Leal
</pre>
578 44 Beraldo Leal
579 45 Beraldo Leal
580 45 Beraldo Leal
Create the account, container and object rings. The builder command is basically creating a builder file with a few parameters. The parameter with the value of 18 represents 2 ^ 18th, the value that the partition will be sized to. Set this "partition power" value based on the total amount of storage you expect your entire ring to use. The value of 1 represents the number of replicas of each object, with the last value being the number of hours to restrict moving a partition more than once.
581 45 Beraldo Leal
582 45 Beraldo Leal
<pre>
583 45 Beraldo Leal
cd /etc/swift
584 45 Beraldo Leal
swift-ring-builder account.builder create 18 1 1
585 45 Beraldo Leal
swift-ring-builder container.builder create 18 1 1
586 45 Beraldo Leal
swift-ring-builder object.builder create 18 1 1
587 45 Beraldo Leal
</pre>
588 45 Beraldo Leal
589 45 Beraldo Leal
For every storage device on each node add entries to each ring:
590 45 Beraldo Leal
591 45 Beraldo Leal
<pre>
592 45 Beraldo Leal
swift-ring-builder account.builder add z<ZONE>-<STORAGE_LOCAL_NET_IP>:6002/<DEVICE> 100
593 45 Beraldo Leal
swift-ring-builder container.builder add z<ZONE>-<STORAGE_LOCAL_NET_IP_1>:6001/<DEVICE> 100
594 45 Beraldo Leal
swift-ring-builder object.builder add z<ZONE>-<STORAGE_LOCAL_NET_IP_1>:6000/<DEVICE> 100
595 45 Beraldo Leal
</pre>
596 45 Beraldo Leal
597 45 Beraldo Leal
Como no nosso caso, apenas temos uma zona, em um storage node e com um device (sdb1), o comando acima ficaria:
598 45 Beraldo Leal
599 45 Beraldo Leal
<pre>
600 45 Beraldo Leal
swift-ring-builder account.builder add z1-192.168.69.1:6002/sdb1 100
601 45 Beraldo Leal
swift-ring-builder container.builder add z1-192.168.69.1:6001/sdb1 100
602 45 Beraldo Leal
swift-ring-builder object.builder add z1-192.168.69.1:6000/sdb1 100
603 45 Beraldo Leal
</pre>
604 45 Beraldo Leal
605 45 Beraldo Leal
Verify the ring contents for each ring:
606 45 Beraldo Leal
607 45 Beraldo Leal
<pre>
608 45 Beraldo Leal
swift-ring-builder account.builder
609 45 Beraldo Leal
swift-ring-builder container.builder
610 45 Beraldo Leal
swift-ring-builder object.builder
611 45 Beraldo Leal
</pre>
612 45 Beraldo Leal
613 45 Beraldo Leal
Rebalance the rings:
614 45 Beraldo Leal
615 45 Beraldo Leal
<pre>
616 45 Beraldo Leal
swift-ring-builder account.builder rebalance
617 45 Beraldo Leal
swift-ring-builder container.builder rebalance
618 45 Beraldo Leal
swift-ring-builder object.builder rebalance
619 45 Beraldo Leal
</pre>
620 45 Beraldo Leal
621 44 Beraldo Leal
Altere as permissoes dos arquivos de configuracao:
622 44 Beraldo Leal
623 44 Beraldo Leal
<pre>
624 44 Beraldo Leal
# chown -R swift:swift /etc/swift/
625 44 Beraldo Leal
</pre>
626 45 Beraldo Leal
627 45 Beraldo Leal
Inicie o swift-proxy:
628 45 Beraldo Leal
629 45 Beraldo Leal
<pre>
630 45 Beraldo Leal
swift-init proxy start
631 45 Beraldo Leal
</pre>
632 45 Beraldo Leal
633 45 Beraldo Leal
Inicie todos os servicos:
634 45 Beraldo Leal
635 45 Beraldo Leal
<pre>
636 45 Beraldo Leal
swift-init main start
637 45 Beraldo Leal
swift-init rest start
638 45 Beraldo Leal
</pre>
639 45 Beraldo Leal
640 45 Beraldo Leal
641 45 Beraldo Leal
h2. Verificando a instalacao
642 45 Beraldo Leal
643 45 Beraldo Leal
O arquivo _/root/openstackrc_ vai receber novas variaveis de ambiente, ele deve ficar assim:
644 45 Beraldo Leal
645 45 Beraldo Leal
<pre>
646 45 Beraldo Leal
# Used for Keystone
647 45 Beraldo Leal
export SERVICE_ENDPOINT=http://192.168.69.1:35357/v2.0/
648 45 Beraldo Leal
export SERVICE_TOKEN=012345SECRET99TOKEN012345
649 45 Beraldo Leal
650 45 Beraldo Leal
# Used for swift
651 45 Beraldo Leal
export ST_AUTH=http://192.168.69.1:5000/v2.0
652 45 Beraldo Leal
export ST_USER=openstackDemo:admin
653 45 Beraldo Leal
export ST_KEY=adminpass
654 45 Beraldo Leal
export OS_REGION_NAME=RegionOne
655 45 Beraldo Leal
</pre>
656 45 Beraldo Leal
657 45 Beraldo Leal
Carregue o arquivo:
658 45 Beraldo Leal
659 45 Beraldo Leal
<pre>
660 45 Beraldo Leal
# source /root/openstackrc
661 45 Beraldo Leal
</pre>
662 45 Beraldo Leal
663 45 Beraldo Leal
Tente obter status do swift:
664 45 Beraldo Leal
665 45 Beraldo Leal
<pre>
666 45 Beraldo Leal
# swift -V 2.0 stat
667 45 Beraldo Leal
</pre>
668 45 Beraldo Leal
669 45 Beraldo Leal
# Liste os containers:
670 45 Beraldo Leal
671 45 Beraldo Leal
<pre>
672 45 Beraldo Leal
# swift -V 2.0 list
673 45 Beraldo Leal
</pre>
674 46 Beraldo Leal
675 46 Beraldo Leal
Suba alguns arquivos para o swift:
676 46 Beraldo Leal
677 45 Beraldo Leal
<pre>
678 46 Beraldo Leal
# swift -V 2.0 upload myfiles bigfile1.tgz
679 46 Beraldo Leal
# swift -V 2.0 upload myfiles bigfile2.tgz
680 46 Beraldo Leal
</pre>
681 46 Beraldo Leal
682 46 Beraldo Leal
Baixe o container "myfiles":
683 46 Beraldo Leal
<pre>
684 46 Beraldo Leal
# cd /tmp/
685 46 Beraldo Leal
# swift -V 2.0 download myfiles
686 46 Beraldo Leal
</pre>
687 46 Beraldo Leal
688 46 Beraldo Leal
h1. Installing OpenStack Image Service - Glance
689 47 Beraldo Leal
690 47 Beraldo Leal
[descrever o glance aqui]
691 47 Beraldo Leal
692 47 Beraldo Leal
O glance esta instalado na _educloud01_.
693 47 Beraldo Leal
694 47 Beraldo Leal
h2. Instalando e configurando o glance
695 47 Beraldo Leal
696 47 Beraldo Leal
<pre>
697 47 Beraldo Leal
# apt-get install glance
698 47 Beraldo Leal
</pre>
699 47 Beraldo Leal
700 47 Beraldo Leal
Remova o arquivo sqlite.
701 47 Beraldo Leal
702 47 Beraldo Leal
<pre>
703 47 Beraldo Leal
# rm /var/lib/glance/glance.sqlite
704 47 Beraldo Leal
</pre>
705 47 Beraldo Leal
706 47 Beraldo Leal
h2. Configuring the Image Service database backend
707 47 Beraldo Leal
708 47 Beraldo Leal
<pre>
709 47 Beraldo Leal
# mysql -u root -p
710 47 Beraldo Leal
mysql> CREATE DATABASE glance;
711 47 Beraldo Leal
mysql> GRANT ALL ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glancepass';
712 47 Beraldo Leal
mysql> FLUSH PRIVILEGES;
713 47 Beraldo Leal
mysql> quit;
714 47 Beraldo Leal
</pre>
715 47 Beraldo Leal
716 47 Beraldo Leal
717 47 Beraldo Leal
Substitua os seguintes arquivos de configuracao em _/etc/glance/_:
718 47 Beraldo Leal
719 47 Beraldo Leal
*/etc/glance/glance-api.conf*:
720 47 Beraldo Leal
<pre>
721 47 Beraldo Leal
[DEFAULT]
722 47 Beraldo Leal
# Show more verbose log output (sets INFO log level output)
723 47 Beraldo Leal
verbose = True
724 47 Beraldo Leal
725 47 Beraldo Leal
# Show debugging output in logs (sets DEBUG log level output)
726 47 Beraldo Leal
debug = False
727 47 Beraldo Leal
728 47 Beraldo Leal
# Which backend store should Glance use by default is not specified
729 47 Beraldo Leal
# in a request to add a new image to Glance? Default: 'file'
730 47 Beraldo Leal
# Available choices are 'file', 'swift', and 's3'
731 47 Beraldo Leal
default_store = swift
732 47 Beraldo Leal
733 47 Beraldo Leal
# Address to bind the API server
734 47 Beraldo Leal
bind_host = 0.0.0.0
735 47 Beraldo Leal
736 47 Beraldo Leal
# Port the bind the API server to
737 47 Beraldo Leal
bind_port = 9292
738 47 Beraldo Leal
739 47 Beraldo Leal
# Log to this file. Make sure you do not set the same log
740 47 Beraldo Leal
# file for both the API and registry servers!
741 47 Beraldo Leal
log_file = /var/log/glance/api.log
742 47 Beraldo Leal
743 47 Beraldo Leal
# Backlog requests when creating socket
744 47 Beraldo Leal
backlog = 4096
745 47 Beraldo Leal
746 47 Beraldo Leal
# Number of Glance API worker processes to start.
747 47 Beraldo Leal
# On machines with more than one CPU increasing this value
748 47 Beraldo Leal
# may improve performance (especially if using SSL with
749 47 Beraldo Leal
# compression turned on). It is typically recommended to set
750 47 Beraldo Leal
# this value to the number of CPUs present on your machine.
751 47 Beraldo Leal
workers = 0
752 47 Beraldo Leal
753 47 Beraldo Leal
# Role used to identify an authenticated user as administrator
754 47 Beraldo Leal
#admin_role = admin
755 47 Beraldo Leal
756 47 Beraldo Leal
# ================= Syslog Options ============================
757 47 Beraldo Leal
758 47 Beraldo Leal
# Send logs to syslog (/dev/log) instead of to file specified
759 47 Beraldo Leal
# by `log_file`
760 47 Beraldo Leal
use_syslog = False
761 47 Beraldo Leal
762 47 Beraldo Leal
# Facility to use. If unset defaults to LOG_USER.
763 47 Beraldo Leal
# syslog_log_facility = LOG_LOCAL0
764 47 Beraldo Leal
765 47 Beraldo Leal
# ================= SSL Options ===============================
766 47 Beraldo Leal
767 47 Beraldo Leal
# Certificate file to use when starting API server securely
768 47 Beraldo Leal
# cert_file = /path/to/certfile
769 47 Beraldo Leal
770 47 Beraldo Leal
# Private key file to use when starting API server securely
771 47 Beraldo Leal
# key_file = /path/to/keyfile
772 47 Beraldo Leal
773 47 Beraldo Leal
# ================= Security Options ==========================
774 47 Beraldo Leal
775 47 Beraldo Leal
# AES key for encrypting store 'location' metadata, including
776 47 Beraldo Leal
# -- if used -- Swift or S3 credentials
777 47 Beraldo Leal
# Should be set to a random string of length 16, 24 or 32 bytes
778 47 Beraldo Leal
# metadata_encryption_key = <16, 24 or 32 char registry metadata key>
779 47 Beraldo Leal
780 47 Beraldo Leal
# ============ Registry Options ===============================
781 47 Beraldo Leal
782 47 Beraldo Leal
# Address to find the registry server
783 47 Beraldo Leal
registry_host = 0.0.0.0
784 47 Beraldo Leal
785 47 Beraldo Leal
# Port the registry server is listening on
786 47 Beraldo Leal
registry_port = 9191
787 47 Beraldo Leal
788 47 Beraldo Leal
# What protocol to use when connecting to the registry server?
789 47 Beraldo Leal
# Set to https for secure HTTP communication
790 47 Beraldo Leal
registry_client_protocol = http
791 47 Beraldo Leal
792 47 Beraldo Leal
# The path to the key file to use in SSL connections to the
793 47 Beraldo Leal
# registry server, if any. Alternately, you may set the
794 47 Beraldo Leal
# GLANCE_CLIENT_KEY_FILE environ variable to a filepath of the key file
795 47 Beraldo Leal
# registry_client_key_file = /path/to/key/file
796 47 Beraldo Leal
797 47 Beraldo Leal
# The path to the cert file to use in SSL connections to the
798 47 Beraldo Leal
# registry server, if any. Alternately, you may set the
799 47 Beraldo Leal
# GLANCE_CLIENT_CERT_FILE environ variable to a filepath of the cert file
800 47 Beraldo Leal
# registry_client_cert_file = /path/to/cert/file
801 47 Beraldo Leal
802 47 Beraldo Leal
# The path to the certifying authority cert file to use in SSL connections
803 47 Beraldo Leal
# to the registry server, if any. Alternately, you may set the
804 47 Beraldo Leal
# GLANCE_CLIENT_CA_FILE environ variable to a filepath of the CA cert file
805 47 Beraldo Leal
# registry_client_ca_file = /path/to/ca/file
806 47 Beraldo Leal
807 47 Beraldo Leal
# ============ Notification System Options =====================
808 47 Beraldo Leal
809 47 Beraldo Leal
# Notifications can be sent when images are create, updated or deleted.
810 47 Beraldo Leal
# There are three methods of sending notifications, logging (via the
811 47 Beraldo Leal
# log_file directive), rabbit (via a rabbitmq queue), qpid (via a Qpid
812 47 Beraldo Leal
# message queue), or noop (no notifications sent, the default)
813 47 Beraldo Leal
notifier_strategy = noop
814 47 Beraldo Leal
815 47 Beraldo Leal
# Configuration options if sending notifications via rabbitmq (these are
816 47 Beraldo Leal
# the defaults)
817 47 Beraldo Leal
rabbit_host = localhost
818 47 Beraldo Leal
rabbit_port = 5672
819 47 Beraldo Leal
rabbit_use_ssl = false
820 47 Beraldo Leal
rabbit_userid = guest
821 47 Beraldo Leal
rabbit_password = guest
822 47 Beraldo Leal
rabbit_virtual_host = /
823 47 Beraldo Leal
rabbit_notification_exchange = glance
824 47 Beraldo Leal
rabbit_notification_topic = glance_notifications
825 47 Beraldo Leal
826 47 Beraldo Leal
# Configuration options if sending notifications via Qpid (these are
827 47 Beraldo Leal
# the defaults)
828 47 Beraldo Leal
qpid_notification_exchange = glance
829 47 Beraldo Leal
qpid_notification_topic = glance_notifications
830 47 Beraldo Leal
qpid_host = localhost
831 47 Beraldo Leal
qpid_port = 5672
832 47 Beraldo Leal
qpid_username =
833 47 Beraldo Leal
qpid_password =
834 47 Beraldo Leal
qpid_sasl_mechanisms =
835 47 Beraldo Leal
qpid_reconnect_timeout = 0
836 47 Beraldo Leal
qpid_reconnect_limit = 0
837 47 Beraldo Leal
qpid_reconnect_interval_min = 0
838 47 Beraldo Leal
qpid_reconnect_interval_max = 0
839 47 Beraldo Leal
qpid_reconnect_interval = 0
840 47 Beraldo Leal
qpid_heartbeat = 5
841 47 Beraldo Leal
# Set to 'ssl' to enable SSL
842 47 Beraldo Leal
qpid_protocol = tcp
843 47 Beraldo Leal
qpid_tcp_nodelay = True
844 47 Beraldo Leal
845 47 Beraldo Leal
# ============ Filesystem Store Options ========================
846 47 Beraldo Leal
847 47 Beraldo Leal
# Directory that the Filesystem backend store
848 47 Beraldo Leal
# writes image data to
849 47 Beraldo Leal
filesystem_store_datadir = /var/lib/glance/images/
850 47 Beraldo Leal
851 47 Beraldo Leal
# ============ Swift Store Options =============================
852 47 Beraldo Leal
853 47 Beraldo Leal
# Version of the authentication service to use
854 47 Beraldo Leal
# Valid versions are '2' for keystone and '1' for swauth and rackspace
855 47 Beraldo Leal
swift_store_auth_version = 2
856 47 Beraldo Leal
857 47 Beraldo Leal
# Address where the Swift authentication service lives
858 47 Beraldo Leal
# Valid schemes are 'http://' and 'https://'
859 47 Beraldo Leal
# If no scheme specified,  default to 'https://'
860 47 Beraldo Leal
# For swauth, use something like '127.0.0.1:8080/v1.0/'
861 47 Beraldo Leal
swift_store_auth_address = http://192.168.69.1:35357/v2.0/
862 47 Beraldo Leal
863 47 Beraldo Leal
# User to authenticate against the Swift authentication service
864 47 Beraldo Leal
# If you use Swift authentication service, set it to 'account':'user'
865 47 Beraldo Leal
# where 'account' is a Swift storage account and 'user'
866 47 Beraldo Leal
# is a user in that account
867 47 Beraldo Leal
swift_store_user = service:glance
868 47 Beraldo Leal
869 47 Beraldo Leal
# Auth key for the user authenticating against the
870 47 Beraldo Leal
# Swift authentication service
871 47 Beraldo Leal
swift_store_key = glancepass
872 47 Beraldo Leal
873 47 Beraldo Leal
# Container within the account that the account should use
874 47 Beraldo Leal
# for storing images in Swift
875 47 Beraldo Leal
swift_store_container = glance
876 47 Beraldo Leal
877 47 Beraldo Leal
# Do we create the container if it does not exist?
878 47 Beraldo Leal
swift_store_create_container_on_put = True
879 47 Beraldo Leal
880 47 Beraldo Leal
# What size, in MB, should Glance start chunking image files
881 47 Beraldo Leal
# and do a large object manifest in Swift? By default, this is
882 47 Beraldo Leal
# the maximum object size in Swift, which is 5GB
883 47 Beraldo Leal
swift_store_large_object_size = 5120
884 47 Beraldo Leal
885 47 Beraldo Leal
# When doing a large object manifest, what size, in MB, should
886 47 Beraldo Leal
# Glance write chunks to Swift? This amount of data is written
887 47 Beraldo Leal
# to a temporary disk buffer during the process of chunking
888 47 Beraldo Leal
# the image file, and the default is 200MB
889 47 Beraldo Leal
swift_store_large_object_chunk_size = 200
890 47 Beraldo Leal
891 47 Beraldo Leal
# Whether to use ServiceNET to communicate with the Swift storage servers.
892 47 Beraldo Leal
# (If you aren't RACKSPACE, leave this False!)
893 47 Beraldo Leal
#
894 47 Beraldo Leal
# To use ServiceNET for authentication, prefix hostname of
895 47 Beraldo Leal
# `swift_store_auth_address` with 'snet-'.
896 47 Beraldo Leal
# Ex. https://example.com/v1.0/ -> https://snet-example.com/v1.0/
897 47 Beraldo Leal
swift_enable_snet = False
898 47 Beraldo Leal
899 47 Beraldo Leal
# ============ S3 Store Options =============================
900 47 Beraldo Leal
901 47 Beraldo Leal
# Address where the S3 authentication service lives
902 47 Beraldo Leal
# Valid schemes are 'http://' and 'https://'
903 47 Beraldo Leal
# If no scheme specified,  default to 'http://'
904 47 Beraldo Leal
s3_store_host = 127.0.0.1:8080/v1.0/
905 47 Beraldo Leal
906 47 Beraldo Leal
# User to authenticate against the S3 authentication service
907 47 Beraldo Leal
s3_store_access_key = <20-char AWS access key>
908 47 Beraldo Leal
909 47 Beraldo Leal
# Auth key for the user authenticating against the
910 47 Beraldo Leal
# S3 authentication service
911 47 Beraldo Leal
s3_store_secret_key = <40-char AWS secret key>
912 47 Beraldo Leal
913 47 Beraldo Leal
# Container within the account that the account should use
914 47 Beraldo Leal
# for storing images in S3. Note that S3 has a flat namespace,
915 47 Beraldo Leal
# so you need a unique bucket name for your glance images. An
916 47 Beraldo Leal
# easy way to do this is append your AWS access key to "glance".
917 47 Beraldo Leal
# S3 buckets in AWS *must* be lowercased, so remember to lowercase
918 47 Beraldo Leal
# your AWS access key if you use it in your bucket name below!
919 47 Beraldo Leal
s3_store_bucket = <lowercased 20-char aws access key>glance
920 47 Beraldo Leal
921 47 Beraldo Leal
# Do we create the bucket if it does not exist?
922 47 Beraldo Leal
s3_store_create_bucket_on_put = False
923 47 Beraldo Leal
924 47 Beraldo Leal
# When sending images to S3, the data will first be written to a
925 47 Beraldo Leal
# temporary buffer on disk. By default the platform's temporary directory
926 47 Beraldo Leal
# will be used. If required, an alternative directory can be specified here.
927 47 Beraldo Leal
# s3_store_object_buffer_dir = /path/to/dir
928 47 Beraldo Leal
929 47 Beraldo Leal
# ============ RBD Store Options =============================
930 47 Beraldo Leal
931 47 Beraldo Leal
# Ceph configuration file path
932 47 Beraldo Leal
# If using cephx authentication, this file should
933 47 Beraldo Leal
# include a reference to the right keyring
934 47 Beraldo Leal
# in a client.<USER> section
935 47 Beraldo Leal
rbd_store_ceph_conf = /etc/ceph/ceph.conf
936 47 Beraldo Leal
937 47 Beraldo Leal
# RADOS user to authenticate as (only applicable if using cephx)
938 47 Beraldo Leal
rbd_store_user = glance
939 47 Beraldo Leal
940 47 Beraldo Leal
# RADOS pool in which images are stored
941 47 Beraldo Leal
rbd_store_pool = images
942 47 Beraldo Leal
943 47 Beraldo Leal
# Images will be chunked into objects of this size (in megabytes).
944 47 Beraldo Leal
# For best performance, this should be a power of two
945 47 Beraldo Leal
rbd_store_chunk_size = 8
946 47 Beraldo Leal
947 47 Beraldo Leal
# ============ Delayed Delete Options =============================
948 47 Beraldo Leal
949 47 Beraldo Leal
# Turn on/off delayed delete
950 47 Beraldo Leal
delayed_delete = False
951 47 Beraldo Leal
952 47 Beraldo Leal
# Delayed delete time in seconds
953 47 Beraldo Leal
scrub_time = 43200
954 47 Beraldo Leal
955 47 Beraldo Leal
# Directory that the scrubber will use to remind itself of what to delete
956 47 Beraldo Leal
# Make sure this is also set in glance-scrubber.conf
957 47 Beraldo Leal
scrubber_datadir = /var/lib/glance/scrubber
958 47 Beraldo Leal
959 47 Beraldo Leal
# =============== Image Cache Options =============================
960 47 Beraldo Leal
961 47 Beraldo Leal
# Base directory that the Image Cache uses
962 47 Beraldo Leal
image_cache_dir = /var/lib/glance/image-cache/
963 47 Beraldo Leal
964 47 Beraldo Leal
[paste_deploy]
965 47 Beraldo Leal
flavor = keystone
966 47 Beraldo Leal
</pre>
967 47 Beraldo Leal
968 47 Beraldo Leal
*/etc/glance/glance-api-paste.ini*:
969 47 Beraldo Leal
970 47 Beraldo Leal
<pre>
971 47 Beraldo Leal
# Default minimal pipeline
972 47 Beraldo Leal
[pipeline:glance-api]
973 47 Beraldo Leal
pipeline = versionnegotiation context apiv1app authtoken
974 47 Beraldo Leal
975 47 Beraldo Leal
# Use the following pipeline for keystone auth
976 47 Beraldo Leal
# i.e. in glance-api.conf:
977 47 Beraldo Leal
#   [paste_deploy]
978 47 Beraldo Leal
#   flavor = keystone
979 47 Beraldo Leal
#
980 47 Beraldo Leal
[pipeline:glance-api-keystone]
981 47 Beraldo Leal
pipeline = versionnegotiation authtoken context apiv1app
982 47 Beraldo Leal
983 47 Beraldo Leal
# Use the following pipeline to enable transparent caching of image files
984 47 Beraldo Leal
# i.e. in glance-api.conf:
985 47 Beraldo Leal
#   [paste_deploy]
986 47 Beraldo Leal
#   flavor = caching
987 47 Beraldo Leal
#
988 47 Beraldo Leal
[pipeline:glance-api-caching]
989 47 Beraldo Leal
pipeline = versionnegotiation context cache apiv1app
990 47 Beraldo Leal
991 47 Beraldo Leal
# Use the following pipeline for keystone auth with caching
992 47 Beraldo Leal
# i.e. in glance-api.conf:
993 47 Beraldo Leal
#   [paste_deploy]
994 47 Beraldo Leal
#   flavor = keystone+caching
995 47 Beraldo Leal
#
996 47 Beraldo Leal
[pipeline:glance-api-keystone+caching]
997 47 Beraldo Leal
pipeline = versionnegotiation authtoken context cache apiv1app
998 47 Beraldo Leal
999 47 Beraldo Leal
# Use the following pipeline to enable the Image Cache Management API
1000 47 Beraldo Leal
# i.e. in glance-api.conf:
1001 47 Beraldo Leal
#   [paste_deploy]
1002 47 Beraldo Leal
#   flavor = cachemanagement
1003 47 Beraldo Leal
#
1004 47 Beraldo Leal
[pipeline:glance-api-cachemanagement]
1005 47 Beraldo Leal
pipeline = versionnegotiation context cache cachemanage apiv1app
1006 47 Beraldo Leal
1007 47 Beraldo Leal
# Use the following pipeline for keystone auth with cache management
1008 47 Beraldo Leal
# i.e. in glance-api.conf:
1009 47 Beraldo Leal
#   [paste_deploy]
1010 47 Beraldo Leal
#   flavor = keystone+cachemanagement
1011 47 Beraldo Leal
#
1012 47 Beraldo Leal
[pipeline:glance-api-keystone+cachemanagement]
1013 47 Beraldo Leal
pipeline = versionnegotiation authtoken context cache cachemanage apiv1app
1014 47 Beraldo Leal
1015 47 Beraldo Leal
[app:apiv1app]
1016 47 Beraldo Leal
paste.app_factory = glance.common.wsgi:app_factory
1017 47 Beraldo Leal
glance.app_factory = glance.api.v1.router:API
1018 47 Beraldo Leal
1019 47 Beraldo Leal
[filter:versionnegotiation]
1020 47 Beraldo Leal
paste.filter_factory = glance.common.wsgi:filter_factory
1021 47 Beraldo Leal
glance.filter_factory = glance.api.middleware.version_negotiation:VersionNegotiationFilter
1022 47 Beraldo Leal
1023 47 Beraldo Leal
[filter:cache]
1024 47 Beraldo Leal
paste.filter_factory = glance.common.wsgi:filter_factory
1025 47 Beraldo Leal
glance.filter_factory = glance.api.middleware.cache:CacheFilter
1026 47 Beraldo Leal
1027 47 Beraldo Leal
[filter:cachemanage]
1028 47 Beraldo Leal
paste.filter_factory = glance.common.wsgi:filter_factory
1029 47 Beraldo Leal
glance.filter_factory = glance.api.middleware.cache_manage:CacheManageFilter
1030 47 Beraldo Leal
1031 47 Beraldo Leal
[filter:context]
1032 47 Beraldo Leal
paste.filter_factory = glance.common.wsgi:filter_factory
1033 47 Beraldo Leal
glance.filter_factory = glance.common.context:ContextMiddleware
1034 47 Beraldo Leal
1035 47 Beraldo Leal
[filter:authtoken]
1036 47 Beraldo Leal
paste.filter_factory = keystone.middleware.auth_token:filter_factory
1037 47 Beraldo Leal
service_protocol = http
1038 47 Beraldo Leal
service_host = 192.168.69.1
1039 47 Beraldo Leal
service_port = 5000
1040 47 Beraldo Leal
auth_host = 192.168.69.1
1041 47 Beraldo Leal
auth_port = 35357
1042 47 Beraldo Leal
auth_protocol = http
1043 47 Beraldo Leal
auth_uri = http://192.168.69.1:5000/
1044 47 Beraldo Leal
admin_tenant_name = service
1045 47 Beraldo Leal
admin_user = glance
1046 47 Beraldo Leal
admin_password = glancepass
1047 47 Beraldo Leal
</pre>
1048 48 Beraldo Leal
1049 48 Beraldo Leal
*/etc/glance/glance-registry.conf*:
1050 48 Beraldo Leal
1051 48 Beraldo Leal
<pre>
1052 48 Beraldo Leal
[DEFAULT]
1053 48 Beraldo Leal
# Show more verbose log output (sets INFO log level output)
1054 48 Beraldo Leal
verbose = True
1055 48 Beraldo Leal
1056 48 Beraldo Leal
# Show debugging output in logs (sets DEBUG log level output)
1057 48 Beraldo Leal
debug = True
1058 48 Beraldo Leal
1059 48 Beraldo Leal
# Address to bind the registry server
1060 48 Beraldo Leal
bind_host = 0.0.0.0
1061 48 Beraldo Leal
1062 48 Beraldo Leal
# Port the bind the registry server to
1063 48 Beraldo Leal
bind_port = 9191
1064 48 Beraldo Leal
1065 48 Beraldo Leal
# Log to this file. Make sure you do not set the same log
1066 48 Beraldo Leal
# file for both the API and registry servers!
1067 48 Beraldo Leal
log_file = /var/log/glance/registry.log
1068 48 Beraldo Leal
1069 48 Beraldo Leal
# Backlog requests when creating socket
1070 48 Beraldo Leal
backlog = 4096
1071 48 Beraldo Leal
1072 48 Beraldo Leal
# SQLAlchemy connection string for the reference implementation
1073 48 Beraldo Leal
# registry server. Any valid SQLAlchemy connection string is fine.
1074 48 Beraldo Leal
# See: http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.html#sqlalchemy.create_engine
1075 48 Beraldo Leal
sql_connection = mysql://glance:glancepass@192.168.69.1/glance
1076 48 Beraldo Leal
1077 48 Beraldo Leal
# Period in seconds after which SQLAlchemy should reestablish its connection
1078 48 Beraldo Leal
# to the database.
1079 48 Beraldo Leal
#
1080 48 Beraldo Leal
# MySQL uses a default `wait_timeout` of 8 hours, after which it will drop
1081 48 Beraldo Leal
# idle connections. This can result in 'MySQL Gone Away' exceptions. If you
1082 48 Beraldo Leal
# notice this, you can lower this value to ensure that SQLAlchemy reconnects
1083 48 Beraldo Leal
# before MySQL can drop the connection.
1084 48 Beraldo Leal
sql_idle_timeout = 3600
1085 48 Beraldo Leal
1086 48 Beraldo Leal
# Limit the api to return `param_limit_max` items in a call to a container. If
1087 48 Beraldo Leal
# a larger `limit` query param is provided, it will be reduced to this value.
1088 48 Beraldo Leal
api_limit_max = 1000
1089 48 Beraldo Leal
1090 48 Beraldo Leal
# If a `limit` query param is not provided in an api request, it will
1091 48 Beraldo Leal
# default to `limit_param_default`
1092 48 Beraldo Leal
limit_param_default = 25
1093 48 Beraldo Leal
1094 48 Beraldo Leal
# Role used to identify an authenticated user as administrator
1095 48 Beraldo Leal
#admin_role = admin
1096 48 Beraldo Leal
1097 48 Beraldo Leal
# ================= Syslog Options ============================
1098 48 Beraldo Leal
1099 48 Beraldo Leal
# Send logs to syslog (/dev/log) instead of to file specified
1100 48 Beraldo Leal
# by `log_file`
1101 48 Beraldo Leal
use_syslog = True
1102 48 Beraldo Leal
1103 48 Beraldo Leal
# Facility to use. If unset defaults to LOG_USER.
1104 48 Beraldo Leal
# syslog_log_facility = LOG_LOCAL1
1105 48 Beraldo Leal
1106 48 Beraldo Leal
# ================= SSL Options ===============================
1107 48 Beraldo Leal
1108 48 Beraldo Leal
# Certificate file to use when starting registry server securely
1109 48 Beraldo Leal
# cert_file = /path/to/certfile
1110 48 Beraldo Leal
1111 48 Beraldo Leal
# Private key file to use when starting registry server securely
1112 48 Beraldo Leal
# key_file = /path/to/keyfile
1113 48 Beraldo Leal
1114 48 Beraldo Leal
[paste_deploy]
1115 48 Beraldo Leal
flavor = keystone
1116 48 Beraldo Leal
</pre>
1117 48 Beraldo Leal
1118 48 Beraldo Leal
1119 48 Beraldo Leal
*/etc/glance/glance-registry-paste.ini*:
1120 48 Beraldo Leal
1121 48 Beraldo Leal
<pre>
1122 48 Beraldo Leal
# Default minimal pipeline
1123 48 Beraldo Leal
[pipeline:glance-registry]
1124 48 Beraldo Leal
pipeline = context registryapp authtoken
1125 48 Beraldo Leal
1126 48 Beraldo Leal
# Use the following pipeline for keystone auth
1127 48 Beraldo Leal
# i.e. in glance-registry.conf:
1128 48 Beraldo Leal
#   [paste_deploy]
1129 48 Beraldo Leal
#   flavor = keystone
1130 48 Beraldo Leal
#
1131 48 Beraldo Leal
[pipeline:glance-registry-keystone]
1132 48 Beraldo Leal
pipeline = authtoken context registryapp
1133 48 Beraldo Leal
1134 48 Beraldo Leal
[app:registryapp]
1135 48 Beraldo Leal
paste.app_factory = glance.common.wsgi:app_factory
1136 48 Beraldo Leal
glance.app_factory = glance.registry.api.v1:API
1137 48 Beraldo Leal
1138 48 Beraldo Leal
[filter:context]
1139 48 Beraldo Leal
context_class = glance.registry.context.RequestContext
1140 48 Beraldo Leal
paste.filter_factory = glance.common.wsgi:filter_factory
1141 48 Beraldo Leal
glance.filter_factory = glance.common.context:ContextMiddleware
1142 48 Beraldo Leal
1143 48 Beraldo Leal
[filter:authtoken]
1144 48 Beraldo Leal
paste.filter_factory = keystone.middleware.auth_token:filter_factory
1145 48 Beraldo Leal
service_protocol = http
1146 48 Beraldo Leal
service_host = 192.168.69.1
1147 48 Beraldo Leal
service_port = 5000
1148 48 Beraldo Leal
auth_host = 192.168.69.1
1149 48 Beraldo Leal
auth_port = 35357
1150 48 Beraldo Leal
auth_protocol = http
1151 48 Beraldo Leal
auth_uri = http://192.168.69.1:5000/
1152 48 Beraldo Leal
admin_tenant_name = service
1153 48 Beraldo Leal
admin_user = glance
1154 48 Beraldo Leal
admin_password = glancepass
1155 49 Beraldo Leal
</pre>
1156 48 Beraldo Leal
1157 49 Beraldo Leal
*/etc/glance/glance-scrubber.conf*:
1158 49 Beraldo Leal
1159 49 Beraldo Leal
<pre>
1160 49 Beraldo Leal
[DEFAULT]
1161 49 Beraldo Leal
# Show more verbose log output (sets INFO log level output)
1162 49 Beraldo Leal
verbose = True
1163 49 Beraldo Leal
1164 49 Beraldo Leal
# Show debugging output in logs (sets DEBUG log level output)
1165 49 Beraldo Leal
debug = False
1166 49 Beraldo Leal
1167 49 Beraldo Leal
# Log to this file. Make sure you do not set the same log
1168 49 Beraldo Leal
# file for both the API and registry servers!
1169 49 Beraldo Leal
log_file = /var/log/glance/scrubber.log
1170 49 Beraldo Leal
1171 49 Beraldo Leal
# Send logs to syslog (/dev/log) instead of to file specified by `log_file`
1172 49 Beraldo Leal
use_syslog = False
1173 49 Beraldo Leal
1174 49 Beraldo Leal
# Should we run our own loop or rely on cron/scheduler to run us
1175 49 Beraldo Leal
daemon = False
1176 49 Beraldo Leal
1177 49 Beraldo Leal
# Loop time between checking for new items to schedule for delete
1178 49 Beraldo Leal
wakeup_time = 300
1179 49 Beraldo Leal
1180 49 Beraldo Leal
sql_connection = mysql://glance:glancepass@192.168.69.1/glance
1181 49 Beraldo Leal
1182 49 Beraldo Leal
# Directory that the scrubber will use to remind itself of what to delete
1183 49 Beraldo Leal
# Make sure this is also set in glance-api.conf
1184 49 Beraldo Leal
scrubber_datadir = /var/lib/glance/scrubber
1185 49 Beraldo Leal
1186 49 Beraldo Leal
# Only one server in your deployment should be designated the cleanup host
1187 49 Beraldo Leal
cleanup_scrubber = False
1188 49 Beraldo Leal
1189 49 Beraldo Leal
# pending_delete items older than this time are candidates for cleanup
1190 49 Beraldo Leal
cleanup_scrubber_time = 86400
1191 49 Beraldo Leal
1192 49 Beraldo Leal
# Address to find the registry server for cleanups
1193 49 Beraldo Leal
registry_host = 0.0.0.0
1194 49 Beraldo Leal
1195 49 Beraldo Leal
# Port the registry server is listening on
1196 49 Beraldo Leal
registry_port = 9191
1197 48 Beraldo Leal
</pre>
1198 50 Beraldo Leal
1199 50 Beraldo Leal
h2. Sincronizando o banco e reiniciando os servicos:
1200 50 Beraldo Leal
1201 50 Beraldo Leal
<pre>
1202 50 Beraldo Leal
# glance-manage version_control 0
1203 50 Beraldo Leal
# glance-manage db_sync
1204 50 Beraldo Leal
# service glance-registry restart
1205 50 Beraldo Leal
# service glance-api restart
1206 50 Beraldo Leal
</pre>
1207 50 Beraldo Leal
1208 50 Beraldo Leal
h2. Testando a instalacao do Glance:
1209 50 Beraldo Leal
1210 52 Beraldo Leal
O arquivo _/root/openstackrc_ recebera novas variaveis de ambiente. Ele deve ficar assim:
1211 52 Beraldo Leal
<pre>
1212 52 Beraldo Leal
# Used for Keystone
1213 52 Beraldo Leal
export SERVICE_ENDPOINT=http://192.168.69.1:35357/v2.0/
1214 52 Beraldo Leal
export SERVICE_TOKEN=012345SECRET99TOKEN012345
1215 52 Beraldo Leal
1216 52 Beraldo Leal
# Used for swift
1217 52 Beraldo Leal
export ST_AUTH=http://192.168.69.1:5000/v2.0
1218 52 Beraldo Leal
export ST_USER=openstackDemo:admin
1219 52 Beraldo Leal
export ST_KEY=adminpass
1220 52 Beraldo Leal
export OS_REGION_NAME=RegionOne
1221 52 Beraldo Leal
1222 52 Beraldo Leal
# Used for glance
1223 52 Beraldo Leal
export OS_USERNAME=admin
1224 52 Beraldo Leal
export OS_TENANT_NAME=openstackDemo
1225 52 Beraldo Leal
export OS_PASSWORD=adminpass
1226 52 Beraldo Leal
export OS_AUTH_URL=http://192.168.69.1:5000/v2.0/
1227 52 Beraldo Leal
export OS_REGION_NAME=RegionOne
1228 52 Beraldo Leal
</pre>
1229 52 Beraldo Leal
1230 52 Beraldo Leal
1231 50 Beraldo Leal
Obtenha imagem de teste:
1232 50 Beraldo Leal
<pre>
1233 50 Beraldo Leal
mkdir /tmp/images
1234 50 Beraldo Leal
cd /tmp/images/
1235 50 Beraldo Leal
wget http://smoser.brickies.net/ubuntu/ttylinux-uec/ttylinux-uec-amd64-12.1_2.6.35-22_1.tar.gz
1236 50 Beraldo Leal
tar -zxvf ttylinux-uec-amd64-12.1_2.6.35-22_1.tar.gz
1237 50 Beraldo Leal
</pre>
1238 50 Beraldo Leal
1239 50 Beraldo Leal
Suba as imagens, fazendo as devidas substituicoes:
1240 50 Beraldo Leal
1241 50 Beraldo Leal
<pre>
1242 50 Beraldo Leal
# cd /tmp/images/
1243 50 Beraldo Leal
# glance add name="tty-linux-kernel" disk_format=aki container_format=aki < ttylinux-uec-amd64-12.1_2.6.35-22_1-vmlinuz 
1244 50 Beraldo Leal
# glance add name="tty-linux-ramdisk" disk_format=ari container_format=ari < ttylinux-uec-amd64-12.1_2.6.35-22_1-loader 
1245 50 Beraldo Leal
# glance add name="tty-linux" disk_format=ami container_format=ami kernel_id=[kernel_image_id] ramdisk_id=[kernel_ramdisk_image_id] < ttylinux-uec-amd64-12.1_2.6.35-22_1.img 
1246 50 Beraldo Leal
</pre>
1247 51 Beraldo Leal
1248 51 Beraldo Leal
Liste as imagens:
1249 51 Beraldo Leal
1250 51 Beraldo Leal
<pre>
1251 51 Beraldo Leal
# glance index
1252 51 Beraldo Leal
</pre>