diff --git a/infrastructure/incus/README.md b/infrastructure/incus/README.md index 6847015..678dd52 100644 --- a/infrastructure/incus/README.md +++ b/infrastructure/incus/README.md @@ -130,10 +130,9 @@ terraform -chdir=infrastructure/incus/terraform output containers terraform -chdir=infrastructure/incus/terraform plan -detailed-exitcode ``` -provider 固定 1.2.0 并保留 lockfile,镜像固定 Ubuntu 24.04 cloud 构建指纹。 -上游滚动镜像不保证永久保存:该指纹在 2026-10-01 已从 `images:` 下架,现从 `local:` -缓存创建;缓存闲置超过 `images.remote_cache_expiry`(默认 10 天)会被自动删除,重建前需确认 -本机缓存或归档可用,否则须改用新指纹。 +provider 固定 1.2.0 并保留 lockfile。镜像跟随 `images:ubuntu/24.04/cloud` 最新构建, +只在创建时使用(`ignore_changes`);不固定指纹,因为上游会下架旧构建,2026-10-01 +重建时固定指纹已无法获取。 cloud-init 用户设置主要在首次启动执行,修改声明不能替代后续用户/密钥轮换流程。 当前 state 位于 `terraform/terraform.tfstate`(Git 忽略),是本地 backend; diff --git a/infrastructure/incus/terraform/main.tf b/infrastructure/incus/terraform/main.tf index 27862db..9981bf9 100644 --- a/infrastructure/incus/terraform/main.tf +++ b/infrastructure/incus/terraform/main.tf @@ -48,10 +48,8 @@ resource "incus_instance" "ayatori" { for_each = toset(["dev", "prod"]) name = "ayatori-${each.key}" description = "Ayatori ${each.key} 基础容器;应用由独立部署流程管理" - # Ubuntu 24.04 cloud amd64,20260924_07:42;固定指纹避免重建时静默更换镜像。 - # 上游 images: 已不再提供该构建(2026-10-01 重建时 "image couldn't be found"),只能取本机缓存; - # ⚠ 缓存镜像闲置超过 images.remote_cache_expiry(默认 10 天)会被 Incus 自动删除。 - image = "local:b39d3d56c30738ad74c507066cc5d410e1c0f1647bdcdff398be1ee51d63862a" + # 跟随 24.04 cloud 最新构建:同一发行版的构建只差安全更新,固定指纹会随上游下架而无法重建。 + image = "images:ubuntu/24.04/cloud" type = "container" profiles = [] running = true @@ -114,6 +112,8 @@ resource "incus_instance" "ayatori" { nic = "eth0" } lifecycle { + # 镜像只在创建时使用;provider 按字符串比较,改写它不应触发重建现有实例。 + ignore_changes = [image] prevent_destroy = true } }