Копия AWS s3 зависает после большой передачи при запуске в Ansible от Terraform - PullRequest
1 голос
/ 15 января 2020

Я предоставляю большой (r5.2xl) экземпляр ec2 с Terraform и настраиваю с помощью Ansible. Установочный комплект приложения и данные объемом 640 ГБ находятся в ведре S3 в моем регионе, к которому у меня есть полный доступ. Моя первая пьеса использует модуль оболочки для вызова aws s3 cp --recursive cli для перемещения данных на том EBS не-root, объемом 2 ТБ, смонтированный в /opt/app.

Я могу Скажите, что задача передает все данные, но это никогда не заканчивается. Мой единственный симптом - это процесс на целевом компьютере, на котором запущен AnsiballZ_command.py. Не похоже, что он делает много, и его убийство не влияет на книгу или процесс Terraform. Я подтвердил, что могу запускать передачу напрямую из cli на подготовленном компьютере, и когда я перемещаю туда книги воспроизведения, они тоже запускаются успешно.

Единственный вариант на этом этапе - убить TF мой файл состояния и принудительный ручной разрыв.

Как правильно это сделать?

Мой код TF (v0.11.11), за исключением информации о соединении, запускается из нулевого_ресурса:

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
  }

И, моя Ansible задача:

    - name: Sync Spatialkat S3 to local
      shell: >
              aws s3 cp --recursive s3://{{ src_bucket }}/{{ root_path }}/{{ release }}
              {{ dest_path }}/{{ root_path }}/{{ release }}
...