Ambiente » History » Version 52

Beraldo Leal, 07 Jun 2012 16:55

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