Ambiente » History » Version 57

Beraldo Leal, 17 Jul 2012 19:38

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