基础设施包括各种云,像国内的阿里云、腾讯云和华为云,国外的AWS、微软Azure云和谷歌云,还有Kubernetes和OpenStack,都可以用Terraform进行资源管理。使用基础设施即代码(Infrastructure as Code, IaC)的方式来管理基础设施,这是现代IT基础设施管理的一个重要趋势,它允许我们以代码的形式定义基础设施,实现基础设施的自动化部署,确保基础设施配置的一致性,方便进行版本控制和变更管理。

Terraform属于基础设施即代码工具,官网地址:https://www.terraform.io/,产品定位:使用 Terraform 在任何云上进行自动化基础架构,高效管理基础设施,阿里云和腾讯云是Terraform合作伙伴,使用和下载量都不小,华为云是自己在维护,没有合作伙伴标识。

安装,直接在官网下载页找到对应系统下载安装即可,Linux、macOS和Windows都支持,下面通过一个演示示例体验一下Terraform具体操作,用的是AWS云,AWS提供了750小时2核CPU-1G内存虚拟机的免费使用,Terraform演示示例所需配置文件在https://github.com/robin-2016/terraform-demo代码仓库下,下面进行一个简单的创建一个虚拟机的demo演示示例:

先将代码仓库克隆到本地,进入demo-1目录下,下图就是main.tf文件全部内容。先来解释文件内容对应的含义,provider部分为对应的供应商,现在使用的是AWS,region是配置区域,ap-east-1为香港地区,access_key和secret_key为AWS账号生成的AK和SK。resource部分为创建的资源,这里设置的虚拟机实例,ami为虚拟机实例镜像id,是Ubuntu server24.04的镜像,instance_type为虚拟机实例规格,t3.micro是AWS提供的免费规格,2核CPU-1G内存,下面开始实操实验。

演示实验

第一步:填写AWS的AK和SK分别对应access_key和secret_key,执行“terraform init”初始化,会创建一个lock文件.terraform.lock.hcl,后续需要添加到代码仓库中

初始化后,可以执行“terraform validate”来验证配置文件是否正确,不是必须执行,必须在init初始化之后执行

第二步:在执行具体操作前,再执行“terraform plan”查看要执行内容,避免误操作,这里可以看到返回结果显示是将要创建一个AWS的虚拟机实例。这一步也可以不执行,可以跳过执行第三步,感觉还是先看一下执行内容比较放心。

第三步:确定好执行plan后符合预期,继续操作,执行“terraform apply“,输入yes确认操作,等待一会,一台实例就创建好了,显示“Apply complete”表明执行完成。

登录到AWS控制台,看到有一台刚刚创建的实例,也可以更改实例类型后再执行一次apply,现有的实例会销毁再创建对应类型的实例。

第四步:演示实验完成后,执行“terraform destroy“销毁资源,上面创建出来的实例就会被删除,同样要求输入yes来确认操作。

在演示实验结束后,查看目录,会生成两个文件:terraform.tfstate和terraform.tfstate.backup,这两个文件是用来记录terraform远程状态的,所以要保证在操作terraform之前这两个状态文件是最新的,两个状态文件可以存储在terraform提供的远程空间里,如果操作少一些也可以保存在代码仓库一个单独目录下。

Terraform可以用来管理vpc、安全组和dns记录等云上的大部分资源,还可以搭配自定义镜像+Linux脚本方式,完成应用程序层面部署,特别是有多个云账号需要管理,或者频繁初始化部署的情况下,能大大提高管理效率,一次编写执行多次。

以上为Terraform的初级使用分享,如果对你有帮助,请关注留言互动,如果需要Terraform具体云服务商教程请留言咨询,嘿嘿。

