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
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.
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.
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
#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é).