

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.

# Résolution des problèmes de déploiement de clusters
<a name="troubleshooting-v3-cluster-deployment"></a>

Si votre cluster ne parvient pas à être créé et annule la création de la pile, vous pouvez consulter les fichiers journaux pour diagnostiquer le problème. Le message d'échec ressemble probablement au résultat suivant :

```
$ pcluster create-cluster --cluster-name {{mycluster}} --region {{eu-west-1}} \
 --cluster-configuration {{cluster-config.yaml}}
{
  "cluster": {
    "clusterName": "mycluster",
    "cloudformationStackStatus": "CREATE_IN_PROGRESS",
    "cloudformationStackArn": "arn:aws:cloudformation:eu-west-1:xxx:stack/mycluster/1bf6e7c0-0f01-11ec-a3b9-024fcc6f3387",
    "region": "eu-west-1",
    "version": "3.15.0",
    "clusterStatus": "CREATE_IN_PROGRESS"
  }
}

$ pcluster describe-cluster --cluster-name {{mycluster}} --region {{eu-west-1}}
{
  "creationTime": "2021-09-06T11:03:47.696Z",
  ...
  "cloudFormationStackStatus": "ROLLBACK_IN_PROGRESS",
  "clusterName": "mycluster",
  "computeFleetStatus": "UNKNOWN",
  "cloudformationStackArn": "arn:aws:cloudformation:eu-west-1:xxx:stack/mycluster/1bf6e7c0-0f01-11ec-a3b9-024fcc6f3387",
  "lastUpdatedTime": "2021-09-06T11:03:47.696Z",
  "region": "eu-west-1",
  "clusterStatus": "CREATE_FAILED"
}
```

