Ambiente » History » Version 56

Beraldo Leal, 17 Jul 2012 19:34

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