1 | Trerraform的使用及创建CVM

导读:本篇文章讲解 1 | Trerraform的使用及创建CVM,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1 Trerraform简介

Trerraform 是一种部署技术,任何想要通过基础设施即代码(Infrastructure as Code,IaC)方法来置备和管理基础设施的人,都可以使用这种技术。基础设施指的主要是基于云的基础设施,不过从技术上讲,任何能够通过应用程序编程接口(Application Programming Interface,API)进行控制的东西都可以算作基础设施。基础设施即代码是通过机器可读的定义文件来管理和置备基础设施的过程的。我们使用 IaC 来自动完成原本要由人手动完成的过程。

2 Trerraform的安装

2.1 参考地址

https://developer.hashicorp.com/terraform/downloads

在这里插入图片描述
在这里插入图片描述

2.2 安装方式

 sudo yum install -y yum-utils
 sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
 sudo yum -y install terraform

查看terraform的版本

terraform -version

3 使用Terraform管理腾讯云

在这里插入图片描述

  • 一次性配置 provider 文件以支持Tencent Cloud的OpenAPI
  • 使用Terraform配置语法生成 .tf 资源文件
  • 使用CLI实现腾讯云资源的管理

Terraform会将整个资源部署情况更新在 *.tf.state 文件中,让用户在前端控制台和后端平台都清晰的把控自己的云资源。

3.1 创建帐号并授权

登陆访问管理-用户-用户列表-新建用户,按照自己的方式选择创建用户,我选择了快速构建
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 添加Terraform的环境变量

vim ~/.profile

 // Move terraform
$ mkdir downloads
$ mv terraform downloads/
$ vim ~/.profile
// Add terraform PATH
export PATH="$PATH:~/downloads"

重新加载~/.profile文件

 $ source ~/.profile

查看Terraform当前版本

$ terraform -version

3.3 配置provider文件

在新目录下创建 provider.tf 文件,填入秘钥和区域信息

    $ vim provider.tf
    
    //provider.tf
    provider "tencentcloud" {
        id  = "AKID****************"
        ke = "QdcM***************"
        region     = "ap-hongkong"
    }

注意:

保存该文件,执行 terraform init 初始化Terraform。此步骤,Terraform会自动检测 provider.tf文件中的 provider 字段,发送请求到Terraform官方GitHub下载最新版本腾讯云资源的模块和插件,初始化成功时当前脚本的版本信息也会显示出来。

腾讯云提供了另一种更为安全可靠的方式,把秘钥信息放在环境变量中配置

// Configure the secret key in the environment path
$ export TENCENTCLOUD_SEID="xxxxxxxxx"
$ export TENCENTCLOUD_SEY="xxxxxxxxx"
$ export TENCENTCLOUD_REGION="ap-hongkong"

provider.tf 文件中就可以省略掉相关信息

$ vim provider.tf  
// provider.tf
provider "tencentcloud" {}

3.4 terraform init

    // Initialize
    $ terraform init

在这里插入图片描述

3.5 terraform init -upgrade

指令更新脚本,获取最新的应用

3.6 terraform plan

预览将要完成的操作

3.7 terraform apply

进行资源部署

3.8 terraform destroy

进行资源销毁

4 部署腾讯云资源

这里提供一个在私有网络(VPC)下创建腾讯云服务器(CVM)的简单用例

4.1 创建服务器实例资源文件

    $ vim cvm.tf
    
    // Create a cvm
    resource "tencentcloud_instance" "cvm_test" {
        instance_name = "cvm-test"
        availability_zone = "ap-hongkong-1"
        image_id = "img-pi0ii46r"
        instance_type = "S2.SMALL1"
        system_disk_type = "CLOUD_PREMIUM"
      
        security_groups = [
            "${tencentcloud_security_group.sg_test.id}"
        ]

        vpc_id = "${tencentcloud_vpc.vpc_test.id"
        subnet_id = "${tencentcloud_subnet.subnet_test.id}"
        internet_max_bandwidth_out = 10
        count = 1
    }

这里可以看到,该服务器关联的安全组、私有网络和子网后面并没有直接填写具体参数信息,可以通过调用相关资源tf文件中的 id 字段内容实现具体的资源分配。本例中调用的就是安全组tf文件: sg_test ,私有网络tf文件: vpc_test ,路由表tf文件: route_table.tf和子网tf文件: subnet_test ,具体内容分别如下:

4.2 创建私有网络资源文件

    $ vim vpc.tf
    
    // Create a vpc
    resource "tencentcloud_vpc" "vpc_test" {
        name = "vpc-test"
        cidr_block = "10.0.0.0/16"
    }

4.3 创建子网资源文件

    $ vim subnet.tf
    
    // Create a subnet
    resource "tencentcloud_subnet" "subnet_test" {
        name = "subnet-test"
        cidr_block = "10.0.1.0/24"
        availability_zone = "ap-hongkong-1"
        vpc_id = "${tencentcloud_vpc.vpc_test.id}"
        route_table_id = "${tencentcloud_route_table.rtb_test.id}"
    }

4.4 创建路由表资源文件

    $ vim route_table.tf
     
    // Create a route table
    resource "tencentcloud_route_table" "rtb_test" {
        name = "rtb-test"
        vpc_id = "${tencentcloud_vpc.vpc_test.id}"
    }

4.5 创建安全组和安全规则资源文件

    $ vim security_group.tf
    
    // Create a security group and rule
    resource "tencentcloud_security_group" "sg_test" {
        name = "sg-test"    
    }

    resource "tencentcloud_security_group_rule" "sg_rule_test" {
        security_group_id = "${tencentcloud_security_group.sg_test.id}"
        type = "ingress"
        cidr_ip = "0.0.0.0/0"
        ip_protocol = "tcp"
        port_range = "22,80"
        policy = "accept"
    }

执行 terraform plan 查看部署计划,一共有6个资源计划创建
在这里插入图片描述
在这里插入图片描述
参数解释:

  • +代表新添加的资源
  • 当销毁资源时,参数前面对应的符号会变为-
  • 更改一些参数需要重新部署资源时,该资源前面的符号为-/+
  • 在旧参数和新参数内容之间有→符号标识
    在这里插入图片描述
    执行 terraform apply 进行资源创建
    在这里插入图片描述
    输入【yes】 ,显示成功创建资源
    在这里插入图片描述

4.6 验证

到控制台进行查看创建的是否正确
在这里插入图片描述

4.7 销毁资源

在这里插入图片描述
输入【yes】,显示成功销毁资源
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/79897.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!