OpenTacoでTerraformのステートファイルを管理してみる
Terraformのステートファイルの管理方法は様々あります。(HCP Terraform,S3,GCS,GitLab
等。)
今回はOpenTacoを利用したステートファイルの管理をご紹介します。
OpenTacoとは
概要は以下のブログをご確認ください。
上記の記事では、Pull Requestを利用したterraform plan/applyの機能を紹介しました。
OpenTacoではOpenTofuやTerraformのステートファイル管理もできます。今回はこちらを試してみます。
やってみた
以下を参考にTerraformを利用してやってみました。
OpenTacoにユニットを作成する
OpenTacoのGUIからユニットを作成します。
ユニットはステートファイルの保存単位で、1ユニットで1ステートファイルを保存できます。
以下を設定して、Create Unitを選択します。
- Unit Name: <任意の名前>
- Unit Type: Local
Unit TypeはTerraformを実行する場所のことです。
今回はローカルPCでTerraformを実行して、ステートファイルはOpenTaco上で管理します。

テスト用 Terraformコードの用意
テスト用に以下のファイルを用意しました。
terraform {
required_version = ">= 1.0.0"
required_providers {
local = {
source = "hashicorp/local"
version = "~> 2.6"
}
}
}
resource "local_file" "test" {
content = "Hello, Terraform!"
filename = "${path.module}/output/test.txt"
file_permission = "0644"
directory_permission = "0755"
}
ローカルにファイルを作成するだけのシンプルなコードです。
バックエンド設定を追加
先程のTerraformコードにCloudブロックの設定を追加します。
OpenTaco上で、ユニットを作成すると表示される内容をTerraformコードに追加します。

terraform {
required_version = ">= 1.0.0"
required_providers {
local = {
source = "hashicorp/local"
version = "~> 2.6"
}
}
+ cloud {
+ hostname = "otaco.app"
+ organization = "org_000000" # 環境に合わせて置き換え
+ workspaces {
+ name = "hogehoge" # 環境に合わせて置き換え
}
}
}
resource "local_file" "test" {
content = "Hello, Terraform!"
filename = "${path.module}/output/test.txt"
file_permission = "0644"
directory_permission = "0755"
}
Terraform CLIでOpenTacoにログイン
Terraform CLIからOpenTacoにアクセスするために、以下のコマンドでOpenTacoにログインします。
terraform login otaco.app
OpenTaco用のAPIトークンをローカルに保存する旨が表示されます。
yesを選択するとOpenTacoのGUIがブラウザで開かれ APIトークンの作成に進みます。
Terraform will request an API token for otaco.app using your browser.
If login is successful, Terraform will store the token in plain text in
the following file for use by subsequent commands:
/Users/sato.masaki/.terraform.d/credentials.tfrc.json
Do you want to proceed?
Only 'yes' will be accepted to confirm.
Enter a value: yes
Generate New Tokenを選択します。

APIトークンの識別名と有効期限を設定します。

APIトークンが表示されるため、ターミナルに戻って値を貼り付けます。
以下のコマンドでトークンが保存されていることを確認できます。
cat ~/.terraform.d/credentials.tfrc.json
動作確認(terraform init/plan/apply)
最後にTerraform CLIでいくつかコマンドを実行して動作確認をします。
terraform init
terraform plan
terraform apply
OpenTacoのGUIを確認してみると、Unitに登録されていることが確認できます。

View Detailsで詳細を確認してみます。
State versionsからステートファイルの変更履歴が確認できます。
右側のRestoreを選択することで、任意の地点のステートファイルに切り戻すことができます。

その他にはステートファイルのロック機能もあります。
画面右上のLockを選択するとステートファイルをロックして変更を防止できます。
$ terraform apply
Acquiring state lock. This may take a few moments...
╷
│ Error: Error acquiring the state lock
│
│ Error message: data is not a jsonapi representation of '*tfe.Workspace'
│
│ Terraform acquires a state lock to protect the state from being written
│ by multiple users at the same time. Please resolve the issue above and try
│ again. For most commands, you can disable locking with the "-lock=false"
│ flag, but this is not recommended.
ステートファイルの中身を確認したい場合は、Download Latest Stateでステートファイルをローカルにダウンロードできます。
おわりに
OpenTacoのステートファイル管理機能についてご紹介しました。
Terraform CLIからのログインは、HCP Terraformと同様にAPIトークンを使用する操作で実施できました。(APIトークンの保存場所も同じ)
ステートファイル管理機能は、Diggerからのリブランディング時(2025年10月)に追加された機能です。
今後の機能拡張にも期待ですね。






