Initial commit: Terraform configurations for multiple cloud providers
This commit is contained in:
71
digitalocean/LIFECYCLE.md
Normal file
71
digitalocean/LIFECYCLE.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# DigitalOcean Terraform 自动销毁说明
|
||||
|
||||
## 生命周期管理
|
||||
|
||||
本配置包含自动销毁功能,可以在指定日期后自动删除所有 DigitalOcean 资源。
|
||||
|
||||
## 配置
|
||||
|
||||
在 `main.tf` 中设置过期日期:
|
||||
|
||||
```hcl
|
||||
variable "expiration_date" {
|
||||
description = "Expiration date in YYYY-MM-DD format. Use with destroy script"
|
||||
type = string
|
||||
default = "2026-03-03"
|
||||
}
|
||||
```
|
||||
|
||||
## 使用方法
|
||||
|
||||
### 1. 手动运行销毁脚本
|
||||
|
||||
```bash
|
||||
# 使用默认日期(2026-03-03)
|
||||
./auto_destroy.sh
|
||||
|
||||
# 指定过期日期
|
||||
./auto_destroy.sh 2026-03-01
|
||||
```
|
||||
|
||||
### 2. 设置定时任务(cron)
|
||||
|
||||
每天检查一次是否需要销毁资源:
|
||||
|
||||
```bash
|
||||
# 编辑 crontab
|
||||
crontab -e
|
||||
|
||||
# 添加以下行(每天凌晨 2 点检查)
|
||||
0 2 * * * /home/ben/terraform/digitalocean/auto_destroy.sh 2026-03-03 >> /var/log/do_destroy.log 2>&1
|
||||
```
|
||||
|
||||
### 3. 手动销毁
|
||||
|
||||
如果需要立即销毁所有资源:
|
||||
|
||||
```bash
|
||||
terraform destroy -auto-approve -var="do_token=$(grep DIGITALOCEAN_TOKEN .env | cut -d'=' -f2)"
|
||||
```
|
||||
|
||||
## 脚本行为
|
||||
|
||||
- 如果当前日期 **超过** 过期日期:自动执行 `terraform destroy` 删除所有资源
|
||||
- 如果当前日期 **未超过** 过期日期:显示剩余天数,不执行任何操作
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 销毁操作不可逆,请确保在过期日期前备份重要数据
|
||||
2. 建议在测试环境中先验证脚本行为
|
||||
3. 可以通过修改 `main.tf` 中的 `expiration_date` 变量来延长或缩短资源生命周期
|
||||
4. 脚本会自动从 `.env` 文件读取 `DIGITALOCEAN_TOKEN`
|
||||
|
||||
## 资源列表
|
||||
|
||||
以下资源将在过期后自动删除:
|
||||
|
||||
- DigitalOcean Droplet
|
||||
- Load Balancer
|
||||
- Floating IP
|
||||
- SSH Key
|
||||
- Project
|
||||
Reference in New Issue
Block a user