Vous êtes sur la page 1sur 7

kokou Agbedanou

Gestion du dashboard

1. La brique Horizon

OpenStack peut être utilisé de plusieurs façons :

ˇ
via la ligne de commande (commande de type nova boot, keystone user-list, glance image...),
ˇ
via son API depuis des accès externes,
ˇ
via une interface web appelée Horizon.

Horizon fournit le portail de self-service (un des points qui définissent le cloud computing) : un utilisateur
peut se connecter, il interroge Keystone et, en fonction de ses droits, il peut effectuer des actions :

ˇ
Créer des réseaux.
ˇ
Créer des VM et les instancier.
ˇ
Créer des images.
ˇ
...

Pour afficher toutes les informations des autres services de la stack, Horizon est en interaction avec tous
les services via le bus de message d’OpenStack et l’accès aux API public des services.

2. Ma première VM : création express

Pour pouvoir utiliser Horizon et provisionner une première VM, il faut que les services Horizon, Nova,
Neutron et Glance soient a minima installés.

L’accès s’effectue alors en utilisant un navigateur web :

© Editions ENI - Tous droits réservés - Copie personnelle de kokou Agbedanou -1-
kokou Agbedanou

http://<IP_publique>/horizon
User : admin
Password : admin_pass

a. Étapes de création

Les étapes pour créer une VM en moins de cinq minutes sont les suivantes :

ˇ
Créer un tenant (un projet) : Tenant_ID.
ˇ
Créer un utilisateur : User_ID.
ˇ
Rattacher l’utilisateur au projet.
ˇ
Donner un rôle au projet (member).
ˇ
Créer un réseau (network) pour le projet.
ˇ
Créer un subnet (ex : 192.168.1.0/24) ; le routeur récupérera la 192.168.1.1.
ˇ
Créer un routeur : router_proj_one.
ˇ
Ajouter le routeur : router_proj_one.
ˇ
Ajouter le routeur à l’agent L3.
ˇ
Ajouter le router au subnet.

b. Commandes détaillées

Créer un projet : keystone tenant-create --name project_one

# keystone tenant-create --name project_one


+ -------------+----------------------------------+
| Property | Value |
+ -------------+----------------------------------+
| description | |
| enabled | True |
| id | fb727529fd32488ea7a68d3ed6b3c588 |

© Editions ENI - Tous droits réservés - Copie personnelle de kokou Agbedanou -2-
kokou Agbedanou

| name | project_one |
+-------------+----------------------------------+

Créer un nouvel utilisateur : keystone user-create --name=user_one --pass=user_one --tenant-id


$put_id_of_project_one --email=user_one@domain.com.

# keystone user-create --name=user_one --pass=user_one -tenant-


id fb727529fd32488ea7a68d3ed6b3c588 --email=user_one@domain.com
+ ----------+----------------------------------+
| Property | Value |
+ ----------+----------------------------------+
| email | user_one@domain.com |
| enabled | True |
| id | b795943dc75c47c88d42b4ef9a0fcc77 |
| name | user_one |
| tenantId | fb727529fd32488ea7a68d3ed6b3c588 |
+ ----------+----------------------------------+

Lister les rôles disponibles dans keystone : keystone role-list (il faut conserver l’id du rôle en question).

# keystone role-list
+ ----------------------------------+----------------------+
| id | name |
+ ----------------------------------+----------------------+
| 791c600f5a5044ce8336de43452f6bdb | KeystoneAdmin |
| a5a54ffaf6b04e4ba4024a076ef36aee | KeystoneServiceAdmin |
| 708cea3c4fe540aca301bf64a88a5525 | Member |
| 9fe2ff9ee4384b1894a90878d3e92bab | _member_ |
| 597a35aff9ff4f3a864c26bb67b64d5d | admin |
+ ----------------------------------+----------------------+

Assigner un rôle au nouvel utilisateur : keystone user-role-add --tenant-id

© Editions ENI - Tous droits réservés - Copie personnelle de kokou Agbedanou -3-
kokou Agbedanou

$put_id_of_project_one --user-id $put_id_of_user_one --role-id $put_id_of_member_role.

# keystone user-role-add --tenant-id


fb727529fd32488ea7a68d3ed6b3c588 --user-id
b795943dc75c47c88d42b4ef9a0fcc77 --role-id
708cea3c4fe540aca301bf64a88a5525 fcc77 --role-id 708cea3c4fe540

