Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何2分钟用terraform创建腾讯云CLB+CVM+Mysql资源?

如何2分钟用terraform创建腾讯云CLB+CVM+Mysql资源?

原创
作者头像
TCS-F
发布于 2024-05-14 06:27:27
发布于 2024-05-14 06:27:27
44000
代码可运行
举报
文章被收录于专栏:云攻略专区云攻略专区
运行总次数:0
代码可运行

大家好,随着腾讯云业务资源不断完善,公司业务不断增长,需要使用的资源和运维配置也越来越多,为大大降低资源配置复杂度,以及释放运维人员配置精力,近期发现国际多家云厂商和海外多云资源纳管SaaS平台,开始使用【Terraform】中间件生态产品,这个产品中间件通过创建一个prider虚拟中间层,实现上层业务命令转换到底层云平台的业务指令,阿里云的云架构图设计资源,就是通过Terraform中间件来完成自动业务架构创建使用的。

Terraform中间件
Terraform中间件

so,我们就当terraform是一套工具编排平台,支持对多云资源的增/删/改/查等业务指令集。下面就由我为大家整理一份,非常简单的入门级terraform使用教程。

1.创建terraform的.tf剧本集:

创建一个Terraform脚本来部署腾讯云资源需要使用腾讯云的Terraform提供者。

以下是一个基本的示例,它将创建一个VPC,两台云服务器,一个负载均衡器(CLB),以及一个MySQL数据库实例。请注意,你需要替换其中的一些占位符(如<YOUR_SECRET_ID><YOUR_SECRET_KEY>)为你的腾讯云账户信息。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
provider "tencentcloud" {
  secret_id  = "<YOUR_SECRET_ID>"
  secret_key = "<YOUR_SECRET_KEY>"
  region     = "ap-guangzhou"
}

resource "tencentcloud_vpc" "my_vpc" {
  name       = "my_vpc"
  cidr_block = "10.0.0.0/16"
}

resource "tencentcloud_subnet" "my_subnet" {
  vpc_id            = tencentcloud_vpc.my_vpc.id
  name              = "my_subnet"
  cidr_block        = "10.0.1.0/24"
  availability_zone = "ap-guangzhou-3"
}

resource "tencentcloud_instance" "my_instance" {
  count             = 2
  availability_zone = "ap-guangzhou-3"
  image_id          = "img-pi0ii46r" # 以CentOS 7.2 64bit为例
  instance_type     = "S1.SMALL1"
  system_disk_type  = "CLOUD_BASIC"
  system_disk_size  = 50

  subnet_id = tencentcloud_subnet.my_subnet.id
  vpc_id    = tencentcloud_vpc.my_vpc.id

  name = "my_instance-${count.index}"
}

resource "tencentcloud_clb_instance" "my_clb" {
  name = "my_clb"
}

resource "tencentcloud_clb_listener" "my_listener" {
  clb_id    = tencentcloud_clb_instance.my_clb.id
  protocol  = "HTTP"
  port      = 80
  name      = "my_listener"
}

resource "tencentcloud_clb_attachment" "my_attachment" {
  listener_id = tencentcloud_clb_listener.my_listener.id
  instance_id = tencentcloud_instance.my_instance[0].id
}

resource "tencentcloud_cdb_instance" "my_cdb" {
  vpc_id             = tencentcloud_vpc.my_vpc.id
  subnet_id          = tencentcloud_subnet.my_subnet.id
  availability_zone  = "ap-guangzhou-3"
  engine_version     = "5.7"
  instance_type      = "cdb.t1.2g"
  name               = "my_cdb"
  root_password      = "yourpassword"
  port               = 3306
  allocate_public_ip = true
}

output "vpc_id" {
  value = tencentcloud_vpc.my_vpc.id
}

output "subnet_id" {
  value = tencentcloud_subnet.my_subnet.id
}

output "instance_ids" {
  value = tencentcloud_instance.my_instance.*.id
}

output "clb_id" {
  value = tencentcloud_clb_instance.my_clb.id
}

output "cdb_id" {
  value = tencentcloud_cdb_instance.my_cdb.id
}

在运行此脚本之前,请确保你已经安装了Terraform,并且已经设置了腾讯云的API密钥。此外,你需要根据实际情况调整资源的配置,比如实例类型、磁盘大小、镜像ID、数据库版本等。

请注意,这个脚本是一个基础的示例,实际部署时可能需要更多的配置和安全设置,比如设置安全组规则来保护你的云服务器和数据库实例

2.在CVM云主机上配置完成Terraform安装与运行:

要使用Terraform运行上述脚本,请按照以下步骤操作:

  1. 安装Terraform: 如果你还没有安装Terraform,请访问Terraform官网下载并安装适合你操作系统的版本。
  2. 配置腾讯云API密钥: 你需要一个腾讯云账户,并且需要在腾讯云控制台中创建API密钥。将<YOUR_SECRET_ID><YOUR_SECRET_KEY>替换为你的实际API密钥信息。
  3. 编写Terraform配置文件: 将上述Terraform脚本保存到一个.tf文件中,例如main.tf
  4. 初始化Terraform: 打开命令行工具,导航到包含main.tf文件的目录,然后运行以下命令来初始化Terraform工作目录: terraform init 这将安装必要的Terraform提供者和模块。
  5. 计划部署: 运行以下命令来查看Terraform将要执行的操作:

这个命令会显示Terraform计划创建的资源,你可以检查这些信息以确保一切配置正确。

代码语言:txt
AI代码解释
复制
terraform plan
  1. 应用配置: 如果terraform plan的输出看起来正确,你可以通过以下命令来应用配置:
代码语言:txt
AI代码解释
复制
Terraform apply

在执行此命令时,Terraform会再次显示计划中的操作,并要求你确认是否继续。输入yes以确认并开始创建资源。

  1. 检查输出: 一旦terraform apply完成,如果你在脚本中定义了输出变量(如上述脚本中的output部分),Terraform将会打印这些输出。这些输出可以帮助你获取创建的资源的重要信息。
  2. 管理和更改资源: 如果你需要修改资源,只需更新main.tf文件中的配置,然后再次运行terraform apply。销毁资源: 当你不再需要这些资源时,可以运行以下命令来销毁所有由Terraform管理的资源:
代码语言:bash
AI代码解释
复制
terraform destroy

这将删除所有资源,并释放相关的费用。

请确保在执行任何Terraform命令之前,你已经理解了脚本的内容和将要执行的操作。特别是terraform applyterraform destroy,这两个命令会在你的腾讯云账户中创建和删除资源,可能会产生费用。

思考:

---随着多云都在对接Terraform产品中间层,未来支持多云纳管资源,创建APi集,从【云资源】+【安全日志】+【Devops编排】形成新的聚合云趋势发展,编排调度更智能化。冲破海外市场,国外依赖国外云资源和安全标准,但只要双边开放对接,咱们中国优秀云产品也能进入国际市场,获得海外国际企业认可,服务海外企业业务。

参考阅读:

1.https://zhuanlan.zhihu.com/p/86110888

2.官网:https://www.terraform.io/

3.腾讯云Terraform编排工具:https://cloud.tencent.com/product/tiat

4.阿里云编排工具:https://help.aliyun.com/zh/cloud-shell/use-terraform-to-manage-alibaba-cloud-resources?

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

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

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

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

