前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >terraform简单的开始-安装和一些配置

terraform简单的开始-安装和一些配置

原创
作者头像
对你无可奈何
发布2023-09-13 20:38:09
7110
发布2023-09-13 20:38:09
举报
文章被收录于专栏:运维专栏

terraform的安装:

官方下载:

浏览器打开terraform官方主页https://www.terraform.io/ 点击Download Terraform 跳转到程序下载页面:

找到自己对应的操作系统,按照操作系统选择安装terraform的方式:

)

linux为例:

我有一台 rocky linux 工作主机也是直接参照官方文档安装的:

代码语言:txt
复制
terraform --version

不一样的windows:

官方的方式

注:我的系统是Windows10专业版!

but 要配置系统变量....我个人是很嫌弃麻烦。这里参考了ucloud在知乎上面的Chocolate的安装方式:

Chocolate

Terraform初体验(一) windows安装。不求甚解,先跑一遍:

以管理员身份打开powershell:

安装Chocolatey
  1. 以管理员身份打开PowerShell,输入Get-ExecutionPolicy,返回Bypass则代表目前执行的是绕过策略来安装。如果返回的是Restricted受限制的,则需要运行Set-ExecutionPolicy AllSigned 或者 Set-ExecutionPolicy Bypass -Scope Process。
  1. 既然是Restricted受限制的,复制下面这条命令即可安装完成,这里没有太多坑。Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::Sec
通过Chocolatey安装Terraform

执行命令choco install terraform 按照提示中间输入y,安装完成后输入terraform --version 确认安装成功。

如果有网络或者其他问题可以参考ucloud的知乎笔记:https://zhuanlan.zhihu.com/p/266784852

vscode相关插件的安装

vs code 安装就忽略了 安装一下terraform的组件:

vscode terraform 腾讯云

凭证获取

参照腾讯云官方文档https://cloud.tencent.com/document/product/1653/82868

在首次使用 Terraform 之前,请前往 云 API 密钥页面 申请安全凭证 SecretId 和 SecretKey。若已有可使用的安全凭证,则跳过该步骤。

  1. 登录 访问管理控制台,在左侧导航栏,选择访问密钥 > API 密钥管理
  2. 在 API 密钥管理页面,单击新建密钥,即可以创建一对 SecretId/SecretKey。

创建一个项目文件夹,使用vs code打开:

创建一个简单demo?

vscode 打开文件夹,以windows为例:

从main.tf开始,创建一个main.tf文件

参照官方文档:

代码语言:txt
复制
terraform {
  required_providers {
    tencentcloud = {
      source = "tencentcloudstack/tencentcloud"
      version = "1.81.25"
    }
  }
}

provider "tencentcloud" {

  # Configuration options
}

现在要在provider中引入腾讯云的配置。怎么样合理的引用呢?询问了一下cluda:

image.png
image.png

总结一下:

  1. 直接在provider模块中指定,这种应该是最直接的
  2. 环境变量
  3. 创建一个tfvar的文件写入
  4. 使用命令行参数

我个人这里下使用第三种了创建一个tfvar的文件...毕竟展示过程的时候可以不显示我的密钥哈哈哈哈

terraform init

初始化项目:

代码语言:txt
复制
 terraform init

当然也会出现下面这种状况

参照:https://cloud.tencent.com/document/product/1653/82912,到用户加目录下创建.terraformrc文件。阿里云或者华为云应该也有类似的方法:

代码语言:txt
复制
provider_installation {
  network_mirror {
    url = "https://mirrors.tencent.com/terraform/"
    // 限制只有腾讯云相关Provider, 从url中指定镜像源下载
    include = ["registry.terraform.io/tencentcloudstack/*"]   
  }
  direct {
    // 声明除了腾讯云相关Provider, 其它Provider依然从默认官方源下载
    exclude = ["registry.terraform.io/tencentcloudstack/*"]
  }
}

简单例子:查询区域下可用区列表:

创建一个 变量的文件credentials.tfvars

代码语言:txt
复制
secret_id  = "xxxxxxxxxxxxxxx"
secret_key = "xxxxxxxxxxx"

创建main.tf文件:

代码语言:txt
复制
terraform {
  required_providers {
    tencentcloud = {
      source = "tencentcloudstack/tencentcloud"
      version = "1.81.25"
    }
  }
}
variable "region" {
  description = "腾讯云地域"
  type    = string
  default     = "ap-shanghai"
}
variable "secret_id" {}
variable "secret_key" {}

# 设置腾讯云提供者
provider "tencentcloud" {
  secret_id  =var.secret_id
  secret_key = var.secret_key 
  region = var.region
}
data "tencentcloud_availability_zones" "availability_zones" {}

output "zones" {
  value = data.tencentcloud_availability_zones.availability_zones
}

terraform plan 检查:

代码语言:txt
复制
 terraform plan -var-file=credentials.tfvars

terraform apply执行:

代码语言:txt
复制
terraform apply -var-file=credentials.tfvars
image.png
image.png

就是列一个简单例子这里,主要是为了密钥文件与main 分开 当然了这里还有data output这些字段也会逐步展现一下!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • terraform的安装:
    • 官方下载:
      • linux为例:
        • 不一样的windows:
          • 官方的方式
          • Chocolate
          • 凭证获取
          • 创建一个简单demo?
          • terraform init
          • 简单例子:查询区域下可用区列表:
      • vscode相关插件的安装
      • vscode terraform 腾讯云
      相关产品与服务
      云资源自动化 for Terraform
      云资源自动化 for Terraform(Infrastructure Automation for Terraform)是腾讯云基于全球备受欢迎的基础设施即代码(Infrastructure as Code)工具 Terraform 插件扩展体系下,提供的腾讯云资源部署、实施和管理的自动化能力,将 Terraform 完善成熟的基础设施自动化工具能力和腾讯云的云资源服务能力相互联接,让客户可以方便地实施 DevOps 和多云部署等模式。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档