Terraform, чтобы повторить local-exec в случае неудачи с первой попытки.
Пример Здесь я пытаюсь установить python на виртуальной машине Azure Linux с помощью команды запуска z vm. У меня нет доступа по виртуальной машине через ssh, поэтому я использую вызов API Azure по https с помощью az cli. Из-за проблем с сетью иногда загружаются пакеты или происходит сбой двоичного файла, и необходимо выполнить повторный запуск С терраформой это не получается в случае возникновения таких проблем. В ansible у нас есть возможность повторить попытку, но я не могу найти такое решение для terraform
Ansible код, который поддерживает повтор
Ansible код:
- hosts: 127.0.0.1
connection: local
tasks:
name: Install App
shell: |
yum install myapp
register: task_result
until: task_result.rc == 0
retries: 2
delay: 5
ignore_errors: yes
Terraform code
enter code here
#Install python27-python-pip
resource "null_resource" "prerequisites" {
depends_on = [ "null_resource.zipfile" ]
provisioner "local-exec" {
command = "az vm run-command invoke -g
'${azurerm_virtual_machine.myserver.resource_group_name}' -n
'${azurerm_virtual_machine.myserver.resource_group_name}' --
command-id RunShellScript --scripts 'yum -y install python27-python-
pip && scl enable python27 bash >> /tmp/install.log'"
on_failure = "fail"
}
}