CentOS 安装及使用 terraform 最新教程

 

一. 官网下载安装包
二. 解压到 /usr/local/bin目录
三. 检查terraform是否安装成功
四. 测试百度云-对象存储
    4.1 创建目录
    4.2 进入 terraform-test 目录。
    4.3 创建配置文件。
    4.4 初始化工作目录
    4.5 Terraform 管理 BOS 
    4.6 Terraform 创建 BOS 
    4.7 Terraform 删除 BOS 

 


一. 官网下载安装包

安装文档 hashicorp给出的安装文档

文档中包含下载地址,选择CentOS 的安装包点击下载,格式为.zip

下载地址:https://www.terraform.io/downloads.html

安装包链接:https://releases.hashicorp.com/terraform/0.12.28/terraform_0.12.28_linux_amd64.zip

二. 解压到 /usr/local/bin目录

下载完成后将 .zip解压到 /usr/local/bin 目录下,方便下一步配置PATH变量。解压后的 terraform是一个 binary 可执行文件,如图所示

解压命令:

~$ unzip terraform_0.12.28_linux_amd64.zip -d /usr/local/bin/
~$ cd /usr/bin
~$ sudo ln -s /usr/local/bin/terraform 
~$ source ~/.bash_profile

三. 检查terraform是否安装成功

直接在terminal中输入terraform,如果上一步的PATH配置成功,terminal会提示以下信息

terraform启动成功

四. 测试百度云-对象存储

   因为每个 Terraform 项目都需要创建 1 个独立的工作目录,所以先创建一个测试目录 terraform-test。 

4.1 创建目录

[root@test bin]#mkdir terraform-test

4.2 进入 terraform-test 目录。

[root@test bin]#cd terraform-test
[root@test terraform-test]#

4.3 创建配置文件。

Terraform 在运行时,会读取该目录空间下所有 *.tf 和 *.tfvars 文件。因此,您可以按照实际用途将配置信息写入到不同的文件中。下面列出几个常用的配置文件:

provider.tf           -- provider 配置
terraform.tfvars      -- 配置 provider 要用到的变量
varable.tf            -- 通用变量
resource.tf           -- 资源定义
data.tf               -- 包文件定义
output.tf             -- 输出

例如:创建 provider.tf 文件时,您可按以下格式配置您的身份认证信息:

[root@test terraform-test]# vim main.tf
provider "baiducloud" {
    access_key  = "LTA*****************NO2"
    secret_key  = "MOk8x0*************wwff"
    region           = "bj"
}

4.4 初始化工作目录

[root@test terraform-test]#terraform init


Initializing provider plugins...
- Checking for available provider plugins on https://releases.hashicorp.com...
- Downloading plugin for provider "alicloud" (1.25.0)...

4.5 Terraform 管理 BOS 

terraform plan:预览功能,允许在正式执行配置文件之前,查看将要执行哪些操作。

例如,您添加了创建 Bucket 的配置文件 test.tf :

[root@test terraform-test]#vim main.tf
provider "baiducloud" {
    access_key  = "LTA*****************NO2"
    secret_key  = "MOk8x0*************wwff"
    region           = "bj"
}

# 创建源 bucket
resource "baiducloud_bos_bucket" "source" {
  bucket = "charlietang"
  acl    = "public-read-write"
}

使用 terraform plan 可查看到将会执行的操作。

[root@test terraform-test]# terraform plan
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.


------------------------------------------------------------------------

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # baiducloud_bos_bucket.tangdd will be created
  + resource "baiducloud_bos_bucket" "tangdd" {
      + acl                         = "public-read-write"
      + bucket                      = "charlietang1"
      + creation_date               = (known after apply)
      + force_destroy               = false
      + id                          = (known after apply)
      + location                    = (known after apply)
      + owner_id                    = (known after apply)
      + owner_name                  = (known after apply)
      + server_side_encryption_rule = (known after apply)
      + storage_class               = "STANDARD"
    }

Plan: 1 to add, 0 to change, 0 to destroy.

------------------------------------------------------------------------

Note: You didn't specify an "-out" parameter to save this plan, so Terraform
can't guarantee that exactly these actions will be performed if
"terraform apply" is subsequently run.

4.6 Terraform 创建 BOS 

terraform apply:执行工作目录中的配置文件。

例如您想创建名为 charlietang 的 Bucket,您需要先添加创建 Bucket 的配置文件 main.tf。

[root@localhost baidu-cloud]# terraform apply

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # baiducloud_bos_bucket.tangdd will be created
  + resource "baiducloud_bos_bucket" "tangdd" {
      + acl                         = "public-read-write"
      + bucket                      = "charlietang1"
      + creation_date               = (known after apply)
      + force_destroy               = false
      + id                          = (known after apply)
      + location                    = (known after apply)
      + owner_id                    = (known after apply)
      + owner_name                  = (known after apply)
      + server_side_encryption_rule = (known after apply)
      + storage_class               = "STANDARD"
    }

Plan: 1 to add, 0 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

baiducloud_bos_bucket.tangdd: Creating...
baiducloud_bos_bucket.tangdd: Creation complete after 2s [id=charlietang1]

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

4.7 Terraform 删除 BOS 

terraform destroy:可删除通过 Terraform 创建的空 Bucket。

[root@localhost baidu-cloud]# terraform destroy
baiducloud_bos_bucket.tangdd: Refreshing state... [id=charlietang1]

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  - destroy

Terraform will perform the following actions:

  # baiducloud_bos_bucket.tangdd will be destroyed
  - resource "baiducloud_bos_bucket" "tangdd" {
      - acl                         = "public-read-write" -> null
      - bucket                      = "charlietang1" -> null
      - creation_date               = "2020-07-08T06:47:52Z" -> null
      - force_destroy               = false -> null
      - id                          = "charlietang1" -> null
      - location                    = "bj" -> null
      - owner_id                    = "3b4c0907265d49daa7fbf103bb2cba4a" -> null
      - owner_name                  = "UC:29883996" -> null
      - server_side_encryption_rule = "none" -> null
      - storage_class               = "STANDARD" -> null
    }

Plan: 0 to add, 0 to change, 1 to destroy.

Do you really want to destroy all resources?
  Terraform will destroy all your managed infrastructure, as shown above.
  There is no undo. Only 'yes' will be accepted to confirm.

  Enter a value: yes

baiducloud_bos_bucket.tangdd: Destroying... [id=charlietang1]
baiducloud_bos_bucket.tangdd: Destruction complete after 1s

Destroy complete! Resources: 1 destroyed.

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

查里王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值