Ambiente » History » Version 54

Beraldo Leal, 17 Jul 2012 19:03

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