Terraform初学者指南书:以7个步骤学习Terraform
首先
我作为一个有2个月Terraform经验的作者,个人认为Terraform的最高效步骤可分为7个步骤进行介绍。
希望能对经验不丰富的我来说,以下步骤能让开发变得顺利,希望对你有所参考和帮助!
前提:Terraform是指什么?
Terraform是由HashiCorp开发的开源基础架构即代码(IaC)工具。它被广泛用于通过API安全高效地创建、管理和更新云服务等。
Terraform的七个步骤
在Terraform中创建和管理资源的最有效方法是通过以下7个步骤。(这是作者的个人观点)
-
- 【step1】 キーとバケットの準備、ステートやファイルレイアウトの確認を行う
-
- 【step2】 GUIでリソースの確認を行う
-
- 【step3】 生成AIにプログラムの雛形を作ってもらう
-
- 【step4】 プログラムの雛形の修正
-
- 【step5】 % terraform planで変更の差分を確認する
-
- 【step6】 % terraform applyで変更を適用し、動作確認を行う
- 【step7】(必要に応じて)% terraform destoryで作成したリソースを削除する
我将针对以下每个步骤进行详细解释。
【步骤1】准备密钥和桶,并确认状态和文件布局。
作为编写Terraform代码的初始准备工作,需要准备访问密钥、秘密密钥和S3存储桶。由于每个项目的方式可能不同,请首先确认正确的方法。
请首先确认在哪里应该写入状态、文件布局等信息。
【第二步】在图形用户界面(GUI)上进行资源确认
直接写Terraform的话虽然很想,但先理解要创建的对象的实体,哪怕是大概的了解,再写Terraform会更加高效。
最好在这里理解参数的含义。
我认为最快了解的方法是通过GUI创建资源。如果创建过程很困难(例如,在准备VPC或子网时耗费大量时间),只需在创建界面上确认资源设置即可。
我們將以AWS的ECSonEC2作為例子進行解釋。
需要为ECS on EC2创建进行上述设置。
从中可以看出,需要进行ASG、操作系统、实例类型等详细设置。
理解并将这些应设定的参数逐一反映到Terraform的程序中是必要的。在此时需要确定需要查询和创建的未知事项。
【步骤三】请AI生成程序模板。
我们将编写Terraform的程序。
虽然这样说,但对于初学者来说,从零开始编写全部内容很困难,因此会请求生成AI(如ChatGPT或Copilot)来为程序撰写模板。
在这个时候,最好将在步骤2中确认的详细要求具体地放入指示中。例如,给生成AI下达以下指示,让它创建程序的草稿。
您是一位出色的Terraform程序员,对AWS具有专家级的知识。请使用Terraform编写ECSonEC2的程序。详细要求如下:
(1) 创建新的ASG
(2) 使用按需定价模型进行提供
(3) EC2实例类型为t2.micro
(4) 所需容量最小为1,最大为4
(5) 创建新的密钥对并允许SSH连接
【第四步】修改程序的模板
由于步骤3生成的AI所创建的模板的完美度并非100%,因此需要逐一进行修正。
可以通过将由生成的人工智能创建的Terraform程序的设置和需求进行一对一的对应,来判断是否存在过多或者不足,并根据情况在查看文档的同时进行修正是一个好方法(在Terraform开发中,文档至关重要)。
如果在步骤5和步骤6中未满足要求,将返回到本步骤4。在步骤5的% terraform计划中,可以进行Terraform语法检查,建议根据需要使用以进行语法确认。
【步骤5】 使用terraform plan命令来确认变更的差异。
请在执行terraform apply之前务必检查更改差异。(仅需在最初执行terraform init时执行。)
请逐个确认将会创建哪些资源以及删除哪些资源。
【步骤6】使用terraform apply应用更改,并进行操作确认。
% 当 terraform plan 完成后,使用 terraform apply 进行应用。
% 当 terraform apply 完成后,建议使用 GUI 进行资源确认。
请根据需要进行操作确认测试。
【步骤7】根据需要,使用terraform destroy命令删除已创建的资源。
不再需要的资源可以通过% terraform destroy进行批量删除。特别是数据库实例,仅仅启动就会花费相当多的钱,所以我认为需要删除不必要的东西。
最后
我們將在此結束解釋。
如果能对你有一点帮助的话,我会很高兴。