Ambiente » History » Version 32

Beraldo Leal, 07 Jun 2012 12:25

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 30 Beraldo Leal
h1. Documentação do OpenStack
20 3 Beraldo Leal
21 30 Beraldo Leal
h2. keystone
22 3 Beraldo Leal
23 4 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 _educloud02_.
24 4 Beraldo Leal
25 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.
26 4 Beraldo Leal
27 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.
28 4 Beraldo Leal
29 4 Beraldo Leal
Além do daemon (servidor) foi instalado o cliente (também feito em python) *_python-keystoneclient_*.
30 5 Beraldo Leal
31 30 Beraldo Leal
h3. Instalando e configurando o keystone
32 5 Beraldo Leal
33 1 Beraldo Leal
<pre>
34 18 Beraldo Leal
# apt-get install keystone
35 18 Beraldo Leal
</pre>
36 18 Beraldo Leal
37 18 Beraldo Leal
Delete the keystone.db file created in the /var/lib/keystone directory.
38 18 Beraldo Leal
39 18 Beraldo Leal
<pre>
40 18 Beraldo Leal
# rm /var/lib/keystone/keystone.db
41 18 Beraldo Leal
</pre>
42 18 Beraldo Leal
43 18 Beraldo Leal
Install mysql:
44 18 Beraldo Leal
45 18 Beraldo Leal
<pre>
46 18 Beraldo Leal
# apt-get install python-mysqldb mysql-server
47 11 Beraldo Leal
</pre>
48 19 Beraldo Leal
49 19 Beraldo Leal
Use sed to edit /etc/mysql/my.cnf to change bind-address from localhost
50 19 Beraldo Leal
(127.0.0.1) to any (0.0.0.0) and restart the mysql service, as root:
51 19 Beraldo Leal
52 19 Beraldo Leal
<pre>
53 19 Beraldo Leal
# sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
54 19 Beraldo Leal
# service mysql restart
55 19 Beraldo Leal
</pre>
56 19 Beraldo Leal
57 19 Beraldo Leal
To configure the MySQL database, create the keystone database.
58 19 Beraldo Leal
59 19 Beraldo Leal
<pre>
60 19 Beraldo Leal
# mysql -u root -p
61 19 Beraldo Leal
mysql> CREATE DATABASE keystone;
62 19 Beraldo Leal
mysql> GRANT ALL ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystonepass';
63 19 Beraldo Leal
mysql> FLUSH PRIVILEGES;
64 19 Beraldo Leal
mysql> quit;
65 19 Beraldo Leal
</pre>
66 20 Beraldo Leal
67 20 Beraldo Leal
Edit _*keystone.conf*_ to use mysql:
68 20 Beraldo Leal
69 20 Beraldo Leal
<pre>
70 20 Beraldo Leal
[sql]
71 20 Beraldo Leal
connection = mysql://keystone:keystonepass@192.168.69.1/keystone
72 21 Beraldo Leal
</pre>
73 21 Beraldo Leal
74 21 Beraldo Leal
Change in _*keystone.conf*_ the ADMIN_TOKEN:
75 21 Beraldo Leal
76 20 Beraldo Leal
<pre>
77 21 Beraldo Leal
admin_token = 012345SECRET99TOKEN012345
78 21 Beraldo Leal
</pre>
79 22 Beraldo Leal
80 22 Beraldo Leal
Restarte o keystone e inicialize o banco:
81 22 Beraldo Leal
82 22 Beraldo Leal
<pre>
83 22 Beraldo Leal
# service keystone restart
84 22 Beraldo Leal
# keystone-manage db_sync
85 22 Beraldo Leal
</pre>
86 23 Beraldo Leal
87 30 Beraldo Leal
h3. Configuring Services to work with Keystone
88 23 Beraldo Leal
89 23 Beraldo Leal
Crie o arquivo _*/root/openstackrc*_, com o seguinte conteudo:
90 23 Beraldo Leal
91 23 Beraldo Leal
<pre>
92 23 Beraldo Leal
export SERVICE_ENDPOINT=http://192.168.69.1:35357/v2.0/
93 23 Beraldo Leal
export SERVICE_TOKEN=012345SECRET99TOKEN012345
94 23 Beraldo Leal
</pre>
95 23 Beraldo Leal
96 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. 
97 23 Beraldo Leal
98 23 Beraldo Leal
Carrege o arquivo:
99 23 Beraldo Leal
100 23 Beraldo Leal
<pre>
101 23 Beraldo Leal
# source /root/openstackrc
102 23 Beraldo Leal
</pre>
103 24 Beraldo Leal
104 26 Beraldo Leal
Crie os *tenants* _openstackDemo_ e _service_:
105 24 Beraldo Leal
106 24 Beraldo Leal
<pre>
107 24 Beraldo Leal
# keystone tenant-create --name openstackDemo --description "Default Tenant"  --enabled true
108 24 Beraldo Leal
# keystone tenant-create --name service --description "Service Tenant"  --enabled true
109 24 Beraldo Leal
</pre>
110 25 Beraldo Leal
111 27 Beraldo Leal
Crie o *user* _admin_, substitua o tenant_id pelo tentant_id do openstackDemo, criado no item anterior:
112 25 Beraldo Leal
113 1 Beraldo Leal
<pre>
114 1 Beraldo Leal
# keystone user-create --tenant_id 9c401c9d2b9d41bcabda6919d4aec63a --name admin --pass adminpass --enabled true
115 26 Beraldo Leal
</pre>
116 26 Beraldo Leal
117 26 Beraldo Leal
Crie os *roles* _admin_ e _user_:
118 26 Beraldo Leal
119 26 Beraldo Leal
<pre>
120 26 Beraldo Leal
# keystone role-create --name admin
121 1 Beraldo Leal
# keystone role-create --name user
122 27 Beraldo Leal
</pre>
123 27 Beraldo Leal
124 27 Beraldo Leal
Adicione o *user* _admin_ ao *role* _admin_, fazendo as devidas substituicoes:
125 27 Beraldo Leal
126 27 Beraldo Leal
<pre>
127 29 Beraldo Leal
# keystone user-role-add --user [admin_user_id] --tenant_id [openstackDemo_tenant_id] --role [admin_role]
128 29 Beraldo Leal
</pre>
129 29 Beraldo Leal
130 29 Beraldo Leal
Crie um usuario para cada servico, e substitua o tenant_id pelo id do tenant *service*:
131 29 Beraldo Leal
132 29 Beraldo Leal
<pre>
133 29 Beraldo Leal
# keystone user-create --tenant_id 92920816c7704a8a95c916d34dc7a05c --name glance --pass glancepass --enabled true
134 29 Beraldo Leal
# keystone user-create --tenant_id 92920816c7704a8a95c916d34dc7a05c --name nova --pass novapass --enabled true
135 29 Beraldo Leal
# keystone user-create --tenant_id 92920816c7704a8a95c916d34dc7a05c --name swift --pass swiftpass --enabled true
136 29 Beraldo Leal
</pre>
137 29 Beraldo Leal
138 29 Beraldo Leal
Adicione os users acima ao *role* _admin_, fazendo as devidas substituicoes:
139 29 Beraldo Leal
140 29 Beraldo Leal
<pre>
141 29 Beraldo Leal
# keystone user-role-add --user [glance_user_id] --tenant_id [service_tenant_id] --role [admin_role]
142 29 Beraldo Leal
# keystone user-role-add --user [nova_user_id] --tenant_id [service_tenant_id] --role [admin_role]
143 29 Beraldo Leal
# keystone user-role-add --user [swift_user_id] --tenant_id [service_tenant_id] --role [admin_role]
144 25 Beraldo Leal
</pre>
145 31 Beraldo Leal
146 31 Beraldo Leal
h3. Definindo os servicos:
147 31 Beraldo Leal
148 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.
149 31 Beraldo Leal
150 31 Beraldo Leal
Crie os servicos:
151 31 Beraldo Leal
152 31 Beraldo Leal
<pre>
153 31 Beraldo Leal
# keystone service-create --name keystone --type identity --description "Keystone Identity Service" 
154 31 Beraldo Leal
# keystone service-create --name nova --type compute --description "Nova Compute Service"
155 31 Beraldo Leal
# keystone service-create --name volume --type volume --description "Nova Volume Service"
156 31 Beraldo Leal
# keystone service-create --name glance --type image --description "Glance Image Service"
157 31 Beraldo Leal
# keystone service-create --name swift --type object-storage --description "Object Storage Service"
158 31 Beraldo Leal
</pre>
159 32 Beraldo Leal
160 32 Beraldo Leal
Crie os endpoints para os respectivos servicos:
161 32 Beraldo Leal
162 32 Beraldo Leal
<pre>
163 32 Beraldo Leal
# keystone endpoint-create --region RegionOne --service_id d6b32583a6694e9b828b2a50037623ba --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
164 32 Beraldo Leal
# keystone endpoint-create --region RegionOne --service_id 00486163c7c64c6a86f577627071aafc --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'
165 32 Beraldo Leal
# keystone endpoint-create --region RegionOne --service_id 69d3a6b21c9348acb1042d7d9386ff81 --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'
166 32 Beraldo Leal
# keystone endpoint-create --region RegionOne --service_id 69d3a6b21c9348acb1042d7d9386ff81 --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'
167 32 Beraldo Leal
# keystone endpoint-create --region RegionOne --service_id f7f964a71e2a45119dcaede68fafbd78 --publicurl http://192.168.69.1:9292/v1 --internalurl http://192.168.69.1:9292/v1 --adminurl http://192.168.69.1:9292/v1
168 32 Beraldo Leal
# keystone endpoint-create --region RegionOne --service_id 7b09782f9faf448781f5a460acabe258 --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'
169 32 Beraldo Leal
</pre>