Terraform Cloud Agent がダウンロードしたファイルの場所
Blogger にも同じ記事を書いておりますが、note にも同じ内容で記載していみます。
Terraform Enterprise, Terraform Cloud Business で利用できるTerraform Cloud Agentがpull してきたファイルの保管先についてのメモ。
Terraform Cloud Agent(以下TFC Agent) は、有償版のTerraform のTerraform Enterprise(以下TFE)、Terraform Cloud Business(以下TFCB) で利用出来る機能です。
TFC Agent をDocker コンテナとして稼働させた場合、どのディレクトリにプロバイダや Terraform のConfiguration が保存されるか確認してみました。
TFC Agent を起動
TFCB の環境で試してみましたので、こちらにある「Managing Agent Pools」を参考にTFC Agent を起動させる際に必要なトークンの作成を行なっていきます。トークンが作成出来たら、TFC Agent コンテナを起動させます。
export TFC_AGENT_TOKEN=**********
export TFC_AGENT_NAME=hashi
$ docker run -e TFC_AGENT_TOKEN -e TFC_AGENT_NAME hashicorp/tfc-agent:latest
Unable to find image 'hashicorp/tfc-agent:latest' locally
latest: Pulling from hashicorp/tfc-agent
35807b77a593: Pull complete
1625a7f6ff5a: Pull complete
0b69d9c72b11: Pull complete
d8b7ddfc1cde: Pull complete
786eb4aa5925: Pull complete
1aaf58f3794d: Pull complete
893bf903c3e8: Pull complete
e0a6c7bee612: Pull complete
de4a95da9012: Pull complete
f302acb758e4: Pull complete
0b42030fe541: Pull complete
Digest: sha256:10452a023264f739ad2958c36f2951d77a953d4d4a983451a8a397e61048f89a
Status: Downloaded newer image for hashicorp/tfc-agent:latest
2021-10-05T13:39:37.444Z [INFO] agent: Starting: name=hashi version=0.4.1
2021-10-05T13:39:37.450Z [INFO] core: Starting: version=0.4.1
2021-10-05T13:39:38.253Z [INFO] core: Agent registered successfully with Terraform Cloud: id=agent-***** pool-id=apool-*****
2021-10-05T13:39:38.462Z [INFO] agent: Core version is up to date: version=0.4.1
2021-10-05T13:39:38.462Z [INFO] core: Waiting for next job
2021-10-05T13:40:58.061Z [INFO] core: Job received: type=plan id=run-xp9EnuUdAQh3WKrz
2021-10-05T13:40:58.061Z [INFO] terraform: Handling run: id=run-xp9EnuUdAQh3WKrz type=plan org=***** workspace=tf-vsphere-vdisk
2021-10-05T13:40:58.062Z [INFO] terraform: Downloading Terraform release: url=https://releases.hashicorp.com/terraform/1.0.7/terraform_1.0.7_linux_amd64.zip
2021-10-05T13:41:02.042Z [INFO] terraform: Extracting Terraform from release archive
2021-10-05T13:41:02.776Z [INFO] terraform: Terraform CLI details: version=1.0.7
2021-10-05T13:41:02.776Z [INFO] terraform: Downloading Terraform configuration
2021-10-05T13:41:02.980Z [INFO] terraform: Running terraform init
2021-10-05T13:41:09.105Z [INFO] terraform: Running terraform plan
2021-10-05T13:41:14.825Z [INFO] terraform: Generating and uploading plan JSON
2021-10-05T13:41:21.045Z [INFO] terraform: Generating and uploading provider schemas JSON
2021-10-05T13:41:29.616Z [INFO] terraform: Persisting filesystem to remote storage
2021-10-05T13:41:43.065Z [INFO] terraform: Finished handling run
2021-10-05T13:41:44.255Z [INFO] core: Waiting for next job
...
TFC Agent コンテナは稼働させたままの状態で、Agent モードに設定しているTFCB 上のWorkspace でTerraform Run を実行してきます。
コンテナの中身の確認
コンテナ内に入ってディレクトリを見ていきます。
docker exec -it 992d27d12369 /bin/bash
$ ls -la
total 60
drwxr-xr-x 1 root root 4096 Oct 5 13:39 .
drwxr-xr-x 1 root root 4096 Oct 5 13:39 ..
-rwxr-xr-x 1 root root 0 Oct 5 13:39 .dockerenv
lrwxrwxrwx 1 root root 7 Aug 27 07:16 bin -> usr/bin
drwxr-xr-x 2 root root 4096 Apr 15 2020 boot
drwxr-xr-x 5 root root 340 Oct 5 13:39 dev
drwxr-xr-x 1 root root 4096 Oct 5 13:39 etc
drwxr-xr-x 1 root root 4096 Sep 13 16:26 home
lrwxrwxrwx 1 root root 7 Aug 27 07:16 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Aug 27 07:16 lib32 -> usr/lib32
lrwxrwxrwx 1 root root 9 Aug 27 07:16 lib64 -> usr/lib64
lrwxrwxrwx 1 root root 10 Aug 27 07:16 libx32 -> usr/libx32
drwxr-xr-x 2 root root 4096 Aug 27 07:16 media
drwxr-xr-x 2 root root 4096 Aug 27 07:16 mnt
drwxr-xr-x 2 root root 4096 Aug 27 07:16 opt
dr-xr-xr-x 307 root root 0 Oct 5 13:39 proc
drwx------ 2 root root 4096 Aug 27 07:27 root
drwxr-xr-x 5 root root 4096 Aug 27 07:27 run
lrwxrwxrwx 1 root root 8 Aug 27 07:16 sbin -> usr/sbin
drwxr-xr-x 2 root root 4096 Aug 27 07:16 srv
dr-xr-xr-x 13 root root 0 Oct 5 13:39 sys
drwxrwxrwt 1 root root 4096 Oct 5 13:39 tmp
drwxr-xr-x 1 root root 4096 Aug 27 07:16 usr
drwxr-xr-x 1 root root 4096 Aug 27 07:27 var
cd home/tfc-agent/.tfc-agent/component/terraform
$ ls -la
total 16
drwx------ 4 tfc-agent tfc-agent 4096 Oct 5 13:39 .
drwx------ 3 tfc-agent tfc-agent 4096 Oct 5 13:39 ..
drwx------ 3 tfc-agent tfc-agent 4096 Oct 5 13:40 runs
drwx------ 2 tfc-agent tfc-agent 4096 Oct 5 13:41 terraform-cache
ディレクトリ /home/tfc-agent/.tfc-agent/component/terraform にTerraform 関連のファイルがダウンロードされてくる様です。
Terraform Run 毎にrun-<runID>.plan or run-<runID>.apply というディレクトリが作成されます。
~/.tfc-agent/component/terraform/runs/run-AbsH8CPjrauhdS9C.plan/config$ ls -la
total 44
drwx------ 3 tfc-agent tfc-agent 4096 Oct 5 13:44 .
drwx------ 5 tfc-agent tfc-agent 4096 Oct 5 13:44 ..
-rw-r--r-- 1 tfc-agent tfc-agent 716 Oct 5 13:44 .gitignore
drwxr-xr-x 3 tfc-agent tfc-agent 4096 Oct 5 13:44 .terraform
-rw-r--r-- 1 tfc-agent tfc-agent 1080 Oct 5 13:44 .terraform.lock.hcl
-rw-r--r-- 1 tfc-agent tfc-agent 18 Oct 5 13:44 README.md
-rw-r--r-- 1 tfc-agent tfc-agent 701 Oct 5 13:44 main.tf
-rw-r--r-- 1 tfc-agent tfc-agent 0 Oct 5 13:44 outputs.tf
-rw-r--r-- 1 tfc-agent tfc-agent 2804 Oct 5 13:44 terraform.tfplan
-rw-r--r-- 1 tfc-agent tfc-agent 112 Oct 5 13:44 variables.tf
-rw------- 1 tfc-agent tfc-agent 147 Oct 5 13:44 zzz_backend_override.tf
-rw------- 1 tfc-agent tfc-agent 96 Oct 5 13:44 zzz_vars_override.tf
処理が終わるとそれらのディレクトリは削除されるため、いつまでもTFC Agent 内にTerraform のConfiguration が存在しない様になっています。