Premiers pas, “Hello cloud !”

Une fois le client fonctionnel, utiliser une instance cloud se fait en 4 étapes :

  1. fourniture au cloud d’une paire de clé SSH pour accéder aux instances ;
  2. instancier un serveur ;
  3. (optionnel) ajouter une IP publique à l’instance ;
  4. se connecter à l’instance.

Créer une paire de clés SSH

Cette clé permettra d’établir la session SSH vers les instances :

% ssh-keygen -t rsa -f ~/.novacreds/cloudkey
[...]

Il faut ensuite fournir la clé publique à Openstack qui sera injectée dans les VMs pour le compte root :

% openstack keypair create --public-key $HOME/.novacreds/cloudkey.pub cloudkey

Pour vérifier les paires de clés disponibles :

% openstack keypair list
+----------+-------------------------------------------------+
|   Name   |                   Fingerprint                   |
+----------+-------------------------------------------------+
| cloudkey | 01:4a:cb:05:ff:6a:67:6e:c6:50:e8:a0:eb:ef:e7:95 |
+----------+-------------------------------------------------+

Lister les images disponibles

% openstack image list
+--------------------------------------+-----------------------+--------+-------------------------+
| ID                                   | Name                  | Status | Server                  |
+--------------------------------------+-----------------------+--------+-------------------------+
| 1e6104b4-d915-4925-832b-798c3ea3b426 | scientific.linux-5.8  | ACTIVE |                         |
| b5a7711d-f0eb-4a31-98e6-69ef2ed09b6a | scientific.linux-6.2  | ACTIVE |                         |
+--------------------------------------+-----------------------+--------+-------------------------+

Lister les flavors disponibles

Les flavors représentent les types de machines virtuelles à disposition. Ils déterminent les caractéristiques des machines virtuelles :

% openstack flavor list
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| ID | Name      | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | extra_specs |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| 1  | m1.tiny   | 512       | 0    | 0         |      | 1     | 1.0         | True      | {}          |
| 2  | m1.small  | 2048      | 10   | 20        |      | 1     | 1.0         | True      | {}          |
| 3  | m1.medium | 4096      | 10   | 40        |      | 2     | 1.0         | True      | {}          |
| 4  | m1.large  | 8192      | 10   | 80        |      | 4     | 1.0         | True      | {}          |
| 5  | m1.xlarge | 16384     | 10   | 160       |      | 8     | 1.0         | True      | {}          |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+

Démarrer une instance

Pour lancer l’instance :

% openstack server create --key-name cloudkey --image SL6.2-x86_64 --flavor m1.tiny mavm
[...]

On peut vérifier l’état des VM :

% openstack server list

Pour restreindre la vérification à une VM particulière avec son nom :

% openstack server show mavm
+--------------------------------------+----------+--------+--------------------------------------+
| ID                                   | Name     | Status | Networks                             |
+--------------------------------------+----------+--------+--------------------------------------+
| b87775cc-5dad-4de7-a84e-84e2cdf50c2a | mavm     | ACTIVE | mynet=172.17.15.4                    |
+--------------------------------------+----------+--------+--------------------------------------+

(optionnel) Ajouter une IP publique

Selon le mode réseau dans lequel est configuré le projet Openstack, il est nécessaire (ou pas) d’associer une IP flottante (NAT) à la VM pour la connecter au réseau.

Créer une adresse IP flottante :

% openstack floating ip create floating
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| created_at          | 2017-10-24T09:22:35Z                 |
| description         |                                      |
| fixed_ip_address    | None                                 |
| floating_ip_address | 134.158.246.17                       |
| floating_network_id | 8358e0b1-cc39-490a-a86e-a141094b5c95 |
| id                  | 41ee109f-f702-4095-a208-448cb6126145 |
| name                | 134.158.246.17                       |
| port_id             | None                                 |
| project_id          | 0223bc1968bc4e46932c5d87012aaf14     |
| revision_number     | 1                                    |
| router_id           | None                                 |
| status              | DOWN                                 |
| updated_at          | 2017-10-24T09:22:35Z                 |
+---------------------+--------------------------------------+

Il faut ensuite affecter l’adresse IP à la machine :

% openstack server add floating ip mavm 134.158.246.17
% openstack server show mavm
+--------------------------+------------+--------+-----------------------+
|            ID            |    Name    | Status |        Networks       |
+--------------------------+------------+--------+-----------------------+
| b3741a0d-e5cd-411c-abe8  | mavm       | ACTIVE | ccin2p3=134.158.246.5,
134.158.246.17 |
+--------------------------+------------+--------+-----------------------+

Dire bonjour

% ssh -i ~/.novacreds/cloudkey root@134.158.246.25 echo "hello world"
hello world

Supprimer l’instance

% openstack server delete mavm