2017-09-06 3 views
0
"provisioner": { 
    "file": { 
     "connection": { 
       "private_key": "${file(\"/KeyPair.pem\")}", 
       "user": "id" 
     }, 
     "content": "${template_file.x1}", 
     "destination": "/path/to/dest1" 

    }, 

    "file": { 
      "connection": { 
        "private_key": "${file(\"/KeyPair.pem\")}", 
        "user": "id" 
      }, 
      "content": "${template_file.x2}", 
      "destination": "/path/to/dest2" 
    } 
} 

Ici, j'ai un scriplet JSON Terraform. Je comprends que je vais devoir fusionner/regrouper les fournisseurs de fichiers mais je ne suis pas trop sûr de savoir comment le faireFournisseur de fichiers multiples dans JSON Terraform

Je continue d'obtenir des erreurs lors de la validation.

SyntaxError: Duplicate key 'file' on line 78 

Dois-je utiliser une fonction en ligne?

Edit ..

Je pense que cela peut être correct? quelqu'un confirme?

"file": { 
    "connection": { 
     "private_key": "${file(\"/KeyPair.pem\")}", 
     "user": "id" 
    }, 
    "content": [ 
     "${template_file.1}", 
     "${template_file.2}" 
    ], 
    "destination": [ 
     "/path/dest/", 
     "/path/dest/" 
    ] 
} 
+0

pense que je peux l'avoir? est-ce correct ...? ' "Fichier": { \t "connexion": { \t \t "private_key": "$ {fichier (\"/ KeyPair.pem \ ")}", \t \t "utilisateur": "id" \t} , \t "content": [ \t \t "$ {} template_file.1", \t \t "$ {} template_file.2" \t], \t "destination": [ \t \t «/chemin/dest/", \t \t "/ chemin/dest /" \t] } ' – lankan

Répondre

0

S'il vous plaît passer par l'échantillon officiel here

Vous devez diviser les codes à deux parties de Provisioner.

"provisioner": { 
    "file": { 
     "connection": { 
       "private_key": "${file(\"/KeyPair.pem\")}", 
       "user": "id" 
     }, 
     "content": "${template_file.x1}", 
     "destination": "/path/to/dest1" 

    } 
} 

"provisioner": { 
    "file": { 
      "connection": { 
        "private_key": "${file(\"/KeyPair.pem\")}", 
        "user": "id" 
      }, 
      "content": "${template_file.x2}", 
      "destination": "/path/to/dest2" 
    } 
} 

S'il y a beaucoup de fichiers à télécharger, approvisionneur file prend en charge le téléchargement dossier/répertoire. S'il vous plaît entrer dans les détails

https://www.terraform.io/docs/provisioners/file.html#directory-uploads

Si vous avez un message d'erreur, s'il vous plaît coller l'erreur de détails, sinon, il est difficile de donner la suggestion.

+0

Merci, j'ai déjà essayé cela mais cela jette une erreur. J'ai téléchargé l'erreur dans le message d'origine. Il semble dans la syntaxe JSON que vous ne pouvez pas avoir une clé en double. J'ai également parcouru le matériel officiel mais ils ne donnent pas beaucoup d'informations sur terraform avec la syntaxe JSON d'où le Q. – lankan

+0

Êtes-vous sûr de que vous avez suivi ma réponse? L'erreur que vous avez collée concerne le problème que vous essayez d'utiliser deux 'file' dans un 'provisioner'. Quelle erreur obtenez-vous si vous passez à ma solution? – BMW

+0

Excuses, l'erreur que j'obtiens quand j'essaie votre approche est 'SyntaxError: Duplicate key 'provisioner' sur la ligne 63' – lankan