0

que je recherchais à la pile LAMP pré-défini pour le modèle EC2 instance Amazon sur Bluemix et trouvé le morceau de code suivant:Bluemix-Cloud Automation Manager référencement des fichiers externes

"awsPHPInstance": { 
      "source": "git::https://github.com/camc-experimental/terraform-modules.git?ref=master//aws/ami_instance", 
      "aws_ami": "${module.find_ami.aws_ami}", 
      "aws_instance_type": "t2.micro", 
      "aws_subnet_id": "${module.awsNetwork.subnet_id}", 
      "aws_security_group_id": "${module.awsNetwork.application_security_group_id}", 
      "aws_cam_public_key_id": "${aws_key_pair.cam_lamp_public_key.id}", 
      "hostname": "${var.php_instance_name}", 
      "module_script": "files/createCAMUser.sh", 
      "module_script_name": "createCAMUser.sh", 
      "module_script_variable_1": "${var.cam_user}", 
      "module_script_variable_2": "${var.cam_pwd}" 
     } 

Je ne suis pas très clair sur "module_script": "files/createCAMUser.sh". Où est le dossier de ce fichier qui contient exactement le script shell? D'après ce que je comprends, nous ne pouvons avoir qu'un seul modèle de terraform autonome.

+0

Veuillez fournir un lien vers le modèle que vous référencez. –

+0

Son également référencé ici https://cam-proxy-ng.ng.bluemix.net/cam/instances/#!/deployTemplateEditorWithNoParam/e7b40c0dca9bf7d4ef807bc0b8f0e56c '" module_script ":" files/installMongoDB.sh "' J'ai compris qu'il arrive pour le lien github référencé dans la ressource. Mais que faire si je veux référencer le fichier .pem que je ne peux pas télécharger sur github? Comment puis-je référencer un fichier externe dans un fichier terraform CAM? – aaj

Répondre

0

Pour votre première question, le script se trouve réellement dans la structure du module dans le repo git. Lorsque terraform est exécuté à partir de CAM, il fait un « terraformer get » qui tire dans tout de « source »: « git :: https://github.com/camc-experimental/terraform-modules.git?ref=master//aws/ami_instance »

Le fichier de script est effectivement emballé dans le module dans un dossier nommé « fichiers »

le module utilise la syntaxe suivante pour référencer le fichier:

données "template_file" "default" { template = "$ {fichier (" $ {} path.module/$ {} var.module_script »)} "

Pour votre deuxième question, une solution possible est de base64 coder le co ntents du fichier pem et passez-le dans votre modèle comme une chaîne d'entrée plutôt que d'essayer de le lire à partir d'un fichier