web-dev-qa-db-ja.com

TerraformはAWS EC2インスタンスにファイルをコピー/アップロードします

Terraformを使用してインスタンスを作成しながらAWS EC2インスタンスにコピーまたはアップロードしたいCronJobとシェルスクリプトがあります。

tried tried

  1. ファイル・プロビジョナー:しかし、WOKRINGではなく、このオプションはすべてのTerraformバージョンでは機能しません
      provisioner "file" {
        source      = "abc.sh"
        destination = "/home/ec2-user/basic2.sh"
      }
 _
  1. データテンプレートファイルオプションを試しました
    data "template_file" "userdata_line" {
      template = <<EOF
    #!/bin/bash
    mkdir /home/ec2-user/files2
    cd /home/ec2-user/files2
    Sudo touch basic2.sh
    Sudo chmod 777 basic2.sh
    base64 basic.sh |base64 -d >basic2.sh
    EOF
    }
 _

すべてのオプションを試してみましたが、それらのどれも作業しません。
[。]を助けたり助言してください。
[。]私は長い間これに苦労しているので、Terraformが新しいことに新しいものです。

2
pratik

EC2インスタンスに接続詳細を持つファイルプローバを使用する必要があります。サンプル設定は次のようになります。

provisioner "file" {
  source      = "${path.module}/files/script.sh"
  destination = "/tmp/script.sh"

  connection {
    type     = "ssh"
    user     = "root"
    password = "${var.root_password}"
    Host     = "${var.Host}"
  }
}
 _

ユーザー名/パスワード、秘密鍵、さらにはBastionホストを使用して接続できます。詳細については https://www.terraform.io/docs/provisioners/connection.html

0
Jeevagan