terraform


Error: Error acquiring the state lock

terraform force-unlock -force xxxxx-xxxx-xxx-xxxxx
ps aux | grep terraform
sudo kill -9 <process_id>

vultr providers

vps

  • https://registry.terraform.io/providers/vultr/vultr/latest/docs/resources/instance

main.tf

resource "vultr_instance" "f0x" {
    plan = "vc2-2c-4gb"
    region = "sgp"
    os_id = 477
    label = "f0x"
    tags = ["f0x"]
    hostname = "f0x"
    enable_ipv6 = false
    backups = "disabled"
    ddos_protection = false
    activation_email = false
}

outputs.tf

version.tf

创建

销毁


aliyun providers

ecs

  • https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/instance

main.tf

outputs.tf

version.tf

创建

销毁

eci

  • https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/eci_container_group

main.tf

outputs.tf

version.tf

创建

销毁


huaweiyun providers

ecs

  • https://registry.terraform.io/providers/huaweicloud/huaweicloud/latest/docs/resources/compute_instance


aws providers

ec2

  • https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance


随机密码

json 输出

变量

  • https://lonegunmanb.github.io/introduction-terraform/3.3.%E8%BE%93%E5%85%A5%E5%8F%98%E9%87%8F.html

插件缓存

  • linux

  • windows

    %APPDATA% 目录下 terraform.rc 文件

providers 镜像

  • https://juejin.cn/post/7103449491524550664

terraform v0.13 或者更高的版本中提供了一个 providers mirror 命令,可以下载当前配置的 provider 到本地的目录中。然后可以通过下载的目录配置 network mirror 等。

在命令行配置文件可以定义 provider_installation 块配置来修改 terraform 默认的插件安装行为。所以可以指定为从本地/network mirror 安装初始化 provider。

在模版的目录下执行下载命令

下载完成后会生成类似一个如下结构的目录,这个目录结构可以直接当作本地filesystem mirror使用。如果要配置network mirror,使用此目录结构为站点目录。

将下载的目录移动到 /tmp

编辑 ~/.terraformrc

此时再次 init,就会从 /tmp 去加载 providers

对于不同的 providers ,需要手动去一个个下载,然后移动到指定目录下,虽然麻烦,但是可以有效提高init的速度.