**Topics**
+ [Afficher CloudFormation les événements sur `CREATE_FAILED`](#troubleshooting-v3-cluster-deployment-events)
+ [Utiliser la CLI pour afficher les flux de journaux](#troubleshooting-v3-cluster-deployment-cli-logstreams)
+ [Recréez le cluster défaillant avec `rollback-on-failure`](#troubleshooting-v3-cluster-deployment-cli-fail-rollback)

## Afficher CloudFormation les événements sur `CREATE_FAILED`
<a name="troubleshooting-v3-cluster-deployment-events"></a>

Vous pouvez utiliser la console ou la AWS ParallelCluster CLI pour afficher les CloudFormation événements relatifs aux `CREATE_FAILED` erreurs afin d'en trouver la cause première.

**Topics**
+ [Afficher les événements dans la CloudFormation console](#troubleshooting-v3-cluster-deployment-cloudformation)
+ [Utilisez la CLI pour afficher et filtrer CloudFormation les événements sur `CREATE_FAILED`](#troubleshooting-v3-cluster-deployment-cli-events)

### Afficher les événements dans la CloudFormation console
<a name="troubleshooting-v3-cluster-deployment-cloudformation"></a>

Pour obtenir plus d'informations sur la cause de ce `"CREATE_FAILED"` statut, vous pouvez utiliser la CloudFormation console.

**Afficher les messages CloudFormation d'erreur depuis la console.**

1. Connectez-vous au AWS Management Console et naviguez vers [https://console.aws.amazon.com/cloudformation.](https://console.aws.amazon.com/cloudformation/)

1. Sélectionnez la pile nommée {{cluster\_name}}.

1. Sélectionnez l’onglet **Événements**.

1. Vérifiez l'**état** de la ressource dont la création a échoué en faisant défiler la liste des événements de ressource par ID **logique**. Si la création d'une sous-tâche a échoué, revenez en arrière pour trouver l'événement de ressource ayant échoué.

1. Par exemple, si le message d'état suivant s'affiche, vous devez utiliser des types d'instances qui ne dépasseront pas votre limite de vCPU actuelle ou qui ne demanderont pas une capacité de vCPU accrue.

   ```
   2022-02-04 16:09:44 UTC-0800	HeadNode	CREATE_FAILED	You have requested more vCPU capacity than your current vCPU limit of 0 allows 
        for the instance bucket that the specified instance type belongs to. Please visit http://aws.amazon.com/contact-us/ec2-request to request an adjustment to this limit. 
        (Service: AmazonEC2; Status Code: 400; Error Code: VcpuLimitExceeded; Request ID: a9876543-b321-c765-d432-dcba98766789; Proxy: null).
   ```

### Utilisez la CLI pour afficher et filtrer CloudFormation les événements sur `CREATE_FAILED`
<a name="troubleshooting-v3-cluster-deployment-cli-events"></a>

Pour diagnostiquer le problème de création de clusters, vous pouvez utiliser la [`pcluster get-cluster-stack-events`](pcluster.get-cluster-stack-events-v3.md) commande en filtrant par `CREATE_FAILED` état. Pour plus d'informations, consultez la section [Filtrage AWS CLI de la sortie](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-filter.html) dans le *guide de AWS Command Line Interface l'utilisateur*.

```
$ pcluster get-cluster-stack-events --cluster-name {{mycluster}} --region {{eu-west-1}} \
    --query 'events[?resourceStatus==`CREATE_FAILED`]'
  [
    {
      "eventId": "3ccdedd0-0f03-11ec-8c06-02c352fe2ef9",
      "physicalResourceId": "arn:aws:cloudformation:eu-west-1:xxx:stack/mycluster/1bf6e7c0-0f02-11ec-a3b9-024fcc6f3387",
      "resourceStatus": "CREATE_FAILED",
      "resourceStatusReason": "The following resource(s) failed to create: [HeadNode]. ",
      "stackId": "arn:aws:cloudformation:eu-west-1:xxx:stack/mycluster/1bf6e7c0-0f02-11ec-a3b9-024fcc6f3387",
      "stackName": "mycluster",
      "logicalResourceId": "mycluster",
      "resourceType": "AWS::CloudFormation::Stack",
      "timestamp": "2021-09-06T11:11:51.780Z"
    },
    {
      "eventId": "HeadNode-CREATE_FAILED-2021-09-06T11:11:50.127Z",
      "physicalResourceId": "i-04e91cc1f4ea796fe",
      "resourceStatus": "CREATE_FAILED",
      "resourceStatusReason": "Received FAILURE signal with UniqueId i-04e91cc1f4ea796fe",
      "resourceProperties": "{\"LaunchTemplate\":{\"Version\":\"1\",\"LaunchTemplateId\":\"lt-057d2b1e687f05a62\"}}",
      "stackId": "arn:aws:cloudformation:eu-west-1:xxx:stack/mycluster/1bf6e7c0-0f02-11ec-a3b9-024fcc6f3387",
      "stackName": "mycluster",
      "logicalResourceId": "HeadNode",
      "resourceType": "AWS::EC2::Instance",
      "timestamp": "2021-09-06T11:11:50.127Z"
    }
  ]
```

Dans l'exemple précédent, l'échec était lié à la configuration du nœud principal.

## Utiliser la CLI pour afficher les flux de journaux
<a name="troubleshooting-v3-cluster-deployment-cli-logstreams"></a>

Pour résoudre ce type de problème, vous pouvez répertorier les flux de journaux disponibles depuis le nœud principal [`pcluster list-cluster-log-streams`](pcluster.list-cluster-log-streams-v3.md) en filtrant `node-type` puis en analysant le contenu des flux de journaux.

```
$ pcluster list-cluster-log-streams --cluster-name {{mycluster}} --region {{eu-west-1}} \
--filters 'Name=node-type,Values=HeadNode'
{
  "logStreams": [
    {
      "logStreamArn": "arn:aws:logs:eu-west-1:xxx:log-group:/aws/parallelcluster/mycluster-202109061103:log-stream:ip-10-0-0-13.i-04e91cc1f4ea796fe.cfn-init",
      "logStreamName": "ip-10-0-0-13.i-04e91cc1f4ea796fe.cfn-init",
      ...
    },
    {
      "logStreamArn": "arn:aws:logs:eu-west-1:xxx:log-group:/aws/parallelcluster/mycluster-202109061103:log-stream:ip-10-0-0-13.i-04e91cc1f4ea796fe.chef-client",
      "logStreamName": "ip-10-0-0-13.i-04e91cc1f4ea796fe.chef-client",
      ...
    },
    {
      "logStreamArn": "arn:aws:logs:eu-west-1:xxx:log-group:/aws/parallelcluster/mycluster-202109061103:log-stream:ip-10-0-0-13.i-04e91cc1f4ea796fe.cloud-init",
      "logStreamName": "ip-10-0-0-13.i-04e91cc1f4ea796fe.cloud-init",
      ...
    },
    ...
  ]
}
```

Les deux principaux flux de log que vous pouvez utiliser pour détecter les erreurs d'initialisation sont les suivants :
+  `cfn-init`est le journal du `cfn-init` script. Vérifiez d'abord ce flux de journal. Vous verrez probablement l'`Command chef failed`erreur dans ce journal. Regardez les lignes juste avant cette ligne pour plus de détails liés au message d'erreur. Pour plus d'informations, consultez [cfn-init](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-init.html).
+  `cloud-init`est le journal de [cloud-init](https://cloudinit.readthedocs.io/). Si rien ne s'y trouve`cfn-init`, essayez ensuite de consulter ce journal.

Vous pouvez récupérer le contenu du flux de log à l'aide de l'option [`pcluster get-cluster-log-events`](pcluster.get-cluster-log-events-v3.md) (notez l'`--limit 5`option permettant de limiter le nombre d'événements récupérés) :

```
$ pcluster get-cluster-log-events --cluster-name {{mycluster}} \
  --region {{eu-west-1}} --log-stream-name {{ip-10-0-0-13.i-04e91cc1f4ea796fe.cfn-init}} \
  --limit 5
{
  "nextToken": "f/36370880979637159565202782352491087067973952362220945409/s",
  "prevToken": "b/36370880752972385367337528725601470541902663176996585497/s",
  "events": [
    {
      "message": "2021-09-06 11:11:39,049 [ERROR] Unhandled exception during build: Command runpostinstall failed",
      "timestamp": "2021-09-06T11:11:39.049Z"
    },
    {
      "message": "Traceback (most recent call last):\n  File \"/opt/aws/bin/cfn-init\", line 176, in <module>\n    worklog.build(metadata, configSets)\n  File \"/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py\", line 135, in build\n    Contractor(metadata).build(configSets, self)\n  File \"/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py\", line 561, in build\n    self.run_config(config, worklog)\n  File \"/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py\", line 573, in run_config\n    CloudFormationCarpenter(config, self._auth_config).build(worklog)\n  File \"/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py\", line 273, in build\n    self._config.commands)\n  File \"/usr/lib/python3.7/site-packages/cfnbootstrap/command_tool.py\", line 127, in apply\n    raise ToolError(u\"Command %s failed\" % name)",
      "timestamp": "2021-09-06T11:11:39.049Z"
    },
    {
      "message": "cfnbootstrap.construction_errors.ToolError: Command runpostinstall failed",
      "timestamp": "2021-09-06T11:11:39.049Z"
    },
    {
      "message": "2021-09-06 11:11:49,212 [DEBUG] CloudFormation client initialized with endpoint https://cloudformation.eu-west-1.amazonaws.com",
      "timestamp": "2021-09-06T11:11:49.212Z"
    },
    {
      "message": "2021-09-06 11:11:49,213 [DEBUG] Signaling resource HeadNode in stack mycluster with unique ID i-04e91cc1f4ea796fe and status FAILURE",
      "timestamp": "2021-09-06T11:11:49.213Z"
    }
  ]
}
```

Dans l'exemple précédent, l'échec est dû à un `runpostinstall` échec. Il est donc strictement lié au contenu du script bootstrap personnalisé utilisé dans le paramètre de `OnNodeConfigured` configuration du[`CustomActions`](HeadNode-v3.md#HeadNode-v3-CustomActions).

## Recréez le cluster défaillant avec `rollback-on-failure`
<a name="troubleshooting-v3-cluster-deployment-cli-fail-rollback"></a>

AWS ParallelCluster crée des flux de CloudWatch journaux de cluster dans des groupes de journaux. Vous pouvez consulter ces journaux dans les **tableaux de bord personnalisés** ou les **groupes de journaux** de la CloudWatch console. Pour plus d’informations, consultez [Intégration à Amazon CloudWatch Logs](cloudwatch-logs-v3.md) et [Tableau de CloudWatch bord Amazon](cloudwatch-dashboard-v3.md). Si aucun flux de journal n'est disponible, l'échec peut être dû au script de démarrage [`CustomActions`](HeadNode-v3.md#HeadNode-v3-CustomActions) personnalisé ou à un problème lié à l'AMI. Pour diagnostiquer le problème de création dans ce cas, créez à nouveau le cluster en utilisant[`pcluster create-cluster`](pcluster.create-cluster-v3.md), y compris le `--rollback-on-failure` paramètre défini sur`false`. Utilisez ensuite SSH pour afficher le cluster, comme indiqué ci-dessous :

```
$ pcluster create-cluster --cluster-name {{mycluster}} --region {{eu-west-1}} \
   --cluster-configuration {{cluster-config.yaml}} --rollback-on-failure false
 {
   "cluster": {
     "clusterName": "mycluster",
     "cloudformationStackStatus": "CREATE_IN_PROGRESS",
     "cloudformationStackArn": "arn:aws:cloudformation:eu-west-1:xxx:stack/mycluster/1bf6e7c0-0f01-11ec-a3b9-024fcc6f3387",
     "region": "eu-west-1",
     "version": "3.15.0",
     "clusterStatus": "CREATE_IN_PROGRESS"
   }
 } 
 $ pcluster ssh --cluster-name {{mycluster}}
```

Une fois connecté au nœud principal, vous devriez trouver trois fichiers journaux principaux que vous pouvez utiliser pour trouver l'erreur.
+  `/var/log/cfn-init.log`est le journal du `cfn-init` script. Vérifiez d'abord ce journal. Il est probable que vous rencontriez une erreur comme `Command chef failed` dans ce journal. Regardez les lignes juste avant cette ligne pour plus de détails liés au message d'erreur. Pour plus d'informations, consultez [cfn-init](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-init.html).
+  `/var/log/cloud-init.log`est le journal de [cloud-init](https://cloudinit.readthedocs.io/). Si rien ne s'y trouve`cfn-init.log`, essayez ensuite de consulter ce journal. 
+  `/var/log/cloud-init-output.log`est le résultat des commandes exécutées par [cloud-init](https://cloudinit.readthedocs.io/). Cela inclut la sortie de`cfn-init`. Dans la plupart des cas, il n'est pas nécessaire de consulter ce journal pour résoudre ce type de problème.