评论
作者已关闭评论
暂无评论
推荐阅读
编辑精选文章
换一批
terraform 入门:创建腾讯云 k8s 集群
本文适合不喜欢在浏览器中点点点,并刚刚入门或者想要入门 terraform 的小伙伴。
谢正伟
2021/08/05
4.1K0
terraform 入门:创建腾讯云 k8s 集群
如何高效的进行腾讯云上的资源编排,一起来聊一聊Terraform
“腾讯云IaC最佳实践”系列文章希望通过介绍Terraform、Chef和Ansible等生态产品工具及相关案例,使用户能够更好地在腾讯云上实践IaC,为腾讯云用户提供增值服务。本文是“腾讯云IaC最佳实践”系列文章的第1篇。
生态产品团队
2019/07/22
18.7K4
Terraform系列二腾讯云CVM进一步相关玩法
紧接Terraform系列一腾讯云CVM相关简单创建。准备围绕着cvm先熟悉一下基本的流程。比如:系统盘扩容,挂载数据盘,帐号密钥ssh-key,绑定公网ip.研究一下官方文档体验一下!
对你无可奈何
2022/03/31
2.6K1
怎样用terraform管理现存资源
通过阅读前面几篇文章,希望大家了解了基础架构及代码的基本概念,以及如何使用packer和terraform在腾讯云上进行新云资源的高效编排。但是在现实世界里,云管理团队还要管理以前那些没有通过terraform管理的资源,本文会作出一个通用流程,方便大家使用。
刘宇雷
2019/08/21
3.4K0
怎样用terraform管理现存资源
如何把控制台上已有的资源导入terraform
对于老用户,常常有把控制台上已有的资源导入terraform的需求。本篇以把控制台上已有的eip资源为例,介绍如何导入已有资源到terraform编排中。同时将该资源与tf中创建的NAT网关相绑定。
王罡
2019/11/22
3.9K0
如何把控制台上已有的资源导入terraform
如何利用Terraform工具编排管理TcaplusDB
Terraform是国外很流行的资源编排工具,具体介绍可查看Hashicorp官网。TIC是腾讯云基于Terraform打造一款免费服务,可为不同云平台的基础架构资源提供易用、高效、安全的统一资源编排管理平台,通过使用声明型语言,兼容众多优秀的开源社区工具,同时提供代码编辑和视图编辑两种模式,有效降低学习成本和使用难度。TIC 使用代码版本管理的方式管理基础架构,保障基础设施的构建、管理和迁移的可靠性和安全性。具体产品介绍可参考TIC官网。TcalplusDB是腾讯去推出的一款全托管NoSQL数据库服务,可为用户提供高性能、低成本、易扩展、稳定、安全的存储服务,目前广泛应用于王者荣耀、刺激战场、穿越火线、火影忍者等数百款流行游戏,具体产品能力介绍可参考另一篇文章《腾讯云TcaplusDB基础能力介绍》。
温球良
2020/08/01
1.2K0
如何利用Terraform工具编排管理TcaplusDB
腾讯云Terraform应用指南(一)
《腾讯云Terraform应用指南》系列文章旨在帮助腾讯云用户借助Terraform,轻松使用简单模板语言来定义、预览和部署云基础结构,让用户通过IaC,基于腾讯云的OpenAPI一键创建或销毁多路资源。利用Terraform这把利器,帮助用户节约资源开销,提高从部署到运维的自动化生产力。
生态产品团队
2019/07/26
20.1K5
Terraform开启本地日志跟踪以及问题自查
|本文以tencentcloud terraform 为例,介绍使用terraform CLI过程中如何开启本地日志跟踪以及一些通用问题的自查方法
Sesede_被告警吵醒
2021/02/26
2K0
Terraform开启本地日志跟踪以及问题自查
TF在腾讯云创建mysql跨可用区只读实例
vpc、subnet、安全组等参考官方文档创建,主实例用广州地域的,只读实例使用上海的
arunma
2025/02/28
2630
TF在腾讯云创建mysql跨可用区只读实例
Terraform系列一腾讯云CVM相关简单创建
记得2019左右就看到过Terraform系列的文章和书籍,当时所有的业务都上云了管理也很是方便,看了一眼就没有作过多的研究。但本着对技术发展的前瞻敏锐性, 还是觉得这个东西是会火起来的。正巧最近泽阳大佬devops训练营https://www.yuque.com/devopsvip穿插上了Terraform!个人又开始体验了一把......
对你无可奈何
2022/03/30
4.2K5
terraform简单的开始-vpc cvm创建
一个 resource 块包含 resource 关键字、资源类型、资源名和资源块体三部分。这是terraform中创建资源常用的格式!
对你无可奈何
2023/09/20
6330
腾讯云支持 Terraform 开发实践
这篇文章从系统架构开始,到核心库讲解,到实践开发,再到单元测试,比较完整的描述了支持Terraform的开发全过程。
Techeek
2018/03/20
21K11
腾讯云支持 Terraform 开发实践
使用 Packer 创建镜像
HashiCorp 是一家国外基础软件提供商,主要开发支持多云部署的开源工具,旗下有6 款主流软件,Terraform、Consul、Vagrant、Nomad、Vault、Packer
Windows技术交流
2023/06/16
8950
Terraform资源定义梳理
资源是Terraform体系中最重要的组成元素, 每个资源块用来定义一个或多个基础产品实例, 它或者定义一个VPC,或者定义一个CVM或者一条DNS记录.
乔碧萝殿下
2019/12/27
6.8K1
通过terraform快速创建腾讯云基础资源
Terraform是一个IT基础架构自动化编排工具,可以用代码来管理维护IT资源。它编写了描述云资源拓扑的配置文件中的基础结构,例如虚拟机、存储账户和网络接口。Terraform的命令行接口(Command Line Interface,CLI)提供一种简单机制,用于将配置文件部署到腾讯云或其他任意支持的云上,并对其进行版本控制。
Vicwan
2020/03/12
8.4K0
Terraform语法入门
HCL是Terraform的配置语言,它是HashiCorp发明的一种声明式语言,能够以更加简短和人性化的方式来描述资源。本文主要介绍HCL配置语言的基本语法及使用,语法采用当前最新版本0.12。
oliverpei
2020/03/17
8.6K2
转载:《如何高效的进行腾讯云上的资源编排,一起来聊一聊Terraform》的几点补充说明
本文为HashiCorp公司亚太区架构师Liu Yulei先生原创。在阅读完专栏文章《如何高效的进行腾讯云上的资源编排,一起来聊一聊Terraform》后,Liu Yulei根据客户实践案例,对文中一些遗漏之处进行了补充说明,原文发表于github上,现转载过来供大家参考。
腾讯云-CEDRIC
2019/07/23
1.3K0
Terraform + Gitlab CI简单集成方案
利用Gitlab CI实现基础设施编排自动化,用户后续针对基础设施的管理使用Gitlab完成,提交基础设施变更后,会出发pr进行Gitlab CI流水线执行,从而实现基础设施DevOPS流程。
每周聚焦
2022/07/06
1K0
Terraform + Gitlab CI简单集成方案
Terraform—基础设施即代码(Iac)
IAC(基础设施即代码),是指通过编写代码来进行基础设施的定义,部署,更新与销毁。让基础设施的变更同代码一样,具有版本控制的能力,同时可以通过codeReview 进行审阅,保障其可靠性与一致性。只需要做好基础设施可变与不可变部分的划分,即可通过流水线工具及相关策略对可变部分进行动态调整,完成基础设施的自动化编排与管理。
tunsuy
2023/10/23
5410
Terraform—基础设施即代码(Iac)
Terraform:高效定义、启动和管理
视频:https://www.youtube.com/playlist?list=PLeLcvrwLe184_AH9mfXGn20EecskV6qaU
yeedomliu
2024/03/06
2370
Terraform:高效定义、启动和管理
推荐阅读
相关推荐
terraform 入门:创建腾讯云 k8s 集群
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验