云网牛站
所在位置:首页 > Linux云服务器 > 在Consul KV Store中储存Terraform State

在Consul KV Store中储存Terraform State

2020-01-04 15:11:30作者:高风科稿源:云网牛站

Terraform将其配置和有关其管理的基础结构的信息存储在一个称为state的文件中,该state用于跟踪元数据并将实际资源映射到配置,默认情况下,您将在项目文件夹中本地找到此state文件,名为terraform.tfstate。安全建议将Terraform State保持在高度可用的远程数据存储位置,远程state使团队成员之间可以共享,Terraform支持将state存储在:Terraform Cloud、HashiCorp Consul、Amazon S3、Google Cloud Storage (GCS)、Alibaba Cloud OSS、Swift、Etcd、http。在本文中,我们将探讨如何在HashiCorp Consul KV数据存储中存储基础结构store,该后端支持store锁定,并且有利于团队成员之间的store共享。

 

一、设置Consul Cluster

您需要具有可用的Consul Cluster,然后才能继续进行设置,参考在Ubuntu 18.04/16.04系统上设置Consul Cluster的方法在CentOS、RHEL 8/7上安装Consul 1.4.4的方法

 

二、将Terraform配置为使用Consul

编辑Terraform main.tf文件并配置Consul后端存储。

# Backend

#terraform {

#  backend "local" {

#    path = "terraform.tfstate"

#  }

#}

terraform {

backend "consul" {

address  = "consul.example.com:8500"

scheme   = "http"

path     = "tf/terraform.tfstate"

lock     = true

gzip     = false

}

}

注:

http://consul.example.com:8500是您的Consul群集的URL。

tf/terraform.tfstate是Consul KV store中的路径。

lock是锁定所有可能写入状态的操作的状态。

gzip用于使用gzip压缩状态数据。

如果您具有ACL身份验证,则需要设置:

access_token / CONSUL_HTTP_TOKEN – (Required) Access token

初始化新的或现有的Terraform工作目录:

$ terraform init -upgrade=true

Upgrading modules...

....

Initializing the backend...

Successfully configured the backend "consul"! Terraform will automatically

use this backend unless the backend configuration changes.

Initializing provider plugins...

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see

any changes that are required for your infrastructure. All Terraform commands

should now work.

If you ever set or change modules or backend configuration for Terraform,

rerun this command to reinitialize your working directory. If you forget, other

commands will detect it and remind you to do so if necessary.

$ terraform apply

如果您在Consul用户界面中导航至“Key/Value”部分,则会看到写入的路径:

在Consul KV Store中储存Terraform State

您可以读取state文件的内容:

在Consul KV Store中储存Terraform State

 

相关主题

Consul集群部署:实现分布式系统的服务发现与配置

精选文章
热门文章