[Terraform] Docker résout le délai d'expiration lors de la tentative de création de ressources Azure sur une machine Windows

Qu'est-il arrivé

Lorsque j'essaie de créer des ressources Microsoft Azure à l'aide de Terraform sur une machine Windows, le plan terraform expire.

C:\path\to\terraform> terraform plan

Error: timeout while waiting for plugin to start

Cause

Il y avait un problème. Error: Failed to instantiate provider "azurerm" to obtain schema: timeout while waiting for plugin to start

Cela se produit-il lorsque vous utilisez un produit TREND MICRO (antivirus, etc.) sous Windows? Et il y a une cause dans le golang, et ce n'est pas une contre-mesure du côté de Terraform.

Solution (solution de contournement)

Ce n'est peut-être pas grave si vous pouvez prendre des mesures telles que «se procurer mac / linux» et «désactiver le antivirus», mais dans mon cas, ce n'était pas le cas. Nous allons exécuter un conteneur Docker basé sur Linux sur une machine Windows et y exécuter Terraform.

Préparation des fichiers, etc.

Structure des dossiers

your-folder-name/
 ├─ docker/
 │   └─ Dockerfile
 ├─ terraform/
 │   ├─ aaa.tf
 │   ├─ bbb.tf
 │   └ ...
 └─ docker-compose.yml

Dockerfile

FROM alpine:3.7

ARG terraform_version="0.13.1"

# install terraform.
RUN wget https://releases.hashicorp.com/terraform/${terraform_version}/terraform_${terraform_version}_linux_amd64.zip && \
    unzip ./terraform_${terraform_version}_linux_amd64.zip -d /usr/local/bin/

# set time-zone=JST
RUN apk --update add tzdata && \
    cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && \
    apk del tzdata && \
    rm -rf /var/cache/apk/*

# create workspace.
COPY ./terraform /root/terraform

# move to workspace
WORKDIR /root/terraform

docker-compose.yml

version: "3"
services:
  terraform:
    container_name: "terraform"
    image: local/terraform
    build:
      context: ./
      dockerfile: docker/Dockerfile
    volumes:
      - ./terraform:/root/terraform

Courir

#Créez une image Docker. Seule la première fois est OK.
> docker-compose build

#Démarrage et connexion du conteneur
> docker-compose run --rm terraform

###Après cela, le travail sera effectué à l'intérieur du conteneur Docker.

#Exécutez Terraform
$ terraform init
$ terraform plan
$ ...

#Une fois terminé. Quittez le conteneur Docker.
$ exit

Cela l'a résolu (évité).

Recommended Posts

[Terraform] Docker résout le délai d'expiration lors de la tentative de création de ressources Azure sur une machine Windows
Quand j'ai essayé de créer un environnement pour PHP7.4 + Apache + MySQL avec Docker, je suis resté bloqué [Windows & Mac]
J'ai construit un environnement CentOS 8 avec Vagrant et essayé de sync_folder, mais j'ai eu une erreur, donc je l'ai résolue.
Lorsque j'ai essayé d'exécuter Azure Kinect DK avec Docker, il a été bloqué par le CLUF
Notes sur la création de Jitsi Meet sur Azure avec docker-compose
Mémorandum: Quand j'ai essayé TensorFlow avec Tribuo, cela n'a pas fonctionné, alors je suis parti en voyage pour retrouver le chef de famille et je me suis perdu.
01. J'ai essayé de créer un environnement avec SpringBoot + IntelliJ + MySQL (MyBatis) (Windows 10)
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 6.x)
Essayez Alfresco 6.0 sur Windows (Docker sera introduit en même temps)
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 5.x)
Lorsque j'essaye de m'inscrire avec devise, il redirige automatiquement vers root_path
Lors de l'enregistrement d'un nouvel utilisateur, j'ai eu une erreur appelée ActiveRecord :: NotNullViolation et comment y faire face.
Créer un environnement avec Docker sur AWS
J'ai créé une application d'apprentissage automatique avec Dash (+ Docker) part3 ~ Practice ~
[Première construction d'environnement] J'ai essayé de créer un environnement Rails6 + MySQL8.0 + Docker sur Windows 10.
[Résolution d'erreur] Se produit lors de la tentative de création d'un environnement pour le printemps avec docker
Créez un environnement de développement pour créer des applications Ruby on Jets + React avec Docker
[Rails] Comment créer un environnement avec Docker
J'ai eu une erreur en essayant d'installer sbt pour créer un environnement de développement Scala
Une histoire sur le fait d'avoir du mal à construire PHP 7.4 sur CentOS 8 de GCE