现代IT基础设施管理(1):Terraform初识和小试牛刀的更多相关文章

  1. SaltStack介绍——SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流

    SaltStack介绍和架构解析 简介 SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流,以毫秒为单位.SaltSta ...

  2. 006 01 Android 零基础入门 01 Java基础语法 01 Java初识 06 使用Eclipse开发Java程序

    006 01 Android 零基础入门 01 Java基础语法 01 Java初识 06 使用Eclipse开发Java程序 Eclipse下创建程序 创建程序分为以下几个步骤: 1.首先是创建一个 ...

  3. 005 01 Android 零基础入门 01 Java基础语法 01 Java初识 05 Eclipse简介

    005 01 Android 零基础入门 01 Java基础语法 01 Java初识 05 Eclipse简介 Eclipse是一款集成开发工具--IDE. 集成开发环境(IDE,Integrated ...

  4. 004 01 Android 零基础入门 01 Java基础语法 01 Java初识 04 Java程序的结构

    004 01 Android 零基础入门 01 Java基础语法 01 Java初识 04 Java程序的结构 Java程序的结构 Java程序外层--类 程序外层,如下面的代码,是一个类的定义. c ...

  5. 003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程

    003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程 Java程序长啥样? 首先编写一个Java程序 记事本编写程序 打开记事本 1.wi ...

  6. 002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介

    002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介 学习Java的基础语法 Java是一门编程语言,学习的逻辑其实和现实世界的语言是一样的,需要了 ...

  7. 001 01 Android 零基础入门 01 Java基础语法 01 Java初识 01 导学

    001 01 Android 零基础入门 01 Java基础语法 01 Java初识 01 导学 welcome to Java World 欢迎来到Java世界 一起领略Java编程世界的奥秘与奥妙 ...

  8. python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)

    一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...

  9. [转]《Hadoop基础教程》之初识Hadoop

    原文地址:http://blessht.iteye.com/blog/2095675 Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不 ...

  10. 《Hadoop基础教程》之初识Hadoop

    Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不适用我们的项目,但是我会继续研究下去,技多不压身. <Hadoop基础教程> ...

随机推荐

  1. 100ASK_IMX6ULL arm板子如何移植刷卡器

    最近为了在arm板子上移植刷卡器,比较简单,但也遇到了坑,现在和大家分享下. 购买刷卡器 某宝很多,应该选哪一种呢? 一口君一共买了4种刷卡器,有2种可以用,还有2种不能用. 下图为最方便的一款,一口 ...

  2. 组合数取模的几种方法--Exlucas&杨辉三角&组合

    组合数取模的几个方法 求: \[C^{m}_{n} \bmod P \] 1.杨辉三角法 \[C^{m}_{n} = C^{m - 1}_{n - 1} + C^{ m }_{n - 1} \] 时间 ...

  3. Kubernetes-13:存储卷Volume介绍及使用

    Volume介绍 Volume存在的意义 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题,首先,当容器崩溃时,kubelet会重启它,但是容器中的文件将丢失--容器以 ...

  4. python pyqt6 QMenu 设定圆角边框

    本来这个没有必要写,但是因为写的过程中,按照网上的写法运行,不知道为什么QMenu的右下角有圆角边框与直角背景颜色会覆盖显示 所以还是有必要写一下 menu = QMenu(self.tool_but ...

  5. 【YashanDB数据库】YAS-02079 archive log mode must be enabled when database is in replication mode

    [标题]错误码处理 [问题分类]调整归档 [关键字]关闭归档.YAS-02079.replication mode [问题描述]执行alter database noarchivelog 关闭归档时, ...

  6. 【YashanDB知识库】virt虚拟内存远大于res内存问题分析

    YASDB内存占用简介 参数配置: 默认参数配置:DBMS_PARAM高级包生成配置参数 数据库内存配置,使用默认参数步骤: 1.DBMS_PARAM.OPTIMIZE(); //生成默认参数,使用总 ...

  7. time series classification and transfer learning

    最近在看几篇最近几年的工作和survey,希望早点能做点东西.

  8. 强!推荐一款Python开源自动化脚本工具:AutoKey!

    1.前言 在数字化时代,自动化工具成为了提升工作效率和生产力的重要手段.Python作为一种广泛使用的编程语言,以其强大的功能和易用性受到许多开发者的青睐. 而今天给大家推荐一款开源的自动化脚本工具: ...

  9. Qt连连看(二)界面制作

    我们先来制作两个简单的页面 一.主界面 要求在main.cpp里面设置对应的槽函数 (1) 点击开始游戏能跳转到游戏界面 (2) 点击帮助能够显示游戏说明,如下 二.游戏界面 要求如下: (3) 初始 ...

  10. SSD-KD:天翼云&清华出品,最新无原始数据的蒸馏研究 | CVPR'24

    无数据知识蒸馏能够利用大型教师网络所学到的知识,来增强较小型学生网络的训练,而无需访问原始训练数据,从而避免在实际应用中的隐私.安全和专有风险.在这方面的研究中,现有的方法通常遵循一种反演蒸馏的范式, ...