Amazon s3 从Terraform在Ansible中运行时,AWS s3副本在大传输后挂起

Amazon s3 从Terraform在Ansible中运行时,AWS s3副本在大传输后挂起,amazon-s3,ansible,terraform,Amazon S3,Ansible,Terraform,我正在使用Terraform配置一个大型(r5.2xl)ec2实例,并使用Ansible进行配置。该应用程序的安装工具包和数据(640GB)位于我所在地区的S3存储桶中,我可以完全访问该存储桶。我的第一个重头戏使用shell模块调用aws s3 cp--recursive cli将数据移动到非根2TB EBS卷,该卷安装在/opt/app上 我可以看出任务传输了所有数据,但它永远不会结束。我唯一的症状是目标机器上运行AnsiballZ_command.py的进程。它看起来做的不多,杀死它不会影响

我正在使用
Terraform
配置一个大型(r5.2xl)ec2实例,并使用
Ansible
进行配置。该应用程序的安装工具包和数据(640GB)位于我所在地区的S3存储桶中,我可以完全访问该存储桶。我的第一个重头戏使用shell模块调用aws s3 cp--recursive cli将数据移动到非根2TB EBS卷,该卷安装在/opt/app上

我可以看出任务传输了所有数据,但它永远不会结束。我唯一的症状是目标机器上运行AnsiballZ_command.py的进程。它看起来做的不多,杀死它不会影响剧本或地形过程。我已经验证了我可以在配置的机器上直接从cli运行传输,当我将剧本移动到那里时,它们也会成功运行

此时唯一的选择是杀死TF,用软管冲洗我的状态文件并强制手动拆除

正确的方法是什么

我的TF(v0.11.11)代码,减去连接信息,从空\u资源运行:

provisioner "remote-exec" {
    inline      = ["sudo apt install --yes cowsay"]
  }
  provisioner "local-exec" {
    command = <<EOT
      sleep 30;
         >spookykat.ini;
         echo "[spookykat]" | tee -a spookykat.ini;
         echo "${element(aws_instance.this.*.private_ip, count.index)} ansible_user=${local.ec2-user} ansible_private_key_file=${var.private_key_path}" | tee -a spookykat.ini;
      export ANSIBLE_HOST_KEY_CHECKING=False;
      export ANSIBLE_NOCOLOR=true;
      export ANSIBLE_LOG_PATH="./ansible_log.log";
      export ANSIBLE_DISPLAY_ARGS_TO_STDOUT=true;
         ansible-playbook -u ${local.ec2-user} --private-key ${var.private_key_path} -i spookykat.ini ${path.root}/playbooks/spookykat_configure.yml --extra-vars @${local.extra-vars-json}
    EOT
  }

嗨,弗兰克,欢迎来到SO。虽然这个问题由于不在主题上而面临关闭的严重风险,但我想指出,使用python编写的
awscli
不太可能是移动640GB左右数据的最佳选择。使用或类似的本机高性能实用程序可能会更幸运。祝你好运感谢您的回复和提示。我之所以选择TF,是因为没有它,流程就可以运行。在我最近的一次实验中,我进行了重构,将剧本发送到配置好的主机,然后远程执行器运行它。前两次尝试都很完美。嗨,弗兰克,欢迎来到SO。虽然这个问题由于不在主题上而面临关闭的严重风险,但我想指出,使用python编写的
awscli
不太可能是移动640GB左右数据的最佳选择。使用或类似的本机高性能实用程序可能会更幸运。祝你好运感谢您的回复和提示。我之所以选择TF,是因为没有它,流程就可以运行。在我最近的一次实验中,我进行了重构,将剧本发送到配置好的主机,然后远程执行器运行它。前两次尝试运行良好。
    - name: Sync Spatialkat S3 to local
      shell: >
              aws s3 cp --recursive s3://{{ src_bucket }}/{{ root_path }}/{{ release }}
              {{ dest_path }}/{{ root_path }}/{{ release }}