多云管理之Terraform

引言

站在SRE的视角,公有云的兴起及大规模普及应用,解决了过去一直无法根本解决的成本和资源快速扩展问题,但同时又衍生出了新的问题。

问题1:容灾机制对用户不可见,出现问题只能等待云商解决,用户缺乏主动可控手段,而近几年各大主流云商出现多次重大故障,使得使用单个公有云成为了一个风险较高的选择

问题2:公有云本质上是商业属性,因各自的产品及机房节点布局差异,单个公有云很难完全满足业务需求,但各个云商的一些壁垒限制,多云资源的管理成本又变的较高,尤其是自动化的开发适配成本

Terraform的价值

Terraform的出现有效的解决了上述问题,它的理念是基础设施即代码,允许用户通过编写代码的方式构建、变更和版本化云基础资源,下面我们先谈谈Terraform的优势

1、支持多个主流云商,如AWS、Azure、阿里云等,可以实现统一管理不同公有云的资源

2、所有的资源创建及变更都以代码形式存在,在遇到灾难故障时,可以快速在当前环境或者其它云上恢复业务

3、声明式的语法,使得定义资源变的很简单,可以实现复杂基础设施(数据库、网络等)的自动化部署

4、Terraform的配置文件可以通过Git等版本控制系统进行管理,便于团队协作和变更追踪

5、可以与CI/CD系统、工单系统等进行集成,实现自动化的部署及资源创建、回收。

Terraform的使用

安装

Terraform的安装使用也非常简单,以Linux举例,执行以下命令即可完成安装

wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform

示例

只需通过创建一个或者多个.tf文件用来描述需要管理的基础设施,即可实现资源管理,下面为示例:

        在阿里云上创建一个VPC和一个交换机

provider "alicloud" {
  region = "cn-hangzhou"
}

resource "alicloud_vpc" "default" {
  vpc_name = "terraform_test_vpc"
  cidr_block = "10.0.0.0/8"
}

resource "alicloud_vswitch" "default" {
  vpc_id            = alicloud_vpc.default.id
  cidr_block        = "10.0.0.0/16"
  availability_zone = "cn-hangzhou-b"
}

        在AWS和Azure上同时创建负载均衡

provider "aws" {
  region = "us-west-2"
}

provider "azurerm" {
  subscription_id = "YOUR_SUBSCRIPTION_ID"
}

resource "aws_elb" "example" {
  name               = "example-elb"
  availability_zones = ["us-west-2a", "us-west-2b"]

}

resource "azurerm_load_balancer" "example" {
  name                = "example-lb"
  location            = "East US"
  resource_group_name = "example-resource-group"

}

常用命令

# 在包含有Terraform配置文件的目录执行,用来初始化Terraform工作空间,执行命令后会下载所需的插件,如AWS、aliyun等
terraform init

# 预览变更的配置,用来执行部署前的检查
terraform plan

# 执行配置文件的变更计划
terraform apply

# 验证结果
terraform show

# 销毁所有配置文件定义的资源
terraform destroy

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值