Working with images/fr: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
(Created page with "où * <path-to-local-file-image> est le chemin vers le fichier qui contient l'image à téléverser; * <format> est le format du disque; si aucun format n'est spécifié, le f...")
No edit summary
 
(39 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages />
<languages />
''Page enfant de [[Cloud/fr|Service infonuagique de Calcul Canada]]''
''Page enfant de [[Cloud/fr|Service infonuagique]]''


Images are files which contain the contents of a virtual disk. Often Images contain a base operating system used to create a volume or an ephemeral disk from which a virtual machine boots. An ephemeral disk is a virtual disk file which resides on the host (or hypervisor) where the virtual machine runs. Ephemeral disk files are destroyed when a VM is destroyed, in contrast to [[Working_with_volumes|volumes]]. Images are portable in that they can be downloaded from the cloud, used to create a virtual machine using virtual box or similar on your laptop, and uploaded to another cloud and used to create a new virtual machine. This is not the case with volumes or ephemeral disks. Images come in a variety of formats. Some commonly encountered formats are, raw, qcow2, vmdk, and vdi.
Une image est un fichier dont le contenu est le même que celui d'un disque virtuel. Une image contient souvent un système d'exploitation de base utilisé pour créer un volume ou un disque éphémère à partir duquel une instance est lancée. Un disque éphémère est un disque virtuel qui réside sur l'hôte (hyperviseur) où l'instance est exécutée. Contrairement aux fichiers d'un volume, les fichiers d'un disque éphémère sont supprimés lorsque l'instance est supprimée. La portabilité d'une image fait qu'elle peut être téléchargée d'un nuage; être utilisée pour créer une instance sur votre ordinateur avec VirtualBox ou un autre outil semblable ou; téléversée sur un autre nuage pour créer une nouvelle instance. Un volume et un disque éphémère n'offrent pas ces possibilités. Il existe plusieurs formats d'images dont raw, qcow2, vmdk et vdi.


If sharing your virtual machine images, be sure to remove sensitive information such as public/private keys, configuration files containing passwords, etc. If uploading an image created from a virtual box virtual machine to our clouds, it must have cloud-init installed and configured correctly (see openstack docs on [https://docs.openstack.org/image-guide/create-images-manually.html creating images manually] for more details).
Lorsque vous partagez vos images, assurez-vous d'y retirer l'information sensible comme les clés publiques et privées, les fichiers de configuration qui contiennent des mots de passe, etc. Lorsqu'une image créée d'une instance VirtualBox est téléchargée sur un de nos nuages, <code>cloud-init</code> doit avoir été installé et configuré correctement; voyez [https://docs.openstack.org/image-guide/create-images-manually.html la documentation d'OpenStack].


Voyez la [[Cloud resources/fr#Images|liste des images]] fournies par l'équipe de soutien technique.
Voyez la [[Cloud resources/fr#Images|liste des images]] fournies par l'équipe de soutien technique.
Line 11: Line 11:
La procédure est différente selon que l'instance démarre depuis un disque éphémère (généralement les gabarits de type c) ou un volume (généralement les gabarits de type p).
La procédure est différente selon que l'instance démarre depuis un disque éphémère (généralement les gabarits de type c) ou un volume (généralement les gabarits de type p).


==If booting from an ephemeral disk==
==Démarrer depuis un disque éphémère==
the [[OpenStack Command Line Clients]] can be used with the command:
Vous pouvez utiliser un [[OpenStack command line clients/fr|client ligne de commande OpenStack]] avec la commande
{{Command| openstack server image create <server-name>}}
{{Command| openstack server image create <server-name>}}
where <code><server-name></code> should be replaced with the name of your server. This action will only include the VM's root drive (e.g. /dev/vda) in the image. Ephemeral drives and non-boot attached volumes will not be included in the image, so additional measures should be taken to preserve this data. In addition, if the VM is writing to disk while the image is being created the filesystem may be captured in an inconsistent state. We recommend the VM be shut off (not deleted) before an image is created from it.
<code><server-name></code> est remplacé par le nom de votre serveur. Ceci inclura uniquement le disque racine (par exemple /dev/vda) dans l'image. Puisque les disques éphémères et les volumes attachés non amorçables ne seront pas inclus dans l'image, des mesures supplémentaires doivent être prises pour préserver ces données. De plus, si l'instance écrit sur le disque pendant la création de l'image, le système de fichiers peut être sauvegardé dans un état incohérent. Nous vous recommandons d'éteindre l'instance (et non de la supprimer) avant de créer une image à partir de celle-ci.


==If booting from a volume==
==Démarrer depuis un volume==
see [[Working_with_volumes#Creating_an_image_from_a_volume|Creating an Image from a Volume]]
Voir  [[Working_with_volumes/fr#Créer_une_image_depuis_un_volume|Créer une image depuis un volume]].


=Partager une image avec un autre projet=
=Partager une image avec un autre projet=
Line 25: Line 25:
# Un membre de l'autre projet doit accepter la nouvelle image qui est partagée.
# Un membre de l'autre projet doit accepter la nouvelle image qui est partagée.


Le membre du projet propriétaire utilise la commande  [[OpenStack Command Line Clients/fr|OpenStack]]  
Le membre du projet propriétaire utilise la commande  [[OpenStack command line clients/fr|OpenStack]]  
<source lang="console">
<source lang="console">
[name@server]$  glance member-create <IMAGE_ID> <MEMBER_ID>
[name@server]$  glance member-create <IMAGE_ID> <MEMBER_ID>
Line 37: Line 37:
<code><IMAGE_ID></code> est l'identifiant de l'image à partager et <code><MEMBER_ID></code> est l'identifiant du projet avec lequel partager l'image.  
<code><IMAGE_ID></code> est l'identifiant de l'image à partager et <code><MEMBER_ID></code> est l'identifiant du projet avec lequel partager l'image.  


To accept the shared image a member in the second project uses the [[OpenStack_Command_Line_Clients#Separate_Command-line_interfaces|OpenStack]] command below.
Pour accepter l'image partagée, le membre du deuxième projet utilise la commande [[OpenStack_command_line_clients/fr#Autres_interfaces|OpenStack]] suivante
<source lang="console">
<syntaxhighlight lang="console">
[name@server]$  glance member-update <IMAGE_ID> <MEMBER_ID> <MEMBER_STATUS>
[name@server]$  glance member-update <IMAGE_ID> <MEMBER_ID> <MEMBER_STATUS>
+------------+-------------+----------+
+------------+-------------+----------+
Line 45: Line 45:
| <IMAGE_ID> | <MEMBER_ID> | accepted |
| <IMAGE_ID> | <MEMBER_ID> | accepted |
+------------+-------------+----------+
+------------+-------------+----------+
</source>
</syntaxhighlight>
where <code><IMAGE_ID></code> is ID of the image to update, <code><MEMBER_ID></code> is the ID of the second project, and <code><MEMBER_STATUS></code> is the new status of the image. Valid Values for status are <code>accepted</code>, <code>rejected</code>, and <code>pending</code>. The image will then be available for use and appear in the OpenStack dashboard's list of images in the second project.
<code><IMAGE_ID></code> est l'identifiant de l'image à mettre à jour, <code><MEMBER_ID></code> est l'identifiant du deuxième projet, et <code><MEMBER_STATUS></code> est le nouvel état de l'image. Les valeurs pour l'état sont <code>accepted</code>, <code>rejected</code> et <code>pending</code>. Une fois le processus complété, l'image paraît dans la liste des images du second projet.




To check the status of image membership use the following command.
Pour vérifier l'état de propriété de l'image, utilisez la commande
<source lang="console">
<syntaxhighlight lang="console">
[name@server]$ glance member-list --image-id <IMAGE_ID>
[name@server]$ glance member-list --image-id <IMAGE_ID>
+------------+-------------+----------+
+------------+-------------+----------+
Line 57: Line 57:
| <IMAGE_ID> | <MEMBER_ID> | accepted |
| <IMAGE_ID> | <MEMBER_ID> | accepted |
+------------+-------------+----------+
+------------+-------------+----------+
</source>
</syntaxhighlight>


=Downloading an Image=
=Télécharger une image=
The first step is to install the OpenStack client and download the OpenStack RC file and source it (see [[OpenStack Command Line Clients]]).
Il faut d'abord installer le client OpenStack, puis télécharger le fichier RC OpenStack et le définir comme source (voir [[OpenStack command line clients/fr|OpenStack : Clients ligne de commande]]).
The OpenStack client can list the available images on your OpenStack project with
Le client OpenStack produit la liste des images disponibles de votre projet avec
{{Command|openstack image list}}
{{Command|openstack image list}}
producing something like:
Le résultat est un tableau semblable à ceci&nbsp;:


  +--------------------------------------+---------------------------------------+-------------+------------------+-------------+--------+
  +--------------------------------------+---------------------------------------+-------------+------------------+-------------+--------+
Line 86: Line 87:
Pour télécharger une image en particulier, utilisez la commande
Pour télécharger une image en particulier, utilisez la commande
{{Command|openstack image save --file ./<file-name-for-image>.<format> 2c751755-854d-49c3-af82-d501e51e7159}}
{{Command|openstack image save --file ./<file-name-for-image>.<format> 2c751755-854d-49c3-af82-d501e51e7159}}
où <format> correspond à la valeur dans la colonne ''Disk Format'' et <ID> correspond à la valeur dans la colonne ''ID''.
où <format> correspond à la valeur dans la colonne <i>Disk Format</i> et <ID> correspond à la valeur dans la colonne <i>ID</i>.


=Uploading an Image=
=Téléverser une image=
The first step is to install the OpenStack client and download the OpenStack RC file and source it (see [[OpenStack Command Line Clients]]).
Installez d'abord le client OpenStack, puis téléchargez et exécutez le fichier OpenStack RC (voir [[OpenStack command line clients|Client ligne de commande]], section Connecter le client ligne de commande à OpenStack).
Then run the command
Lancez la commande {{Command|openstack image create --file <path-to-local-file-image> --disk-format <format> <new-image-name>}}
{{Command|openstack image create --file <path-to-local-file-image> --disk-format <format> <new-image-name>}}


* <path-to-local-file-image> est le chemin vers le fichier qui contient l'image à téléverser;
* <path-to-local-file-image> est le chemin vers le fichier qui contient l'image à téléverser;
* <format> est le format du disque; si aucun format n'est spécifié, le format ''raw'' s'applique, ce qui est incorrect et peut causer des problèmes pour l'image dans OpenStack;
* <format> est le format du disque; si aucun format n'est spécifié, le format <i>raw</i> s'applique; un format différent créera des problèmes et vous devez choisir un format qui correspond à celui de votre image;
* <new-image-name> est le nom de l'image sur le tableau de bord OpenStack.
* <new-image-name> est le nom de l'image sur le tableau de bord OpenStack.


=Creating a VirtualBox VM from a Cloud Image=
=Créer une instance VirtualBox depuis une image dans un nuage=  
[https://www.virtualbox.org/ VirtualBox] is a software package which allows you to create and run virtual machines on your desktop or laptop. It can be run on many different operating systems (Windows, Linux, Mac) and the virtual machines it creates may run one of many different operating systems.
[https://www.virtualbox.org/ VirtualBox] est un logiciel qui permet de créer des instances et de les exécuter sur votre ordinateur personnel. Il fonctionne sous divers systèmes d'exploitation (Windows, Linux, Mac) et les instances créées peuvent utiliser des systèmes d'exploitation différents.


To use a QCOW2 image downloaded from an OpenStack cloud, as shown above, with VirtualBox you will need to convert the image in the qcow2 format to the vmdk format. This can be done with the <code>qemu-img</code> tool. This can be installed with something like
Pour utiliser une image QCOW2 téléchargée d'un nuage OpenStack (comme ci-dessus), elle doit être convertie au format vmdk; pour ce faire, vous pouvez utiliser l'outil <code>qemu-img</code>. Il peut être installé par exemple avec
{{Command|sudo apt-get install qemu-utils}}
{{Command|sudo apt-get install qemu-utils}}
(previously the package was called <code>qemu-img</code>) then do the conversion with
(le paquet s'appelait auparavant <code>qemu-img</code>) puis la conversion peut se faire avec
{{Command|qemu-img convert -f qcow2 vdisk.qcow2 -O vmdk vdisk.vmdk}}
{{Command|qemu-img convert -f qcow2 vdisk.qcow2 -O vmdk vdisk.vmdk}}
You can then create a new virtual machine and attach the vmdk image to it (see [http://techathlon.com/how-to-run-a-vmdk-file-in-oracle-virtualbox/ how to run a vmdk file in virtualbox] for detailed instructions on this).
Vous pouvez ensuite créer une nouvelle instance et lui attacher l'image vmdk. Pour plus de détails, voyez [http://techathlon.com/how-to-run-a-vmdk-file-in-oracle-virtualbox/ how to run a vmdk file in VirtualBox].


[[Category:CC-Cloud]]
[[Category:Cloud]]

Latest revision as of 22:16, 15 September 2023

Other languages:

Page enfant de Service infonuagique

Une image est un fichier dont le contenu est le même que celui d'un disque virtuel. Une image contient souvent un système d'exploitation de base utilisé pour créer un volume ou un disque éphémère à partir duquel une instance est lancée. Un disque éphémère est un disque virtuel qui réside sur l'hôte (hyperviseur) où l'instance est exécutée. Contrairement aux fichiers d'un volume, les fichiers d'un disque éphémère sont supprimés lorsque l'instance est supprimée. La portabilité d'une image fait qu'elle peut être téléchargée d'un nuage; être utilisée pour créer une instance sur votre ordinateur avec VirtualBox ou un autre outil semblable ou; téléversée sur un autre nuage pour créer une nouvelle instance. Un volume et un disque éphémère n'offrent pas ces possibilités. Il existe plusieurs formats d'images dont raw, qcow2, vmdk et vdi.

Lorsque vous partagez vos images, assurez-vous d'y retirer l'information sensible comme les clés publiques et privées, les fichiers de configuration qui contiennent des mots de passe, etc. Lorsqu'une image créée d'une instance VirtualBox est téléchargée sur un de nos nuages, cloud-init doit avoir été installé et configuré correctement; voyez la documentation d'OpenStack.

Voyez la liste des images fournies par l'équipe de soutien technique.

Créer une image depuis une instance

La procédure est différente selon que l'instance démarre depuis un disque éphémère (généralement les gabarits de type c) ou un volume (généralement les gabarits de type p).

Démarrer depuis un disque éphémère

Vous pouvez utiliser un client ligne de commande OpenStack avec la commande

Question.png
[name@server ~]$  openstack server image create <server-name>

<server-name> est remplacé par le nom de votre serveur. Ceci inclura uniquement le disque racine (par exemple /dev/vda) dans l'image. Puisque les disques éphémères et les volumes attachés non amorçables ne seront pas inclus dans l'image, des mesures supplémentaires doivent être prises pour préserver ces données. De plus, si l'instance écrit sur le disque pendant la création de l'image, le système de fichiers peut être sauvegardé dans un état incohérent. Nous vous recommandons d'éteindre l'instance (et non de la supprimer) avant de créer une image à partir de celle-ci.

Démarrer depuis un volume

Voir Créer une image depuis un volume.

Partager une image avec un autre projet

C'est un processus en deux étapes ː

  1. Un membre du projet auquel l'image appartient doit partager l'image avec l'autre projet.
  2. Un membre de l'autre projet doit accepter la nouvelle image qui est partagée.

Le membre du projet propriétaire utilise la commande OpenStack

[name@server]$  glance member-create <IMAGE_ID> <MEMBER_ID>
+------------+-------------+---------+
| Image ID   | Member ID   | Status  |
+------------+-------------+---------+
| <IMAGE_ID> | <MEMBER_ID> | pending |
+------------+-------------+---------+

<IMAGE_ID> est l'identifiant de l'image à partager et <MEMBER_ID> est l'identifiant du projet avec lequel partager l'image.

Pour accepter l'image partagée, le membre du deuxième projet utilise la commande OpenStack suivante

[name@server]$  glance member-update <IMAGE_ID> <MEMBER_ID> <MEMBER_STATUS>
+------------+-------------+----------+
| Image ID   | Member ID   | Status   |
+------------+-------------+----------+
| <IMAGE_ID> | <MEMBER_ID> | accepted |
+------------+-------------+----------+

<IMAGE_ID> est l'identifiant de l'image à mettre à jour, <MEMBER_ID> est l'identifiant du deuxième projet, et <MEMBER_STATUS> est le nouvel état de l'image. Les valeurs pour l'état sont accepted, rejected et pending. Une fois le processus complété, l'image paraît dans la liste des images du second projet.


Pour vérifier l'état de propriété de l'image, utilisez la commande

[name@server]$ glance member-list --image-id <IMAGE_ID>
+------------+-------------+----------+
| Image ID   | Member ID   | Status   |
+------------+-------------+----------+
| <IMAGE_ID> | <MEMBER_ID> | accepted |
+------------+-------------+----------+

Télécharger une image

Il faut d'abord installer le client OpenStack, puis télécharger le fichier RC OpenStack et le définir comme source (voir OpenStack : Clients ligne de commande). Le client OpenStack produit la liste des images disponibles de votre projet avec

Question.png
[name@server ~]$ openstack image list

Le résultat est un tableau semblable à ceci :

+--------------------------------------+---------------------------------------+-------------+------------------+-------------+--------+
| ID                                   | Name                                  | Disk Format | Container Format | Size        | Status |
+--------------------------------------+---------------------------------------+-------------+------------------+-------------+--------+
| 982761b2-c77b-4852-8ae3-bf98b32b8894 | Hadoop-2.2.4                          | qcow2       | bare             | 10253107200 | active |
| b7bd3033-9836-406d-a8f2-2e91978026b4 | hadoopmaster                          | qcow2       | bare             | 3493527552  | active |
| 2c751755-854d-49c3-af82-d501e51e7159 | hadoopmaster-active                   | qcow2       | bare             | 13134004224 | active |
| c41012f4-ed82-4478-a81f-5efb96a31b1a | hadoopmaster-old                      | qcow2       | bare             | 3493527552  | active |
| 78e61a3f-b546-441a-b476-a7077b04ca36 | hadoopslave                           | qcow2       | bare             | 3490971648  | active |
| 516845c3-b256-4c6d-a2cb-e31e822c7e34 | hadoopslave1-active                   | qcow2       | bare             | 8345026560  | active |
| 1546bd86-5314-4fce-9576-e2f6930dad30 | hadoopslave1-old                      | qcow2       | bare             | 3490971648  | active |
| baf78e8d-8288-4854-a66b-812cdf3ccbca | TestVM                                | qcow2       | bare             | 13167616    | active |
| 2faf97d7-5b0b-44ce-8024-3bef5a634570 | test_ubuntu_initial                   | qcow2       | bare             | 1799487488  | active |
| 308b6614-396a-4360-9c33-4e86f41ea0ec | trusty                                | qcow2       | bare             | 256180736   | active |
| 9b3c3fda-2aca-43b5-a3e7-662a94f5e7fb | Ubuntu_14.04_Trusty-amd64-20150708    | qcow2       | bare             | 257884672   | active |
| f93e66cf-fec1-4460-8fc7-506e716fbf30 | ucernvm-prod.1.18-10                  | raw         | bare             | 20971520    | active |
+--------------------------------------+---------------------------------------+-------------+------------------+-------------+--------+

Dépendant de la version de votre client, il est possible que vous ayez besoin d'une option additionnelle comme --long pour voir toutes ces colonnes.

Pour télécharger une image en particulier, utilisez la commande

Question.png
[name@server ~]$ openstack image save --file ./<file-name-for-image>.<format> 2c751755-854d-49c3-af82-d501e51e7159

où <format> correspond à la valeur dans la colonne Disk Format et <ID> correspond à la valeur dans la colonne ID.

Téléverser une image

Installez d'abord le client OpenStack, puis téléchargez et exécutez le fichier OpenStack RC (voir Client ligne de commande, section Connecter le client ligne de commande à OpenStack).

Lancez la commande

Question.png
[name@server ~]$ openstack image create --file <path-to-local-file-image> --disk-format <format> <new-image-name>

  • <path-to-local-file-image> est le chemin vers le fichier qui contient l'image à téléverser;
  • <format> est le format du disque; si aucun format n'est spécifié, le format raw s'applique; un format différent créera des problèmes et vous devez choisir un format qui correspond à celui de votre image;
  • <new-image-name> est le nom de l'image sur le tableau de bord OpenStack.

Créer une instance VirtualBox depuis une image dans un nuage

VirtualBox est un logiciel qui permet de créer des instances et de les exécuter sur votre ordinateur personnel. Il fonctionne sous divers systèmes d'exploitation (Windows, Linux, Mac) et les instances créées peuvent utiliser des systèmes d'exploitation différents.

Pour utiliser une image QCOW2 téléchargée d'un nuage OpenStack (comme ci-dessus), elle doit être convertie au format vmdk; pour ce faire, vous pouvez utiliser l'outil qemu-img. Il peut être installé par exemple avec

Question.png
[name@server ~]$ sudo apt-get install qemu-utils

(le paquet s'appelait auparavant qemu-img) puis la conversion peut se faire avec

Question.png
[name@server ~]$ qemu-img convert -f qcow2 vdisk.qcow2 -O vmdk vdisk.vmdk

Vous pouvez ensuite créer une nouvelle instance et lui attacher l'image vmdk. Pour plus de détails, voyez how to run a vmdk file in VirtualBox.