

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Exemples de création et de gestion de modèles de lancement à l'aide du AWS CLI
<a name="examples-launch-templates-aws-cli"></a>

Vous pouvez créer et gérer des modèles de lancement via le AWS Management Console, AWS Command Line Interface (AWS CLI) ou les SDK. Cette section présente des exemples de création et de gestion de modèles de lancement pour Amazon EC2 Auto Scaling à partir du AWS CLI.

**Topics**
+ [Exemple d’utilisation](#example-usage)
+ [Créer un modèle de lancement de base](#example-simple-launch-template)
+ [Spécifier des balises qui balisent les instances au lancement](#example-tag-instances)
+ [Spécifier un rôle IAM à transmettre aux instances](#example-iam-profile)
+ [Attribuer des adresses IP publiques](#example-primary-network-interface)
+ [Spécifier un script de données utilisateur qui configure les instances au lancement](#example-user-data)
+ [Spécifier un mappage de périphérique de stockage en mode bloc](#example-block-device-mapping)
+ [Spécifier les hôtes dédiés pour obtenir des licences logicielles auprès de fournisseurs externes](#example-dedicated-hosts)
+ [Spécifier une interface réseau existante](#example-existing-eni-launch-template)
+ [Créer plusieurs interfaces réseau](#example-multiple-efa-enabled-network-interfaces)
+ [Gérer vos modèles de lancement](#launch-templates-additional-cli-commands)
+ [Mettre à jour un groupe Auto Scaling pour utiliser un modèle de lancement](#update-asg-launch-template-cli)

## Exemple d’utilisation
<a name="example-usage"></a>

```
{
    "LaunchTemplateName": "my-template-for-auto-scaling",
    "VersionDescription": "test description",
    "LaunchTemplateData": {
        "ImageId": "ami-04d5cc9b88example",
        "InstanceType": "t2.micro",
        "SecurityGroupIds": [
            "sg-903004f88example"
        ], 
        "KeyName": "MyKeyPair",
        "Monitoring": {
            "Enabled": true
        },
        "Placement": {
            "Tenancy": "dedicated"
        },
        "CreditSpecification": {
            "CpuCredits": "unlimited"
        },
        "MetadataOptions": {
            "HttpTokens": "required",
            "HttpPutResponseHopLimit": 1,
            "HttpEndpoint": "enabled"
        }
    }
}
```

## Créer un modèle de lancement de base
<a name="example-simple-launch-template"></a>

Pour créer un modèle de lancement de base, utilisez la [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)commande suivante, avec les modifications suivantes : 
+ Remplacez `ami-04d5cc9b88example` par l'ID d'AMI à partir duquel lancer les instances.
+ Remplacez `t2.micro` par un type d'instance compatible avec l'AMI que vous avez spécifiée.

Cet exemple crée un modèle de lancement portant le nom*my-template-for-auto-scaling*. Si les instances créées par ce modèle de lancement sont lancées dans un VPC par défaut, elles reçoivent une adresse IP publique par défaut. Si les instances sont lancées sur un VPC personnalisé, elles ne reçoivent pas d’adresse IP publique par défaut.

```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
  --launch-template-data '{"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
```

Pour plus d'informations sur l'utilisation de guillemets avec les paramètres au format JSON, consultez [Utilisation de guillemets avec des chaînes dans l' AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-quoting-strings.html) dans le *Guide de l'utilisateur AWS Command Line Interface *.

Sinon, vous pouvez spécifier les paramètres au format JSON dans un fichier de configuration.

L'exemple suivant crée un modèle de lancement de base, référençant un fichier de configuration pour les valeurs de paramètre de modèle de lancement. 

```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
  --launch-template-data file://config.json
```

Contenu de `config.json` :

```
{ 
    "ImageId":"ami-04d5cc9b88example",
    "InstanceType":"t2.micro"
}
```

## Spécifier des balises qui balisent les instances au lancement
<a name="example-tag-instances"></a>

L'exemple suivant ajoute une balise (par exemple,`purpose=webserver`) aux instances au lancement.

```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
  --launch-template-data '{"TagSpecifications":[{"ResourceType":"instance","Tags":[{"Key":"purpose","Value":"webserver"}]}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
```

**Note**  
Si vous spécifiez des balises d'instance dans votre modèle de lancement, puis que vous avez choisi de propager les balises de votre groupe Auto Scaling à ses instances, toutes les balises sont fusionnées. Si la même clé d’identification est spécifiée pour une identification dans votre modèle de lancement et une identification dans votre groupe Auto Scaling, la valeur de l’identification du groupe est prioritaire. 

## Spécifier un rôle IAM à transmettre aux instances
<a name="example-iam-profile"></a>

L'exemple suivant montre comment spécifier le nom du profil d'instance associé au rôle IAM à transmettre aux instances lors du lancement. Pour de plus amples informations, veuillez consulter [Rôle IAM pour les applications qui s'exécutent sur des instances Amazon EC2](us-iam-role.md).

```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
--launch-template-data '{"IamInstanceProfile":{"Name":"my-instance-profile"},"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
```

## Attribuer des adresses IP publiques
<a name="example-primary-network-interface"></a>

L'[create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)exemple suivant configure le modèle de lancement pour attribuer des adresses publiques aux instances lancées dans un VPC autre que celui par défaut. 

**Note**  
Lorsque vous spécifiez une interface réseau, spécifiez une valeur pour `Groups` correspondant aux groupes de sécurité du VPC dans lequel votre groupe Auto Scaling lancera des instances. Spécifiez les sous-réseaux VPC en tant que propriétés du groupe Auto Scaling. 



```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
  --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"AssociatePublicIpAddress":true,"Groups":["sg-903004f88example"],"DeleteOnTermination":true}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
```

## Spécifier un script de données utilisateur qui configure les instances au lancement
<a name="example-user-data"></a>

L'exemple suivant spécifie un script de données utilisateur sous la forme d'une chaîne codée en base64 qui configure les instances au lancement. La [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)commande nécessite des données utilisateur codées en base64.

```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
--launch-template-data '{"UserData":"IyEvYmluL2Jhc...","ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
```

## Spécifier un mappage de périphérique de stockage en mode bloc
<a name="example-block-device-mapping"></a>

L'[create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)exemple suivant crée un modèle de lancement avec un mappage de périphériques en mode bloc : un volume EBS de 22 Go mappé vers. `/dev/xvdcz` Le volume `/dev/xvdcz` utilise le type de volume SSD à usage général (gp2) et est supprimé lors de la résiliation de l'instance à laquelle il est attaché. 

```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
  --launch-template-data '{"BlockDeviceMappings":[{"DeviceName":"/dev/xvdcz","Ebs":{"VolumeSize":22,"VolumeType":"gp2","DeleteOnTermination":true}}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
```

## Spécifier les hôtes dédiés pour obtenir des licences logicielles auprès de fournisseurs externes
<a name="example-dedicated-hosts"></a>

Si vous spécifiez *host (hôte)*, vous pouvez spécifier un groupe de ressources hôte et une configuration de licence License Manager pour obtenir des licences logicielles éligibles auprès de fournisseurs externes. Vous pouvez ensuite utiliser les licences sur les instances EC2 à l'aide de la [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)commande suivante.

```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
  --launch-template-data '{"Placement":{"Tenancy":"host","HostResourceGroupArn":"arn"},"LicenseSpecifications":[{"LicenseConfigurationArn":"arn"}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
```

## Spécifier une interface réseau existante
<a name="example-existing-eni-launch-template"></a>

L'[create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)exemple suivant configure l'interface réseau principale pour utiliser une interface réseau existante.

```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
  --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"NetworkInterfaceId":"eni-b9a5ac93","DeleteOnTermination":false}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
```

## Créer plusieurs interfaces réseau
<a name="example-multiple-efa-enabled-network-interfaces"></a>

L'[create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)exemple suivant ajoute une interface réseau secondaire. L'index de périphérique principal est 0 pour l'interface réseau principale, et l'index de périphérique secondaire est 1 pour l'interface réseau secondaire. 

```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
  --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"Groups":["sg-903004f88example"],"DeleteOnTermination":true},{"DeviceIndex":1,"Groups":["sg-903004f88example"],"DeleteOnTermination":true}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
```

Si vous utilisez un type d'instance qui prend en charge plusieurs cartes réseau et adaptateurs Elastic Fabric (EFAs), vous pouvez ajouter une interface secondaire à une carte réseau secondaire et activer EFA à l'aide de la [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)commande suivante. Pour plus d'informations, consultez la section [Ajouter un EFA à un modèle de lancement](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-efa.html#efa-launch-template) dans le guide de l'*utilisateur Amazon EC2*. 

```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
  --launch-template-data '{"NetworkInterfaces":[{"NetworkCardIndex":0,"DeviceIndex":0,"Groups":["sg-7c2270198example"],"InterfaceType":"efa","DeleteOnTermination":true},{"NetworkCardIndex":1,"DeviceIndex":1,"Groups":["sg-7c2270198example"],"InterfaceType":"efa","DeleteOnTermination":true}],"ImageId":"ami-09d95fab7fexample","InstanceType":"p4d.24xlarge"}'
```

**Avertissement**  
Le type d'instance p4d.24xlarge entraîne des coûts plus élevés que les autres exemples de cette section. Pour plus d'informations sur la tarification des instances P4d, consultez [Tarification des instances P4d Amazon EC2](https://aws.amazon.com/ec2/instance-types/p4/).

**Note**  
L'attachement de plusieurs interfaces réseau du même sous-réseau à une instance peut introduire un routage asymétrique, en particulier sur les instances utilisant une variante Linux non Amazon. Si vous avez besoin de ce type de configuration, vous devez configurer l'interface réseau secondaire dans le système d'exploitation. Par exemple, consultez [Comment puis-je faire fonctionner mon interface réseau secondaire dans mon instance Ubuntu EC2 ?](https://repost.aws/knowledge-center/ec2-ubuntu-secondary-network-interface) dans le AWS Knowledge Center.

## Gérer vos modèles de lancement
<a name="launch-templates-additional-cli-commands"></a>

 AWS CLI Il inclut plusieurs autres commandes qui vous aident à gérer vos modèles de lancement. 

**Topics**
+ [Lister et décrire vos modèles de lancement](#describe-launch-template-aws-cli)
+ [Créer une version d’un modèle de lancement](#example-create-launch-template-version)
+ [Supprimer une version d’un modèle de lancement](#example-delete-launch-template-version)
+ [Supprimer un modèle de lancement](#example-delete-launch-template)

### Lister et décrire vos modèles de lancement
<a name="describe-launch-template-aws-cli"></a>

Vous pouvez utiliser deux AWS CLI commandes pour obtenir des informations sur vos modèles de lancement : [describe-launch-templates](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-launch-templates.html)et [describe-launch-template-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-launch-template-versions.html). 

La [describe-launch-templates](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-launch-templates.html)commande vous permet d'obtenir la liste de tous les modèles de lancement que vous avez créés. Vous pouvez utiliser une option pour filtrer les résultats sur un nom de modèle de lancement, créer une heure, une clé de balise ou une combinaison clé-valeur de balise. Cette commande renvoie des informations récapitulatives sur l'un de vos modèles de lancement, y compris l'identifiant du modèle de lancement, la dernière version et la version par défaut. 

L'exemple suivant fournit un résumé du modèle de lancement indiqué.

```
aws ec2 describe-launch-templates --launch-template-names my-template-for-auto-scaling
```

Voici un exemple de réponse.

```
{
    "LaunchTemplates": [
        {
            "LaunchTemplateId": "lt-068f72b729example",
            "LaunchTemplateName": "my-template-for-auto-scaling",
            "CreateTime": "2020-02-28T19:52:27.000Z",
            "CreatedBy": "arn:aws:iam::123456789012:user/Bob",
            "DefaultVersionNumber": 1,
            "LatestVersionNumber": 1
        }
    ]
}
```

Si vous n'utilisez pas le paramètre `--launch-template-names` pour limiter la sortie à un seul modèle de lancement, les informations sur tous vos modèles de lancement sont renvoyées.

La [describe-launch-template-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-launch-template-versions.html)commande suivante fournit des informations décrivant les versions du modèle de lancement spécifié.

```
aws ec2 describe-launch-template-versions --launch-template-id lt-068f72b729example
```

Voici un exemple de réponse.

```
{
    "LaunchTemplateVersions": [
        {
            "VersionDescription": "version1",
            "LaunchTemplateId": "lt-068f72b729example",
            "LaunchTemplateName": "my-template-for-auto-scaling",
            "VersionNumber": 1,
            "CreatedBy": "arn:aws:iam::123456789012:user/Bob",
            "LaunchTemplateData": {
                "TagSpecifications": [
                    {
                        "ResourceType": "instance",
                        "Tags": [
                            {
                                "Key": "purpose",
                                "Value": "webserver"
                            }
                        ]
                    }
                ],
                "ImageId": "ami-04d5cc9b88example",
                "InstanceType": "t2.micro",
                "NetworkInterfaces": [
                    {
                        "DeviceIndex": 0,
                        "DeleteOnTermination": true,
                        "Groups": [
                            "sg-903004f88example"
                        ],
                        "AssociatePublicIpAddress": true
                    }
                ]
            },
            "DefaultVersion": true,
            "CreateTime": "2020-02-28T19:52:27.000Z"
        }
    ]
}
```

### Créer une version d’un modèle de lancement
<a name="example-create-launch-template-version"></a>

La [create-launch-template-version](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template-version.html)commande suivante crée une nouvelle version du modèle de lancement basée sur la version 1 du modèle de lancement et spécifie un ID d'AMI différent.

```
aws ec2 create-launch-template-version --launch-template-id lt-068f72b729example --version-description version2 \
  --source-version 1 --launch-template-data "ImageId=ami-c998b6b2example"
```

Pour définir la version par défaut du modèle de lancement, utilisez la [modify-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/modify-launch-template.html)commande.

### Supprimer une version d’un modèle de lancement
<a name="example-delete-launch-template-version"></a>

La [delete-launch-template-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-launch-template-versions.html)commande suivante supprime la version du modèle de lancement spécifiée.

```
aws ec2 delete-launch-template-versions --launch-template-id lt-068f72b729example --versions 1
```

### Supprimer un modèle de lancement
<a name="example-delete-launch-template"></a>

Si vous n'avez plus besoin d'un modèle de lancement, vous pouvez le supprimer à l'aide de la [delete-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-launch-template.html)commande suivante. La suppression d’un modèle de lancement entraîne celle de toutes ses versions. 

```
aws ec2 delete-launch-template --launch-template-id lt-068f72b729example
```

## Mettre à jour un groupe Auto Scaling pour utiliser un modèle de lancement
<a name="update-asg-launch-template-cli"></a>

Vous pouvez utiliser la [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html)commande pour ajouter un modèle de lancement à un groupe Auto Scaling existant.

### Mettre à jour un groupe Auto Scaling pour utiliser la dernière version d'un modèle de lancement
<a name="example-update-asg-launch-template-latest-version"></a>

La [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html)commande suivante met à jour le groupe Auto Scaling spécifié afin d'utiliser la dernière version du modèle de lancement spécifié.

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
  --launch-template LaunchTemplateId=lt-068f72b729example,Version='$Latest'
```

### Mettre à jour un groupe Auto Scaling pour utiliser une version spécifique d'un modèle de lancement
<a name="example-update-asg-launch-template-specific-version"></a>

La [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html)commande suivante met à jour le groupe Auto Scaling spécifié pour utiliser une version spécifique du modèle de lancement spécifié.

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
  --launch-template LaunchTemplateName=my-template-for-auto-scaling,Version='2'
```