将在另一台机器上创建的tfstate文件导入到樱云的资源管理器中
首先
樱花云的资源管理器真是方便呢。
只需要准备一个名为tf文件的定义文件,就可以批量管理多个资源。内部使用Terraform和Terraform for Sakura Cloud来实现。
在资源管理器中,虽然官方没有正式支持terraform import或导入由其他机器创建的tfstate文件,但实际上可以通过使用一些小技巧来进行导入。
由于这是一种技巧性的方法,所以在实际尝试时请注意各种事项。
资源管理器具有tfstate编辑功能
tfstate文件是Terraform的数据库,用来存储受Terraform控制的资源的信息(实际上是JSON格式的数据)。通过创建tfstate文件(可以手动创建等方式),可以将现有的资源放置在Terraform的管理下。
然后资源管理器还具有tfstate文件的编辑功能。通过使用此功能,可以实现与terraform import相同的操作以及导入在另一台机器上创建的tfstate文件,从而使其置于资源管理器的控制之下。
我将介绍如何将我在本地机器上创建的tfstate文件导入资源管理器的步骤。
将tfstate文件导入资源管理器的步骤。
《注意事项》
这种方法依赖于Terraform未记录的行为(在terraform refresh命令中创建tfstate文件)。在Terraform的未来版本中可能无法使用。
此外,在本文中我们确认了 Terraform v0.11 的运行情况。
此外,当然还是不能使用terraform中无法通过资源管理器使用的功能(如remote-exec或module)。
请参考以下页面,了解Terraform和资源管理器可用功能的区别。
樱花云手册:资源管理器与Terraform的差异。
准备)统一 Terraform 和插件的版本。
事先,请确保本机上的Terraform和Terraform插件(适用于Sakura Cloud的Terraform)与资源管理器的版本匹配。
您可以在控制面板的资源管理器添加页面中查看资源管理器使用的版本。
在版本号对齐后,执行terraform refresh命令,以使tfstate文件保持最新的状态。
第一步:添加资源管理器。
请先添加资源管理器。
请从控制面板中添加资源管理器。
2) 在资源管理器中编辑tf文件。
将位于本机上的tf文件注册到资源管理器中。
如果tf文件被分割成多个部分,将合并为一个文件。
请点击屏幕上方的“更改tffile”按钮以打开编辑画面,并填写tf文件的内容。
第三步) 执行”整合性确认”命令。
因为我已经创建了tf文件,所以只需要将我机器上的tfstate文件注册到资源管理器即可,但是在这个阶段,资源管理器上还没有tfstate文件,所以无法进行编辑,会产生以下错误。
当需要创建tfstate文件时,我们需要在资源管理器上执行一致性确认命令。这类似于terraform refresh功能。
terraform refresh命令用于将tfstate文件更新为最新状态,但如果在没有tfstate文件的情况下执行,它将创建一个空的tfstate文件。
这一次我们将利用这个功能。
在[tfstate]标签上,这将创建一个空的tfstate文件,您可以通过控制面板确认其内容。
4) 编辑tfstate文件。
接下来,将本地机器上的tfstate文件内容注册到资源管理器中。
您可以点击“更改tfstate”按钮,进入编辑界面,然后在那里将tfstate文件的内容复制粘贴进去。
这样就完成了导入。
确认执行”计划/反映”指令。
当捕捉操作成功完成时,在使用“计划/反映”命令时应该没有任何差异显示。
请实际执行并确认是否会出现以下显示内容。
总结
总结一下,将tfstate导入的步骤如下。
-
- 1) terraformとプラグインのバージョンを揃える
-
- 2) リソースマネージャーを追加する
-
- 3) tfファイルをコピペ
-
- 4) 整合性確認コマンドで空のtfstateファイル作成
- 5) tfstateファイルをコピペ
以上就是。祝你玩得愉快!