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存储桶。由于每个项目的方式可能不同,请首先确认正确的方法。

请首先确认在哪里应该写入状态、文件布局等信息。

如果忽略了最初的确认,那么在以后的Terraform程序执行时将成为瓶颈,并导致任务的估计出现偏差。笔者建议首先进行确认。

【第二步】在图形用户界面(GUI)上进行资源确认

直接写Terraform的话虽然很想,但先理解要创建的对象的实体,哪怕是大概的了解,再写Terraform会更加高效。

最好在这里理解参数的含义。

我认为最快了解的方法是通过GUI创建资源。如果创建过程很困难(例如,在准备VPC或子网时耗费大量时间),只需在创建界面上确认资源设置即可。

我們將以AWS的ECSonEC2作為例子進行解釋。

スクリーンショット 2023-12-07 10.45.58.png

需要为ECS on EC2创建进行上述设置。
从中可以看出,需要进行ASG、操作系统、实例类型等详细设置。

理解并将这些应设定的参数逐一反映到Terraform的程序中是必要的。在此时需要确定需要查询和创建的未知事项。

在这个参数变得更加易懂的时机上,理解所有参数的意义对未来的Terraform创建将产生影响。另外,建议将参数需求记下来,在创建PR时会很有用。
如果有任何疑问或者是任何小事情,在问题中记录下来,这样容易找到并能够方便地共享,所以我推荐您这样做。

【步骤三】请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时执行。)
请逐个确认将会创建哪些资源以及删除哪些资源。

请在进行% terraform plan时,务必仔细确认,因为删除资源非常危险。

【步骤6】使用terraform apply应用更改,并进行操作确认。

% 当 terraform plan 完成后,使用 terraform apply 进行应用。
% 当 terraform apply 完成后,建议使用 GUI 进行资源确认。

请根据需要进行操作确认测试。

【步骤7】根据需要,使用terraform destroy命令删除已创建的资源。

不再需要的资源可以通过% terraform destroy进行批量删除。特别是数据库实例,仅仅启动就会花费相当多的钱,所以我认为需要删除不必要的东西。

删除资源非常危险。在执行时,请务必确认是否存在不可删除的资源。

最后

我們將在此結束解釋。

如果能对你有一点帮助的话,我会很高兴。

广告
将在 10 秒后关闭
bannerAds