Ambiente » History » Version 29

« Previous - Version 29/87 (diff) - Next » - Current version
Beraldo Leal, 07 Jun 2012 12:18


Ambiente de Desenvolvimento

Lista de Servidores

  • educloud00 - 200.145.46.166
  • educloud01 - 200.145.46.167
  • educloud02 - 200.145.46.168
  • educloud03 - 200.145.46.169
  • educloud04 - 200.145.46.170
  • educloud05 - 200.145.46.174
  • educloud06 - 200.145.46.175
  • educloud07 - 200.145.46.173

Desabilitados

  • educloud05 - 200.145.46.171
  • educloud06 - 200.145.46.172

Documentação do OpenStack

keystone

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.

Este software é feito em python, e por sua vez instala a dependencia keystone-python, uma biblioteca em python para uso do próprio keystone.

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.

Além do daemon (servidor) foi instalado o cliente (também feito em python) python-keystoneclient.

Instalando e configurando o keystone
# apt-get install keystone

Delete the keystone.db file created in the /var/lib/keystone directory.

# rm /var/lib/keystone/keystone.db

Install mysql:

# apt-get install python-mysqldb mysql-server

Use sed to edit /etc/mysql/my.cnf to change bind-address from localhost
(127.0.0.1) to any (0.0.0.0) and restart the mysql service, as root:

# sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
# service mysql restart

To configure the MySQL database, create the keystone database.

# mysql -u root -p
mysql> CREATE DATABASE keystone;
mysql> GRANT ALL ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystonepass';
mysql> FLUSH PRIVILEGES;
mysql> quit;

Edit keystone.conf to use mysql:

[sql]
connection = mysql://keystone:keystonepass@192.168.69.1/keystone

Change in keystone.conf the ADMIN_TOKEN:

admin_token = 012345SECRET99TOKEN012345

Restarte o keystone e inicialize o banco:

# service keystone restart
# keystone-manage db_sync
Configuring Services to work with Keystone

Crie o arquivo /root/openstackrc, com o seguinte conteudo:

export SERVICE_ENDPOINT=http://192.168.69.1:35357/v2.0/
export SERVICE_TOKEN=012345SECRET99TOKEN012345

Estas variaveis de ambiente sao uteis para evitar ficar passando as opcoes --token e --endpoint para os utilitarios de linha de comando.

Carrege o arquivo:

# source /root/openstackrc

Crie os tenants openstackDemo e service:

# keystone tenant-create --name openstackDemo --description "Default Tenant"  --enabled true
# keystone tenant-create --name service --description "Service Tenant"  --enabled true

Crie o user admin, substitua o tenant_id pelo tentant_id do openstackDemo, criado no item anterior:

# keystone user-create --tenant_id 9c401c9d2b9d41bcabda6919d4aec63a --name admin --pass adminpass --enabled true

Crie os roles admin e user:

# keystone role-create --name admin
# keystone role-create --name user

Adicione o user admin ao role admin, fazendo as devidas substituicoes:

# keystone user-role-add --user [admin_user_id] --tenant_id [openstackDemo_tenant_id] --role [admin_role]

Crie um usuario para cada servico, e substitua o tenant_id pelo id do tenant service:

# keystone user-create --tenant_id 92920816c7704a8a95c916d34dc7a05c --name glance --pass glancepass --enabled true
# keystone user-create --tenant_id 92920816c7704a8a95c916d34dc7a05c --name nova --pass novapass --enabled true
# keystone user-create --tenant_id 92920816c7704a8a95c916d34dc7a05c --name swift --pass swiftpass --enabled true

Adicione os users acima ao role admin, fazendo as devidas substituicoes:

# keystone user-role-add --user [glance_user_id] --tenant_id [service_tenant_id] --role [admin_role]
# keystone user-role-add --user [nova_user_id] --tenant_id [service_tenant_id] --role [admin_role]
# keystone user-role-add --user [swift_user_id] --tenant_id [service_tenant_id] --role [admin_role]

Also available in: PDF HTML TXT