Créer un réseau pour le nouveau projet : neutron net-create --tenant-id $put_id_of_project_one


net_proj_one.

# neutron net-create --tenant-id fb727529fd32488ea7a68d3ed6b3c588


net-proj-one
Created a new network:
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | True |
| id | a43c9a32-b907-4a1e-b680-c5fd3635c062 |
| name | net-proj-one |
| provider:network_type | gre |
| provider:physical_network | |
| provider:segmentation_id | 1 |
| router:external | False |
| shared | False |
| status | ACTIVE |
| subnets | |
| tenant_id | fb727529fd32488ea7a68d3ed6b3c588 |
+---------------------------+--------------------------------------+

Créer un sous réseau : neutron subnet-create --tenant-id $put_id_of_project_one net_proj_one 50.50.1.0/24

# neutron subnet-create --tenant-id

© Editions ENI - Tous droits réservés - Copie personnelle de kokou Agbedanou -4-
kokou Agbedanou

fb727529fd32488ea7a68d3ed6b3c588 net-proj-one 50.50.1.0/ 24


Created a new subnet:
+------------------+----------------------------------------------+
| Field | Value |
+------------------+----------------------------------------------+
| allocation_pools | {"start": "50.50.1.2", "end": "50.50.1.254"} |
| cidr | 50.50.1.0/ 24 |
| dns_nameservers | |
| enable_dhcp | True |
| gateway_ip | 50.50.1.1 |
| host_routes | |
| id | 44468339-2fdc-46e4-a233-62f7e619adf4 |
| ip_version |4 |
| name | |
| network_id | a43c9a32-b907-4a1e-b680-c5fd3635c062 |
| tenant_id | fb727529fd32488ea7a68d3ed6b3c588 |
+------------------+----------------------------------------------+

Créer un routeur pour le nouveau projet : neutron router-create --tenant-id $put_id_of_project_one


router_proj_one

# neutron router-create --tenant-id


fb727529fd32488ea7a68d3ed6b3c588 router-proj-one
Created a new router:
+ -----------------------+--------------------------------------+
| Field | Value |
+ -----------------------+--------------------------------------+
| admin_state_up | True |
| external_gateway_info | |
| id | 42c59768-3bc6-4990-958f-19d1e0ac6cc1 |
| name | router-proj-one |
| status | ACTIVE |
| tenant_id | fb727529fd32488ea7a68d3ed6b3c588 |
+ -----------------------+--------------------------------------+

© Editions ENI - Tous droits réservés - Copie personnelle de kokou Agbedanou -5-
kokou Agbedanou

Lister les agents neutron et garder l’id du L3 : neutron agent-list

# neutron agent-list
+ --------------------------------------+--------------------+---
----+-----------------------+
| id | agent_type |
host | alive | admin_state_up |
+ --------------------------------------+--------------------+---
----+-----------------------+
| 23b6474b-b355-4bac-9e15-417191b497b6 | Open vSwitch agent |
ubuntu | :-) | True |
| 6c47199a-1d96-4476-9599-aac04e5d8048 | DHCP agent |
ubuntu | :-) | True |
| e0345243-bead-47c1-9b1d-2d2ca3ccf806 | L3 agent |
ubuntu | :-) | True |
+ --------------------------------------+--------------------+---
----+-----------------------+

Ajouter le routeur à l’agent L3 : neutron l3-agent-router-add $l3_agent_ID router_proj_one

# neutron l3-agent-router-add e0345243-bead-47c1-9b1d-


2 d2ca3ccf806 router-proj-one
Added router router-proj-one to L3 agent

Ajouter le routeur au subnet : neutron router-interface-add $put_router_proj_one_id_here


$put_subnet_id_here

# neutron router-interface-add 42c59768-3bc6-4990-958f-


19d1e0ac6cc1 44468339-2fdc-46e4-a233-62f7e619adf4
Added interface to router 42c59768-3bc6-4990-958f -19d1e0ac6cc1

Redémarrer les services Neutron :

© Editions ENI - Tous droits réservés - Copie personnelle de kokou Agbedanou -6-
kokou Agbedanou

# cd /etc/init.d/; for i in $( ls neutron-* ); do sudo service $i


restart; done

La première VM peut désormais être créée via l’interface Horizon !

 Bien évidemment, toutes les étapes présentées ci-dessus peuvent être scriptées.

© Editions ENI - Tous droits réservés - Copie personnelle de kokou Agbedanou -7-

Vous aimerez peut-être aussi