一、安装Terraform

Step 1 下载适合您系统的Terraform安装包

wget https://releases.hashicorp.com/terraform/0.12.18/terraform_0.12.18_linux_amd64.zip

Step 2 解压该包,是一个名为terraform的二进制文件,可以在当前目录直接运行命令: terraform

Step 3 将terraform加到环境变量。

export PATH=$PATH:/home/ubuntu/terraform:$PATH
$ terraform versionTerraform v0.12.18

二、编写第一个Terraform例子

我们在aws的新加坡(ap-southeast-1)区域创建一台实例类型为t2.micro的EC2,并标记一下Tag。

provider "aws" {  region = "ap-southeast-1"}resource "aws_instance" "example-instance" {  ami           = "ami-061eb2b23f9f8839c"  instance_type = "t2.micro"  tags = {    Name = "Example by ChangSha DevOps Union "    Terraform = true  }}
~/terraform-guide/example1$ tree.└── main.tf0 directories, 1 file

三、执行Terraform命令

terraform plan

plan 命令用于对terraform定义的资源预览。

如果当前目录以及存在对应的state文件,那么将会以最新terraform脚本定义与state文件内容进行比较。如果存在变更,则会高亮显示出来。

terraform apply

apply 命令用于实际资源的新建和变更操作,为了安全起见,该命令在运行过程中有二次确认,输入yes才会继续。当然也可以增加参数 --auto-approve来跳过二次确认。

terraform apply --auto-approve
apply 命令成功后会在当前目录生成 terraform.tfstate 文件。

~/terraform-guide/example1$ tree.├── main.tf├── terraform.tfstate└── terraform.tfstate.backup0 directories, 3 files

登录AWS Consle上我们看到新建的EC2 Instance以及附加的Tag信息。


terraform destroy

destory 命令用于销毁terraform创建的资源,会列出销毁的资源列表。也会有二次确认。需要输入yes才会继续。



除了上述四个主要命令外,terraform还有其他命令,我们可以通过help命令查找:

四、总结

通过以上命令操作,我们知道terraform主要的工作流程是从 init -> plan -> apply -> destroy。一般情况下init 和 destroy在同一个工作目录下只会执行一次,而plan和apply会因为我们修改terraform脚本而重复执行。

最后留个思考:

apply命令后生成的terraform.tfstate文件内容是什么?如果删除这个文件会怎么样?

如果您喜欢这篇文章,请考虑关注我。

长沙DevOps联盟 - 关注容器技术,K8S,自动化部署,基础设施架构。

©著作权归作者所有:来自51CTO博客作者mob604756e9ab63的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Terraform,变量详解
  2. Terraform,状态文件的最终归宿
  3. Ansible 变量
  4. linux终端命令
  5. Cisdem Duplicate Finder:快速查找和删除苹果Mac中重复文件
  6. vim命令
  7. linux初始化配置
  8. Ansible与cmdb配合使用动态inventory
  9. Mysql二进制日志binlog命令

随机推荐

  1. 面试---AMS在Android起到什么作用,简单的
  2. android通过更改hosts免优酷广告方法
  3. android之动态更改屏幕方向的简单例子(LA
  4. Android对移动计算的影响及产业变革
  5. 【Android UI设计与开发】第06期:底部菜单
  6. 做自己的Android ROM,屏蔽对framework中的
  7. Android手把手视频教程 | 课程简介
  8. Android API Guides---Localizing with R
  9. Android主题theme和样式style总结
  10. Android 进程和线程模型 .